濱田孝治(181)52この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。CloudFormationテンプレートによるインフラ構築)で、CloudFormation未経験の方向けの入門記事を書きました。今日の記事では、そんなCloudFormationのなんたるかを知った方向けに、CloudFormationのテンプレートの作成を効率化するちょっとしたTIPSを紹介いたします。この記事の対象読者は上述の記事を読んでいることを前提としていますので、CloudFormationの基本概念などは説明しません。一度、簡単に目を通していただいて、知らない点などがないか確認いただくことをオススメいたします。テンプレートの検証機能を利用して文法エラーを潰すCloudFormationには、テンプレートファイルの構文エラーを確認する専用のバリデーション機能があります。これを利用すれば、テンプレート作成後、「Webコンソール開いて、スタックを選んでS3アップロードして〜」なんて手間を省略できます。CLIから実施するので、事前に設定を済ませておいてください。Interface構文は非常に簡潔です。file://01_create_vpc.yaml上記では、カレントディレクトリにある01_create_vpc.yamlを指定して、テンプレートを検証しています。例として、下記のようなテンプレートを用意しておきます。ファイル名は、上と同じ01_create_vpc.yamlとします。後半、文法エラーを仕込んでいます。hamada-amema;これにバリデーションをかけると、以下のようなエラーメッセージが表示されます。yamlの構造エラーで、何行目あたりがおかしいかなど原因表示してくれます。1)後半部分のエラーを取り除いて、再度バリデーションかけます。10.0.0.0/16エラーが解消されると、以下のメッセージが帰ってきます。[]}エラーが無くなりましたね。これで、テンプレートファイルとしては、文法エラーが解消されたことがわかります。今回のテンプレートファイルにはパラメーターが含まれていませんが、含まれている場合は、テンプレート検証結果として、全てのパラメータの情報について返されます。パラメータを含んだテンプレートファイルの、バリデーション結果例を紹介します。]}バリデーション利用上の注意このバリデーションは、あくまでテンプレートの構文を確認するために利用するもので、リソースに対して指定したプロパティの値が整合性がとれているか、リソースが有効であるかなど、運用上の有効性確認はできません。そのあたりは、実際にスタックを作成して、結果を確認する必要があるので、ご注意ください。前章では、CloudFormationテンプレートのバリデーション機能を紹介しました。実際にテンプレートを修正したときに、都度確認コマンドを流すのも面倒なものです。そこで、テンプレートファイル保存時に、自動的にコマンドを実行する仕組みを活用しましょう。mac限定となりますが、アプリケーションのインストールなどは不要で、シェルのみで動作する下記方法を参考にさせていただきました。ありがとうございます。午睡二時四十分こちらの記事の後半、Mac版のソースをfilewatch.shという名前で保存します。"実行するには2個の引数が必要です。fidoneシェルに実行権限を付与します。filewatch.sh第一引数に監視対象ファイル、第二引数に実行したいコマンドを指定し実行します。コマンドには、前章のテンプレートのバリデーションコマンドをそのまま指定しましょう。第二引数のコマンドはシングルクォーテーションで囲みます。すると、テンプレートファイルを保存するたびに、監視タイミング(今回の例では1秒毎)で、自動的にテンプレートバリデーションを実行してくれます。[]}エディタとターミナル並べてみると、保存するたびにバリデーション結果が表示されるので、いろいろ捗ります。実際に試してみるとよく分かるんですが、バリデーションの結果を確認するときに、「ここでウィンドウを切り替えてコマンド実行」の一手間がなくなるだけで、思考のスイッチコストが減り、テンプレートの作成作業に集中できます。このファイル保存によるコマンドの自動実行は、いくらでも応用が効くもの(markdown保存でhtml生成したり、簡単なビルドスクリプト走らせたり、なんやらかんやら)なので、是非一度試しておくことをオススメいたします。目指すテンプレートファイルが完成し、テンプレートのバリデーションもOKであれば、いよいよスタックを作成してみましょう。CLI、cloudFormationの、create-stackコマンドを利用します。スタック名にhamada-vpcを設定し、テンプレートファイルとして、01_create_vpc.yamlを指定しています。"arn:aws:cloudformation:ap-northeast-1:629895769338:stack/hamada-vpc/a8b70630-a84b-11e7-ad60-50a686699882"}webコンソールを確認し、無事スタックが作成されていたらOKです。CLIを利用したスタックの削除スタック作ってしまった後、「なんか違うやん」となったときも、スタックの削除をすれば、関連リソースはきれいになくなってくれます。CLIの利用については、下記ドキュメントに簡潔にまとまっていますので、一度目を通しておくと、代表的なコマンドが把握できるのでオススメです。CloudFormationまとめ:CloudFormationの作成をコマンドベースで効率化しようここまで、いかがでしょうか。本記事では、CloudFormationの作成に関わる機能について、コマンドラインで実施するための基礎について紹介しました。CLIを利用したスタックの削除Webコンソールでの作業に慣れてきた後は、こういったコマンドラインベースの作業にシフトしたほうが、さらなる効率化を図れる場合が多いので、積極的に試してみましょう!それでは、今日はこのへんで。