AWS CloudFormationでマッピングを利用してリジョンに適したAMIを使用する方法
CloudFormation のマッピング機能を利用して、各リージョンに適した AMI を自動的に選択する方法です
AWS CloudFormationでリージョン別 AMI を自動選択する方法
AWS で EC2 インスタンスをデプロイする際、各リージョンごとに AMI(Amazon Machine Image)が異なることをご存知でしょうか?
この問題を手動で解決するのは大変ですが、CloudFormation の マッピング 機能を使えば、リージョンに応じた適切な AMI を自動的に選択することができます。
AWS CloudFormation マッピング機能の概要
CloudFormation の マッピング は、リージョンや環境ごとの設定値をテンプレート内で定義しておく仕組みです。
これによって各リージョンで異なる AMI ID を使用することが可能になります
今回は、リージョンに合わせた AMI の選択する方法にご紹介いたします。
テンプレート例:リージョン毎に異なる AMI を選択
以下は、CloudFormation の マッピング 機能を利用して、リージョンに合わせた Amazon Linux 2 の AMI を選択する YAML テンプレートの例です。
AWSTemplateFormatVersion: '2010-09-09'
Description: >
CloudFormation の マッピング を利用して、各リージョンに合う AMI を選択するサンプルテンプレート
Mappings:
RegionMap:
us-east-1:
AMI: ami-0c94855ba95c71c99 # Amazon Linux 2 の AMI (例)
us-west-2:
AMI: ami-0abcdef1234567890 # 別リージョンの AMI
eu-west-1:
AMI: ami-0123456789abcdef0 # ヨーロッパリージョンの AMI
ap-northeast-1:
AMI: ami-0fedcba9876543210 # 東京リージョンの AMI
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t3.micro
# 現在のリージョンに合わせて Mappings から AMI を取得
ImageId: !FindInMap
- RegionMap
- !Ref "AWS::Region"
- AMI
KeyName: my-keypair
Tags:
- Key: Name
Value: MyInstance
テンプレート解説
-
Mappings セクション
RegionMap
マッピングに、各リージョンごとの AMI ID を定義しています。- 例として、
us-east-1
やap-northeast-1
など複数のリージョンに対して AMI を設定。
-
!FindInMap 関数
ImageId
プロパティでは、!FindInMap
関数を使って現在のリージョン(AWS::Region
)に対応する AMI を取得。- これにより、スタック作成時に自動的に適切な AMI が選ばれます。
-
リソースの定義
- サンプルでは、EC2 インスタンス (
MyEC2Instance
) を定義し、インスタンス作成時にリージョン別の AMI を使用しています。
- サンプルでは、EC2 インスタンス (
マッピング機能を利用するメリット
-
自動化と再利用性の向上
テンプレート内にマッピングを定義することで、同じテンプレートを異なるリージョンで再利用できます。
デプロイ先のリージョンに合わせた設定が自動的に適用されるため、手動で AMI を切り替える必要がなくなります。 -
環境ごとの柔軟な設定
開発環境と本番環境、またはリージョンごとに異なる設定をマッピングに含めることで、1 つのテンプレートで複数の環境に対応ができます。 -
エラーの削減
手動での AMI ID の指定ミスやリージョン間の設定の不整合を防止し、正確なデプロイが実現できます。
まとめ
CloudFormation の マッピング 機能を利用すれば、各リージョンに合わせた適切な AMI を自動で選択することができます。
この記事では、リージョンごとに異なる AMI をマッピングで定義し、!FindInMap
関数を使って自動的に参照する方法をご紹介しました。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイト をぜひご覧ください