手動でポチポチAWSリソースを作るのは、最初は楽しい。でも10個、20個と増えてくると「あれ、このEC2にアタッチしたセキュリティグループどれだっけ?」ってなる。そこでInfrastructure as Codeの出番だ。
CloudFormationは、YAMLかJSONでインフラ構成を定義し、それをAWSが自動で構築してくれるサービス。「このVPCに、このサブネットで、このEC2を立てて、このセキュリティグループをアタッチして」という一連の手順をコード化できる。
CloudFormationのメリット:
- 再現性 — 同じ構成を別リージョンでも別アカウントでも一発再現。
- バージョン管理 — テンプレートをGit管理すれば、誰がいつ何を変えたか追跡できる。
- ロールバック — スタック作成に失敗したら自動で全削除。安心して試せる。
- Parameters — 環境(dev/stg/prod)で変わる値をパラメータ化。
正直、YAMLが長くなりがちなのが欠点。でも最近はCDK(TypeScriptでインフラを書ける)やTerraformという選択肢もある。まずは簡単なS3バケット作成から試してみるといい。