CloudFormationは「設計図を渡すだけでインフラが建つ」仕組み 🏗️
CloudFormationは「インフラを文章で発注する」サービス
AWSクラウド上でインフラ環境を自動構築・管理するサービスがCloudFormation。
いわゆる IaC(Infrastructure as Code) の代表格。
JSONやYAMLで書かれたテンプレートを渡すだけで、
その通りのインフラが出来上がる。
手作業でポチポチ環境を作っていた身からすると、
インフラを注文書一枚で発注しているような感覚に近い。
スタックは「ひとまとめのインフラ」
テンプレートの定義そのものを スタック と呼ぶ。
EC2やVPCなど、複数のリソースをまとめて一つの単位として扱う。
ここで地味にありがたいのが、
スタックを削除すれば関連リソースもまとめて削除される点。
作った時と同じくらい、片付けも一撃でできるのは気持ちがいい。
サービスロールは「CloudTrailの作業許可証」
CloudTrailに付与する、リソース操作の権限のこと。
「誰が何をしたか記録する係」自身にも、
ちゃんと権限管理がされているという地味な発見だった。
スタックセットは「同じ設計図を全国展開する」機能
複数のAWSアカウントや複数リージョンにまたがって、
同じスタックを構築できるのがスタックセット。
プロビジョニング先のアカウントとリージョンを指定するだけで済む。
- 複数のテスト環境構築
- IAMとSGのグループ設定
といった、同じ構成を横展開したい場面で活躍する。
一つの設計図を、支店ごとにコピーして配るようなイメージ。
Service Catalogは「社内向けの製品カタログ」
組織が承認したサービスやアプリケーションを
ポートフォリオとしてまとめ、組織外のユーザーへ製品として共有するサービス。
「好きにインフラを組んでいい」わけではなく、
会社として許可した構成だけを選んでもらう、という統制の仕組み。
自由度よりもガバナンスを優先したい組織向けの機能だと感じた。
Elastic Beanstalkとの比較
似たような「インフラを楽にする系」サービスとして、
Elastic Beanstalkとよく比較される。
| 項目 | CloudFormation | Elastic Beanstalk |
|---|---|---|
| 得意なこと | 複雑な構成をコードベースで管理 | アプリの運用とデプロイを自動化 |
| カスタマイズ性 | 高度なカスタマイズが可能 | 中程度のカスタマイズ |
| 規模感 | 大規模、JSON/YAMLで定義 | インフラ管理を最小化 |
| 使い方 | テンプレートを書いて構築 | ソースコードをアップロードするだけで自動デプロイ |
CloudFormationが「設計図から建物を建てる」なら、
Beanstalkは「家具付き物件にとりあえず住み始める」ような感覚。
どこまで自分で設計したいかで、選ぶべきサービスが変わってくる。
まとめメモ ✍️
- CloudFormationはIaCの代表格、JSON/YAMLでインフラを定義
- スタック単位でリソースをまとめて作成・削除できる
- サービスロールはCloudTrailの操作権限
- スタックセットで複数アカウント・リージョンへの横展開が可能
- Service Catalogは組織向けの製品カタログ的な統制の仕組み
- Beanstalkとはカスタマイズ性と手軽さのトレードオフで住み分け
インフラを「その都度手で作るもの」から
「テンプレートとして資産化するもの」に捉え直すきっかけになった回だった。