AWS CloudFormationでIaC入門|テンプレートの書き方と実践構築ガイド
Skills Boost Infra Academy
AWS CloudFormationでIaC入門|テンプレートの書き方と実践構築ガイド
YAMLテンプレートでAWSインフラをコード化する方法を現役講師が基礎から解説
CloudFormationを使えばVPC・EC2・RDSなどのAWSリソースをコードで定義し、何度でも同じ環境を再現できます。Terraformとの違いも含めて解説します。
CloudFormationはTerraformと並ぶAWSのIaCツール。マネージドサービスなので追加のState管理が不要で、AWSネイティブのCI/CD連携がしやすいのが特長です。
T
吉田たかし|元NWエンジニア・現役IT講師
CCNA/CCNP/LPIC-1/AZ-900取得。14年のインフラエンジニア経験を持つ現役IT講師。AWS研修でCloudFormation・Terraformの両方を教えてきた経験から、使い分けと入門の流れを解説します。
📌 この記事のポイント
✅ CloudFormationはAWSが提供するIaCサービス。YAMLまたはJSONでリソースを定義する
✅ スタック単位でリソースをまとめて管理・更新・削除できるため環境の再現性が高い
✅ 変更セット(Change Set)で適用前に変更内容を確認できるのが安全運用のポイント
1. 基本テンプレート構造
AWSTemplateFormatVersion: "2010-09-09"
Description: サンプルVPC構成
Parameters:
EnvName:
Type: String
Default: dev
Resources:
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Sub "${EnvName}-vpc"
Outputs:
VpcId:
Value: !Ref MyVPC
Export:
Name: !Sub "${EnvName}-vpc-id"2. よく使う組み込み関数
| 関数 | 用途 | 例 |
|---|---|---|
| !Ref | リソースIDや参照値の取得 | !Ref MyVPC → VPCのID |
| !Sub | 文字列内に変数を埋め込む | !Sub “${EnvName}-vpc” |
| !GetAtt | リソースの属性値取得 | !GetAtt MyALB.DNSName |
| !ImportValue | 別スタックのExport取得 | !ImportValue dev-vpc-id |
| !Select | リストから要素を取得 | !Select [0, !GetAZs “”] |
3. スタックのライフサイクル管理
※ CloudFormationのリソースタイプ・プロパティはAWSのアップデートで変更される場合があります。AWS公式ドキュメントをご確認ください。
ABOUT ME



