CloudFormationについて学ぶ
CloudFormationとは?
テンプレートを作成することによってインフラ管理を簡単にする仕組み。IaCのほかに、Application ComposerというGUIで作成できるAWS公式のツールもある。
また、gitと連携出来て、コミットするごとにスタックを変更できる。
詳しい利点について
CloudFormationではテンプレートとスタックの作業を行う。ざっくりいうとテンプレートはリソースとそのプロパティを記述し、スタックはデプロイするやつ。
テンプレート
jsonまたはyaml形式で記述出来て、.json,.yaml,.template,.txtなどの拡張時で保存できる。
テンプレートには例えば、インスタンスタイプ、AMI ID、ブロックデバイスマッピング、EC2キーペアの名前などEC2の情報を記述できる。
また、単独のテンプレートファイルに複数のリソースを指定し、それらが連携するように設定できる。
詳しくは
スタック
テンプレート等の関連リソースをスタックという単一ユニットで管理する。作成したテンプレートを送信することによってスタックを作成し、プロビジョニングされる。
CloudFormationのコンソール、API、AWS CLIを利用してスタックを操作できる。
変更セット
スタックを変更する前に変更セットを生成できる。
変更セットで、変更が実装中のリソースに与える可能性の影響を事前に確認できる。
CloudFormationの仕組み
スタック作成時にCloudFormationはサービス呼び出しをAWSに対して行う。ユーザが許可されている権限のもののみプロビジョニングできる。
スタックを更新する場合は、元のスタックテンプレートの修正バージョン、異なる入力パラメータ値、またはその両方を送信して変更セットを生成する。変更セットには変更案がリストされ、変更を確認したら変更セットを実行してスタックを更新する。
スタック作成
今回はgitと連携させて使用するので「Gitから同期」を選択。
ここらへんの詳しい説明
「新しい接続を作成する」をクリック
テンプレートファイル一つしか選べないんですね・・
githubと連携する。
この後Githubアプリのインストールってやつをしました!(スクショ忘れた!なんか2024/05からARNを使用するとかなんとか書いてあった!)
オプションです。今度はcloudformationが持つIAMポリシーを指定できます。
スタックを作成した後、githubにプルリクエストが届く(微妙に時間かかる)ので許可する。
許可したら作成されます!
ちなみにデフォルトでは名前が作成されていません。
Discussion