所謂 IaC
(Infrastructure as Code
) というやつです。
AWS 縛りプレイ (ベンダーロックイン) が嫌いなら HashiCorp の Terraform を使おう。
作例
こんな VPC ができる。
- VPC
- サブネット x2
- インターネットゲートウェイ
- ルートテーブル
なぜ CloudFormation を使うか
- インフラのコード化
- 一度テンプレートを作成すれば、スタックという単位で AWS リソース群を管理 (作成・更新・削除) が容易にできる
- CloudFormation デザイナー によるスタック全体像の可視化
テンプレートとは
参考: テンプレートの分析
下記の要素からなる。
- Metadata
- Parameters
- Mappings
- Conditions
- Transform
- Resources
- Outputs
シンプルにリソースを作るだけなら、主に用いるのは下記がほとんどだろう。
- Parameters
- Resources
- Outputs
テンプレートの作り方
サンプルテンプレート: AWS CloudFormation Sample Template WordPress_Single_Instance
はい、無理っす。
「こんなもん手で書いてられるか、バカヤロー」
と言う場合も、そうじゃない場合も、次に挙げるようなツールを使えば割と簡単にできる。
スタックの更新
「ちょっと設定変えたいな」
という場合も、変更セット (change set) というコードで変更内容を管理する。 まだ実際に試してないので、こちらについては機会があれば後ほど……