CloudFormation・IaCと開発運用ツールを理解する
CloudFormationで資源の構成をコードとして管理する意味を学びます。アプリをビルドするCodeBuild、リリース手順をつなぐCodePipeline、実行中の要求を追うX-Rayと役割を区別し、変更前後の確認まで理解します。
この単元で学ぶこと
- テンプレート・スタック・変更セットを説明する
- 構成再現とデータ復元・ドリフト検出の違いを説明する
- CodeBuild・CodePipeline・X-Rayの役割を区別する
本文解説
1. 構成をコードで表す Infrastructure as Codeは資源の構成をコード等で記述して管理する考え方です。CloudFormationではJSONやYAMLのテンプレートに、必要なAWS資源や設定を記します。手で毎回クリックする代わりに、レビューと履歴管理ができる形で構成を定義します。ただし、記述した内容が業務や安全性の要件に合うかは利用者が判断します。
2. テンプレートとスタック テンプレートは構成の定義、スタックはその定義を使って作成・管理する資源のまとまりです。同じテンプレートを使い、パラメーターで環境名や容量等を変えて検証用と本番用を管理できます。テンプレートを再利用しても、リージョンの対応、資源名の一意性、権限、クォータ等の実行条件を確認する必要があります。
3. 変更を事前に確認する 変更セットでは、提案した更新により追加・変更・削除・置換される資源等を確認します。変更セットを作成しただけでは更新を適用せず、実行する段階を分けます。現行には事前検証等もありますが、実行時の条件による失敗を完全になくす保証ではありません。特にデータを持つ資源の置換は影響と復旧方法を確認します。
4. 定義と現状のずれ テンプレート外でコンソール等から資源を変更すると、定義と実際の設定に差が生じる場合があります。ドリフト検出は対応する資源・プロパティについてその差を調べる機能です。検出を実行したことと、差を自動修正したことは別です。対象外や検出できない内容もあるため、検出結果だけで全構成が一致すると断定しません。
5. 再作成とデータ テンプレートからデータベースの資源を再作成することと、業務データを過去の時点へ復元することは異なります。データのバックアップ、復元手順、削除や置換時の保持方針を別に用意します。例えば同じサイズのDBが起動しても、注文データが空なら業務は戻りません。構成管理をバックアップそのものと読み替えないことが重要です。
6. CodeBuildで成果物を作る CodeBuildはソースをコンパイルし、指定したテストを実行し、配備に使う成果物等を作るマネージドなビルドサービスです。利用者は実行コマンドやテストを定義します。自分でビルドサーバーのOSを管理する負担を減らせますが、テストを用意していなければ業務の正しさまで自動で検証するわけではありません。
7. CodePipelineで手順をつなぐ CodePipelineはソース変更からビルド、テスト、配備等のリリース手順をモデル化・自動化するサービスです。例えばビルド段階でCodeBuildを呼び、その結果を後段へ渡します。資源定義のCloudFormation、成果物作成のCodeBuild、段階をつなぐCodePipelineは組み合わせられます。承認や失敗時の扱いも手順として設計します。
8. X-Rayで実行を追う X-Rayはアプリケーションの要求が複数サービスを通る流れを追跡し、遅延やエラーの調査に使う分散トレースのサービスです。デプロイの実行やソースのビルドとは別の運用上の役割です。計測設定や収集範囲に依存し、全要求を無条件に完全記録するとは考えません。現行のX-Ray SDK/Daemonは保守段階へ移っており、新しい計測ではOpenTelemetry等の公式移行案内も確認します。
図解
重要ポイント
- 定義と実際の資源、変更案と実行を区別する。
- ドリフト検出の対応範囲と修正の別工程を理解する。
- 構成・ビルド・リリース・実行時追跡は異なる役割。
間違えやすい点
- テンプレートがあればDBの業務データも復元できると考える。
- 変更セット成功やテスト成功を本番の無条件成功とみなす。
用語解説
- IaC
- インフラの構成をコード等で定義し管理する考え方。
- スタック
- CloudFormationでまとめて作成・管理する資源の単位。
- ドリフト
- 管理対象の実際の構成が期待される定義からずれた状態。
- トレース
- 一つの要求が通る処理やサービス間呼出しを追跡する情報。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
- https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html
- https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html
- https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html
- https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html
- https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html
- https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html
- https://docs.aws.amazon.com/filegateway/latest/files3/what-is-file-s3.html
- https://docs.aws.amazon.com/filegateway/latest/files3/file-gateway-concepts.html
確認問題の出題・採点や学習履歴の保存にはログインが必要です。