その他サービス

AWS CloudFormation 完全ガイド|YAML / JSON で IaC

AWS CloudFormation は AWS インフラを YAML / JSON のテンプレートで宣言的に管理する IaC サービス。EC2・VPC・RDS・IAM 等の任意のリソースをテンプレート化し、1 コマンドで全構成を作成・更新・削除できる。Terraform ...

AWS インフラを YAML / JSON テンプレートでコード化する IaC(Infrastructure as Code)サービス。


1. 概要(端的に)

AWS CloudFormation は AWS インフラを YAML / JSON のテンプレートで宣言的に管理する IaC サービス。EC2・VPC・RDS・IAM 等の任意のリソースをテンプレート化し、1 コマンドで全構成を作成・更新・削除できる。Terraform の AWS ネイティブ版で、AWS 推奨の IaC ツール。


2. 何ができるか

  • インフラのコード化:YAML / JSON
  • スタック管理:1 まとまりのリソース集
  • 変更セット:適用前に差分プレビュー
  • ロールバック:失敗時に自動的に元に戻す
  • クロスリージョン / クロスアカウント:StackSets
  • ドリフト検知:手動変更との差分検知
  • マクロ:テンプレート前処理

3. 特徴

観点特徴
追加料金CloudFormation 自体は 無料(リソース料金のみ)
対応リソースほぼ全 AWS サービス
形式YAML / JSON
クロスアカウントStackSets で組織展開

主要要素

  • Template:YAML / JSON 定義
  • Stack:テンプレートから作成された一連のリソース
  • StackSet:複数アカウント・リージョンへ展開
  • Parameter:実行時の値
  • Output:作成リソースの情報出力
  • Mapping:環境別・リージョン別の値

4. 仕組み

CloudFormation は テンプレートで指定された目標状態に向けて、リソースを順次作成・更新する。

動作の流れ

  1. テンプレート作成(YAML)
  2. CreateStack API
  3. CloudFormation がリソースを順次作成
  4. 失敗時は自動ロールバック
  5. 完成 → スタックとして管理

簡単な YAML 例

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: my-app-bucket-2026

vs CDK / Terraform

観点CloudFormationCDKTerraform
形式YAML/JSONTypeScript/Python 等HCL
AWS ネイティブ◎(裏は CFn)
マルチクラウド××
学習コスト

5. ユースケース

ユースケース 1:環境構築の自動化

Dev / Staging / Prod の同一構成を YAML で展開。

ユースケース 2:マルチアカウント展開

StackSets で組織全体に共通リソース。

ユースケース 3:DR 構築

障害時に別リージョンで同構成を再現。

ユースケース 4:構成のバージョン管理

Git でテンプレートを管理 → 変更履歴追跡。


6. 関連用語

  • CDK — CloudFormation の高水準ラッパー
  • SAM — サーバーレス特化版
  • Organizations — StackSets 連携

7. 関連サイト


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFIaC の概念
SAAインフラ自動化設計
DVAテンプレート設計(頻出
SOAスタック運用