その他サービス ・
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 は テンプレートで指定された目標状態に向けて、リソースを順次作成・更新する。
動作の流れ
- テンプレート作成(YAML)
- CreateStack API
- CloudFormation がリソースを順次作成
- 失敗時は自動ロールバック
- 完成 → スタックとして管理
簡単な YAML 例
AWSTemplateFormatVersion: '2010-09-09'
Resources:
MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-app-bucket-2026
vs CDK / Terraform
| 観点 | CloudFormation | CDK | Terraform |
|---|---|---|---|
| 形式 | YAML/JSON | TypeScript/Python 等 | HCL |
| AWS ネイティブ | ◎ | ◎(裏は CFn) | △ |
| マルチクラウド | × | × | ◎ |
| 学習コスト | 中 | 高 | 中 |
5. ユースケース
ユースケース 1:環境構築の自動化
Dev / Staging / Prod の同一構成を YAML で展開。
ユースケース 2:マルチアカウント展開
StackSets で組織全体に共通リソース。
ユースケース 3:DR 構築
障害時に別リージョンで同構成を再現。
ユースケース 4:構成のバージョン管理
Git でテンプレートを管理 → 変更履歴追跡。
6. 関連用語
- CDK — CloudFormation の高水準ラッパー
- SAM — サーバーレス特化版
- Organizations — StackSets 連携
7. 関連サイト
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | IaC の概念 |
| SAA | 高 | インフラ自動化設計 |
| DVA | 高 | テンプレート設計(頻出) |
| SOA | 中 | スタック運用 |