はじめに
CloudFormation、便利ですよね。
リソースを一気に作成出来るので、環境構築の効率が上がります。
ただ、普通に使おうとするとテンプレートを書く必要があります。
また、各AWSリソースによって内容が違います。
特にオプションが多いリソースでは、
AWSコンソール上ではこのチェックを入れればいいけど
テンプレートではどの項目を設定すればいいんだ…?と
CloudFormationのドキュメントとにらめっこをし、
該当する項目を引っ張ってきてテンプレートに書く必要があります。
私はよくしていました。
そんな中、コーディングしなくてもテンプレートを作成出来る機能があるので紹介していきます。
想定読者
楽にCloudFormationでリソースを作成したい人
Application Composerを使う
Application Composerは、ビジュアルキャンバスを使用して
AWS サービスをドラッグアンドドロップしながらアーキテクチャを構成できるものです。
画面でサービスをポチポチするだけで、CloudFormationテンプレートが作成されます。
AWSコンソールとVSCodeで使用出来ます。
また、自動でAWSのベストプラクティスに従うよう設定してくれるので安心仕様です。
Application Composer自体にコストはかかりません。
1. 新規で作成する手順&使い方
例として、Application ComposerでAPI GatewayとLambdaを構成してみます。
-
API GatewayとLambdaを紐づける
API GatewayとLambdaを紐づけるために、丸ぽちからLambdaに線を引きます。
これでGetメソッドのルートに対して、Lambdaを紐づけられました。
例としてAPI GatewayとLambdaを紐づけましたが、
他にもCloudFrontとS3など簡単に紐づけることが出来ます。 -
テンプレートを保存する
右上のメニューから、テンプレートをローカルに保存します。
これでテンプレートの完成です。
途中でテンプレートの内容を確認したい場合は、
キャンバスからテンプレートに切り替えることで確認することが出来ます。
補足として、全てデフォルト設定で作成したテンプレートは動作しません。(多分)
適宜、LambdaのソースパスやIAMロールの修正が必要だと思うので、
キャンバス上でリソースプロパティから設定しましょう。
2. 既存のテンプレートに対して使う
Application Composerで作成したテンプレートを読み込んで修正することは勿論、
手で作成した既存テンプレートに対しても使用できます。
既存テンプレートのリソースを視覚化したい時や、
もう手で修正するのは面倒なのでApplication Composerで修正したいって時に使えます。
ただ、注意点が一つあって、
既存テンプレートに対してApplication Composerを使用した場合、
テンプレートが最適化・修正されます。
少なくとも自分が確認できたのは以下です。
- Fn::〇〇が短縮系の!〇〇に置き換わる
- 配列がリストになる([a, b, c] が -a -b -cの様な感じ)
- テンプレートの可読性を上げる為のコメントや余白が削除される
全てApplication Composerで作成・修正するから
テンプレートの中身は見ないよって場合にはいいんですが、
テンプレートの内容を確認する場合やどう記述するかが決まっている場合には注意が必要です。
おわりに
どんどんコードを書かなくて良い時代になっていきますね。
色々いい感じに設定してくれる分、今まで以上に内容を理解していないと
なんか上手く作成されているけどどういった設定がされているかは全然わからん!
ということになりかねないので、ちゃんと勉強しないといけないなと改めて思いました。