カテゴリ: AWS 更新日: 2026/03/11

AWS CloudFormationのマッピング(Mappings)と条件分岐(Conditions)を完全解説!初心者でもわかるインフラ自動化

AWS CloudFormationのマッピング(Mappings)と条件分岐(Conditions)
AWS CloudFormationのマッピング(Mappings)と条件分岐(Conditions)

先生と生徒の会話形式で理解しよう

生徒

「AWS CloudFormationって、環境ごとに設定を変えたいときはどうするんですか?」

先生

「そのときに活躍するのが、マッピング(Mappings)と条件分岐(Conditions)です。設定を自動で切り替えられます。」

生徒

「プログラミング未経験でも使えますか?」

先生

「大丈夫です。表と分岐ルールを覚える感覚で使えますよ。順番に見ていきましょう。」

1. AWS CloudFormationとは?インフラ自動化の基本

1. AWS CloudFormationとは?インフラ自動化の基本
1. AWS CloudFormationとは?インフラ自動化の基本

AWS CloudFormation(クラウドフォーメーション)は、AWSのインフラ構成をテンプレートで管理できる仕組みです。サーバーやネットワーク、ストレージなどを、手作業ではなく文章で定義できます。これにより、同じ環境を何度でも正確に作成でき、設定ミスも減ります。インフラ自動化、IaC(インフラ・アズ・コード)の代表的なサービスとして、多くの現場で使われています。

2. マッピング(Mappings)とは?設定を表で管理する仕組み

2. マッピング(Mappings)とは?設定を表で管理する仕組み
2. マッピング(Mappings)とは?設定を表で管理する仕組み

マッピング(マッピング)は、CloudFormationテンプレート内で使える「対応表」のような機能です。例えば、東京リージョンではこのAMI、大阪リージョンでは別のAMI、というように条件ごとの値をまとめて管理できます。プログラムが苦手な人でも、表を見る感覚で理解できるのが特徴です。環境差分の管理、リージョンごとの設定切り替えに強く、再利用性も高くなります。

3. マッピング(Mappings)の基本構文と書き方

3. マッピング(Mappings)の基本構文と書き方
3. マッピング(Mappings)の基本構文と書き方

マッピングは、テンプレートのMappingsセクションに記述します。キーと値を階層構造で定義し、あとから参照します。表の縦軸と横軸を決めて、交差する値を取り出すイメージです。


Mappings:
  RegionMap:
    ap-northeast-1:
      AMI: ami-12345678
    ap-northeast-3:
      AMI: ami-87654321

この例では、リージョンごとにAMI IDを定義しています。設定を一か所にまとめられるため、管理がとても楽になります。

4. Fn::FindInMapでマッピングを使う方法

4. Fn::FindInMapでマッピングを使う方法
4. Fn::FindInMapでマッピングを使う方法

定義したマッピングは、Fn::FindInMapという関数で呼び出します。これは「この表から、この条件の値を取ってくる」という指示です。難しく考えず、表引きだと思ってください。


ImageId:
  Fn::FindInMap:
    - RegionMap
    - !Ref AWS::Region
    - AMI

現在のリージョンに応じて、自動的に正しいAMIが選ばれます。環境差分を意識せずにテンプレートを使い回せるのが大きなメリットです。

5. 条件分岐(Conditions)とは?環境で処理を切り替える

5. 条件分岐(Conditions)とは?環境で処理を切り替える
5. 条件分岐(Conditions)とは?環境で処理を切り替える

条件分岐(コンディション)は、「もし○○なら作成する」「違えば作らない」といった判断をCloudFormationにさせる仕組みです。開発環境では作るが、本番環境では作らないリソース、というような制御が可能になります。人の判断を減らし、自動化を進めるうえで欠かせません。

6. Conditionsの定義方法とよく使う関数

6. Conditionsの定義方法とよく使う関数
6. Conditionsの定義方法とよく使う関数

Conditionsは、Parametersと組み合わせて使うことが多いです。環境名を受け取り、それが特定の値かどうかを判定します。代表的な関数には、Fn::EqualsやFn::Andなどがあります。


Conditions:
  IsProd:
    Fn::Equals:
      - !Ref EnvType
      - prod

この条件は、EnvTypeがprodの場合に真になります。設定ファイルでON・OFFを切り替える感覚に近いです。

7. 条件分岐(Conditions)をリソースに適用する方法

7. 条件分岐(Conditions)をリソースに適用する方法
7. 条件分岐(Conditions)をリソースに適用する方法

定義した条件は、ResourcesセクションでConditionとして指定します。条件が真のときだけ、そのリソースが作成されます。これにより、環境ごとに無駄なリソースを作らずに済みます。


MyEC2:
  Type: AWS::EC2::Instance
  Condition: IsProd
  Properties:
    InstanceType: t3.micro

本番環境だけEC2を作成する、といった制御が簡単にできます。

8. マッピングと条件分岐を組み合わせる実践例

8. マッピングと条件分岐を組み合わせる実践例
8. マッピングと条件分岐を組み合わせる実践例

マッピングと条件分岐を組み合わせることで、より柔軟なテンプレートが作れます。例えば、環境ごとにインスタンスタイプを変えたり、特定環境だけ追加設定を入れたりできます。これにより、1つのテンプレートで複数環境を安全に管理できます。CloudFormationの理解が深まると、インフラ構築のスピードと品質が大きく向上します。

カテゴリの一覧へ
新着記事
New1
RDS(データベース)
AWS RDSでSSL接続を有効化してセキュアに通信する方法を初心者向けに解説!
New2
RDS(データベース)
AWS RDSの料金体系とコスト管理ポイントを初心者向け解説!
New3
RDS(データベース)
AWS RDSのスナップショットを手動で作成・復元する方法を初心者向けにやさしく解説!
New4
Global Accelerator
AWS Global AcceleratorでALB/NLBをエンドポイントに設定する方法を初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ構造
Linuxの/homeディレクトリとは?役割と構造を初心者向けに徹底解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ構造
/varディレクトリの役割とは?Linuxの「変化するデータ」の置き場所を初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
AWS Shield
AWS Shieldの課金体系とコスト対策を徹底解説!初心者でもわかるDDoS対策の料金構造
No.5
Java&Spring記事人気No5
AWS 基本
AWSの公式料金計算ツール(Pricing Calculator)の使い方
No.6
Java&Spring記事人気No6
RDS(データベース)
AWS RDSのメンテナンスウィンドウの設定方法を解説!初心者でもできるクラウドデータベースの管理
No.7
Java&Spring記事人気No7
テキスト処理・検索コマンド
headコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイルの先頭を表示する基本
No.8
Java&Spring記事人気No8
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本