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. スタックのライフサイクル管理

1

テンプレート作成

YAMLファイルを作成しS3またはコンソールからアップロード

2

変更セットの作成・確認

既存スタックへの変更はChange Setで事前に影響範囲を確認してから適用

3

スタックの更新

変更セットを承認するか、aws cloudformation deploy コマンドで一括更新

4

ドリフト検出

実際のリソース設定がテンプレートから乖離していないかDrift Detectionで確認

Route Bloom | インフラエンジニアの育成・転職支援

SES案件マッチングから資格取得サポートまで、現役IT講師がトータルで支援します。

無料相談はこちら

※ CloudFormationのリソースタイプ・プロパティはAWSのアップデートで変更される場合があります。AWS公式ドキュメントをご確認ください。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営