CloudFormation で VPC 作ってみた

所謂 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) というコードで変更内容を管理する。 まだ実際に試してないので、こちらについては機会があれば後ほど……