【くらうどふぉーめーしょん】

CloudFormation とは?

💡 AWSインフラの「設計図」をコードで書いて自動構築するサービス
📌 このページのポイント
AWS CloudFormationの仕組み テンプレート (YAML / JSON) EC2: t3.micro RDS: MySQL S3: my-bucket 送信 Cloud Formation スタック作成 依存関係を自動解決 構築 AWSリソース EC2インスタンス RDSデータベース S3バケット Infrastructure as Code:コードでインフラを定義・管理
CloudFormation:テンプレートからAWSリソースを自動構築
ひよこ ひよこ

CloudFormationって何のために使うの?AWSコンソールでポチポチ作ればよくない?

ペンギン先生 ペンギン先生

手動で作ると「本番環境ステージング環境で設定が違う」「誰がいつ何を変更したかわからない」という問題が起きるんだ。CloudFormationならテンプレートGitで管理できるから、環境の再現性が保証されるし、変更履歴も追えるんだよ。

ひよこ ひよこ

Terraformと何が違うの?

ペンギン先生 ペンギン先生

CloudFormationはAWS専用だけどAWSとの統合が深い。新サービスのサポートが早いし、AWS内のIAMと自然に連携できる。TerraformAWS以外のクラウドにも使えるマルチクラウド対応だけど、状態ファイル(tfstate)の管理が必要。AWSだけ使うならCloudFormation、マルチクラウドならTerraform、が一般的な選び方だよ。

ひよこ ひよこ

おもしろい!スタックって何?

ペンギン先生 ペンギン先生

CloudFormationが作成するリソースのまとめ単位だよ。「VPCスタック」「アプリスタック」のように分けて管理することが多い。スタックを削除すると中のリソースも全部一緒に消えるから、実験環境の後片付けが楽なんだ。

ひよこ ひよこ

CloudFormationのテンプレートって長くなりがちだけど、管理のコツってあるの?

ペンギン先生 ペンギン先生

ここがCloudFormationの実務的な苦しみでね。大規模なインフラだとテンプレートが数千行になって、誰も全体を把握できなくなる。ネストスタック(スタックの中にスタックを埋め込む)で分割できるけど、スタック間の参照が複雑になりがち。さらに厄介なのが「テンプレートの変更がリソースの置き換え(再作成)を引き起こすケース」で、例えばRDSのエンジンバージョンを変更するとDBが削除・再作成されてデータが消えることがある。Change Setで事前確認できるけど、「Replace」の文字を見落として本番DBを吹き飛ばした事故は実際に起きているんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CloudFormation」って出てきたら「AWSのインフラをコードで定義して自動構築するサービスのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cloud Formation」 = クラウドの構成・形成
💬 Cloud(クラウド)+ Formation(形成・編成)。雲の形を作るように、クラウドリソースの構成を定義するイメージだよ
← 用語集にもどる