Instiq
第2章 · 構成管理と IaC·v2.1.0·更新 2026/6/28·読了目安 約11分

変更要約: in-scope サービス網羅: Control Tower, Service Catalog, AWS Proton を s2 に、OpsWorks, License Manager, EC2 Image Builder を s3 に追記

2.1CloudFormation と IaC の基礎

この節の要点

インフラのコード化——CloudFormation(テンプレート/スタック)、変更セット(change set)ドリフト検出ネストされたスタック——を理解します。インフラを宣言的・再現可能に管理します。

Infrastructure as Code(IaC) はインフラをコードで宣言し、再現可能に構築します。AWS では CloudFormation が中核です。

2.1.1CloudFormation の仕組み

CloudFormation の仕組みを示した図。テンプレート(YAML/JSON でリソースを宣言)からスタックを作成・更新し、更新前には変更セット(change set)で適用差分をプレビュー、実際の構成がテンプレートからずれていないかをドリフト検出で確認、共通部品はネストされたスタックで再利用し、作成失敗時は自動ロールバックする一連の宣言的なプロビジョニングを示した図。
CloudFormation の宣言的プロビジョニング
  • テンプレート/スタック:YAML/JSON でリソースを宣言し、スタックとしてまとめて作成・更新・削除。
  • 変更セット:更新を適用前にプレビューし、意図しない置換や削除を防ぐ。
  • ドリフト検出:実構成がテンプレートからずれていないかを検出する。
  • ネストされたスタック:共通テンプレートを部品化して再利用。大規模構成を整理する。
試験ポイント

「適用前の差分プレビュー=変更セット」「手動変更などのずれ検出=ドリフト検出」「共通部品の再利用=ネストされたスタック」「失敗時の自動ロールバック」 は DOP-C02 で頻出です。本番は変更セットでレビューしてから実行するのが安全です。

補足

CDK や SAM は最終的に CloudFormation テンプレートを生成します。CDK はプログラミング言語で IaC を書け、SAM はサーバーレス向けの簡潔な構文を提供します。

DOP-C02 ではテンプレートの機能を使いこなす設計力が問われます。Parameters で環境差分を外出しし、Mappings/Conditions でリージョンや環境ごとに分岐、Outputsエクスポート/Fn::ImportValueSSM パラメータ参照(dynamic references)でスタック間を疎結合に連携します。更新時の事故防止には、スタックポリシーで重要リソース(DB など)の置換を禁止し、リソース単位の DeletionPolicy: Retain / Snapshot で誤削除を防ぎ、UpdateReplacePolicy で置換時のデータ保全を図ります。更新が途中で失敗すると CloudFormation は前の状態へ自動ロールバックし、UPDATE_ROLLBACK_FAILED に陥った場合は手動での復旧(continue update rollback)が必要です。カスタムリソース(Lambda 実装)マクロで標準外の処理を組み込め、Registry のサードパーティリソースタイプも扱えます。ドリフト検出は「テンプレート外で行われた手動変更」を洗い出すため、IaC の一貫性を保つ運用上の要です。本番では必ず変更セットでレビュー→実行の手順を踏みます。

目的機能要点
更新の差分を事前確認変更セット置換/削除を適用前に把握
手動変更のずれ検出ドリフト検出実構成とテンプレートの差分
重要リソースの保護スタックポリシー / DeletionPolicy置換禁止・誤削除防止(Retain/Snapshot)
大規模構成の整理ネストされたスタック共通テンプレートを部品化して再利用
補足

シナリオ:本番スタックの更新で、誤って RDS DB インスタンスが置換(=再作成でデータ消失)されるのを防ぎたい。→ まず 変更セットで「Replacement: True」になるリソースがないか確認。DB には DeletionPolicy: SnapshotUpdateReplacePolicy: Snapshot を設定し、スタックポリシーで DB リソースの更新(置換)を拒否。これで誤った置換を技術的に止められます。

補足

FAQ:スタック間で値を共有するには? 2 通りあります。Outputs のエクスポート+Fn::ImportValue は強い依存(エクスポート中は参照元を削除/変更できない)を作りますが明示的。SSM パラメータ参照(dynamic references)は疎結合で、参照先を後から変えやすいです。密に結びつけたいか、緩く保ちたいかで選びます。

注意

ひっかけ:「手動でコンソール変更した分を CloudFormation に取り込みたい」場面で、ドリフト検出は差分を“検出”するだけで自動修正はしません。是正にはテンプレートを直して更新するか、リソースインポートを使います。また変更セットは「適用前のプレビュー」であって、実行しなければ何も変わりません。

2.1.2この節のまとめ

  • IaC=CloudFormation(テンプレート/スタック)
  • 安全運用=変更セット+ドリフト検出+ネストされたスタック

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. CloudFormation スタックの更新を、実際に適用する前に変更内容(置換/削除を含む)をプレビューしたい。何を使いますか?

Q2. 誰かがコンソールで手動変更したため、実環境が CloudFormation テンプレートと食い違っているか確認したい。何を使いますか?

Q3. 複数のスタックで共通するネットワーク定義を部品化して再利用したい。何を使いますか?

理解度を確認第2章「構成管理と IaC」の問題を解く