CloudFormationは、単一のAPIコールで、アプリケーションのWeb層、ハイパフォーマンスコンピューティングクラスタ、またはアプリケーションスタック全体のようなAWSリソーススタックをプログラムで作成できる強力なAWSのサービスである。これは非常に強力だ。特にChefPuppetやcloud-initと組み合わせて使う場合は、AWSの良いプラクティスとみなされることは間違いない。
本番環境の例を見てみよう:純正のmongodb cluster templatesは私のために動作しません。特に理由はわかりません。きっと単純なことなのでしょう。私の問題は、何が問題なのかが分からないことではありません。スタックが失敗するのに20分から30分かかり、リソースを適切に削除するとして、削除するのにさらに3、4分かかることです。
私は何を見落としているのでしょうか?disable-rollbackフラグについては知っているし、酸素のように使っている。終了メッセージを
cfn-signal`でラップして、沈没船からバラストのように投げ捨てることはずっと前に学んだ。どうすればテンプレートのデバッグプロセスを速くできるのでしょうか?それとも、自分がミスをした30分後に気づくしかないのでしょうか?
AWS CLIツールのaws cloudformation validate-template
コマンドを使う。このコマンドは、テンプレートが有効な JSON または YAML かどうかを検証するだけで、キーと値が正しいかどうかは検証しない(例えば、キーのタイプミスはチェックしない)。
遅ればせながら、エディターの設定と学習には少し時間をかける価値があることも付け加えておこう。笑ってしまうほど基本的な答えに聞こえるかもしれないが、試してみてほしい。
私の場合、vimの場合、json構文プラグインのインストールに時間をかけ、大きなCFファイルを簡単にナビゲートするための折りたたみテクニックを(最終的に)理解すると、パフォーマンスが格段に向上しました。私の場合、今ではタイプミス(あるべきでないところにカンマがあるなど)を指摘してくれるし、カラーハイライトは明確な視覚的手がかりを与えてくれるので、多くの時間を節約できる。
これは構文エラーを軽減するのに役立つかもしれないが、テンプレート内の論理エラーは他のツールで修正した方がいい。いつかCFに"preview"モードができることを願っています。