Memo

メモ > サーバ > サービス: AWS > CloudFormation

■CloudFormation
ネットワークをテンプレートで管理できる 同一ネットワークの再現が容易になり、gitなどで変更履歴を管理することもできるようになる ■ネットワークの構築(aws_cloudformation/test/vpc_only.template にテンプレートの例がある) CloudFormation → スタックの作成 ステップ1 テンプレートの指定 テンプレートの準備 テンプレートの準備完了 テンプレートの選択 テンプレートファイルのアップロード → テンプレートファイルを選択 ステップ2 スタックの詳細の指定 スタックの名前 SampleVPC ステップ3 スタックオプションの設定 削除保護 有効(必要なら) ※その他必要に応じて設定 ステップ4 確認 内容を確認して「スタックの作成」をクリック エラーがなければ1分程度で構築が完了し、Statusが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」に変わる その後VPCなどを確認すると反映されていることを確認できる ■ネットワークの変更(aws_cloudformation/test/vpc_network.template にテンプレートの例がある) CloudFormation → スタックを選択 → アクション → スタックの更新 編集したテンプレートを選択すると、その変更分が反映される エラーがなければ1分程度で構築が完了し、Statusが「UPDATE_IN_PROGRESS」から「UPDATE_COMPLETE」に変わる その後VPCなどを確認すると反映されていることを確認できる ■ネットワークの削除 CloudFormation → スタックを選択 → アクション → スタックの削除 そのスタックで作成されたリソースはすべて削除されるので注意 例えばスタックにEIPが含まれていた場合、スタックを削除して作りなおすとIPアドレスが変わってしまう SSHの接続先やメール送信制限解除申請など、諸々の作業もやり直す必要があるので注意 スタックの削除時「スタックを削除すると、すべてのスタックリソースが削除されます。」と表示されているが、 スタックの削除中にエラーになって止まった? 「関連する○○がある」という旨のエラーでどうしても削除できない場合、手動でVPCを削除すると大丈夫のことがある ■インスタンスの起動(aws_cloudformation/instance.template) vpc_network.template でVPCを構築 その後 instance.template でインスタンスを作成 SSHで接続 インスタンスに手動でEIPを設定 22番ポートを開放したセキュリティグループを作成して割り当て 自動作成されたルートテーブルを調整 送信先 : 0.0.0.0/0 ターゲット : 自動作成されたインターネットゲートウェイ SSHで接続を確認 HTTPで接続 セキュリティグループを調整して80番ポートを開放 SSHで接続し、rootのパスワードを設定&Apacheをインストール HTTPで接続を確認 ※EIPやセキュリティグループの調整などもテンプレートで管理できる…はず。要勉強 ※UserDataでApache自動インストール(aws_cloudformation/instance_httpd.template)は何故か反応せず…。要勉強 ■変更の検出 CloudFormationで構築した後に手動で行った変更を、検出できるようになったとのこと ただし解説を読むかぎり、まだ検出できない内容もあるみたいなので注意 またサブネットを削除すると、そのサブネットに属するEC2なども削除されるかも。気軽に変更を行うのはリスクがありそうなので注意 AWS CloudFormationで手動で行った変更が検出可能になりました!!! | DevelopersIO https://dev.classmethod.jp/cloud/aws/cloudformation-support-drift-detection/ CloudFormation → スタックを選択 → アクション → ドリフトの検出 手動で変更した内容を検出できる コードになおすとどうなるのかも表示してくれるので、それをもとにテンプレートを調整できる ■注意 コンソールでできるすべての操作が、CloudFormationに対応しているとは限らないので注意 また、更新をすべてCloudFormationで管理すると手間が増える可能性があるので注意 「初期構築にCloudFormationを使用し、以降の更新はコンソールから手動で行う」のような手法も検討するといい 【AWS】CloudFormationの作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO https://dev.classmethod.jp/cloud/aws/cloudformation-knowhow/ 【CloudFormation入門1】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築 | DevelopersIO https://dev.classmethod.jp/cloud/aws/cloudformation-beginner01/ ■基本的なネットワークの作成 aws_cloudformation/create_vpc.yaml で基本的なネットワークを作成できる ■メモ 【AWS初学者向け・図解】CloudFormationの組み込み関数を現役エンジニアがわかりやすく解説? | エンジニア女子の生態ログ https://o2mamiblog.com/aws-cloudformation-intrinsic-function-beginner-1/

Advertisement