起動テンプレートで AMI IDs の代わりに AWS Systems Manager パラメータを使用する - アマゾン EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

起動テンプレートで AMI IDs の代わりに AWS Systems Manager パラメータを使用する

このセクションでは、Amazon マシンイメージ (AMI) ID を参照する AWS Systems Manager パラメータを指定する起動テンプレートを作成する方法を説明します。同じ に保存されているパラメータ AWS アカウント、別の から共有されているパラメータ AWS アカウント、または によって管理されているパブリック AMI のパブリックパラメータを使用できます AWS。

Systems Manager パラメータにより、AMI ID が変更されるたびに新しい起動テンプレートまたは新しいバージョンの起動テンプレートを作成しなくても、新しい AMI ID を使用するように Auto Scaling グループを更新できます。AMI が更新されて最新の OS またはソフトウェアアップデートが追加されたときなど、これらの ID は定期的に変更される可能性があります。

の一機能である Parameter Store を使用して、独自の Systems Manager パラメータを作成、更新、 AWS Systems Managerまたは削除できます。起動テンプレートで Systems Manager パラメータを使用する前に、作成する必要があります。開始するには、データタイプ aws:ec2:image でパラメータを作成し、値については AMI の ID を入力できます。AMI ID は形式 ami-<identifier> があり、ami-123example456 はその例です。正しい AMI ID は、Auto Scaling グループを起動するインスタンスタイプおよび AWS リージョン によって異なります。

AMI ID の有効なパラメータの作成について詳しくは、「Systems Manager パラメータを作成する」を参照してください。

AMI のパラメータを指定する起動テンプレートを作成する

AMI のパラメータを指定する起動テンプレートを作成するには、次のいずれかの方法を使用します。

Console
AWS Systems Manager パラメータを使用して起動テンプレートを作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[起動テンプレート]、[起動テンプレートの作成] の順に選択してください。

  3. [起動テンプレート名] に、起動テンプレートのわかりやすい名前を入力してください。

  4. [Application and OS Images (アマゾン Machine Image)] (アプリケーションおよび OS イメージ (アマゾン マシンイメージ)) で、[Browse more AMIs] (その他の AMI を閲覧する) を選択してください。

  5. 検索バーの右側にある矢印ボタンを選択したら、[カスタム値を指定 / Systems Manager パラメータ] を選択してください。

  6. [カスタム値または Systems Manager のパラメータを指定] ダイアログボックスで、次の手順を実行します。

    1. [AMI ID または Systems Manager パラメータ文字列] の場合、次の形式のいずれかを使用して Systems Manager パラメータ名を入力してください。

      パブリックパラメータを参照するには:

      • resolve:ssm:public-parameter

      同じアカウントに保存されているパラメータを参照するには:

      • resolve:ssm:parameter-name

      • resolve:ssm:parameter-name:version-number

      • resolve:ssm:parameter-name:label

      別の AWS アカウントから共有されたパラメータを参照するには:

      • resolve:ssm:parameter-ARN

      • resolve:ssm:parameter-ARN:version-number

      • resolve:ssm:parameter-ARN:label

    2. [Save] を選択します。

  7. 必要に応じて、他の起動テンプレート設定を実行してから [起動テンプレートを作成] を選択します。詳細については、「Auto Scaling グループの起動テンプレートを作成する」を参照してください。

AWS CLI

Systems Manager パラメータを指定する起動テンプレートを作成するには、次のいずれかのコマンド例を使用します。各ユーザー入力プレースホルダーを独自の情報に置き換えます。

例: AWS所有のパブリックパラメータを指定する起動テンプレートを作成する

resolve:ssm:public-parameter という構文を使用します。ただし、resolve:ssm は標準のプレフィクスで public-parameter はパブリックパラメータのパスおよび名前です。

この例では、起動テンプレートは AWSが提供するパブリックパラメータを使用して、プロファイル用に AWS リージョン 設定された で最新の Amazon Linux 2 AMI を使用してインスタンスを起動します。

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

config.json の内容:

{ "ImageId":"resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "InstanceType":"t2.micro" }

以下に、応答の例を示します。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
例: 同じアカウントに保存されているパラメータを指定する起動テンプレートを作成する

resolve:ssm:parameter-name という構文を使用します。ただし、resolve:ssm は標準のプレフィックスで parameter-name は Systems Manager のパラメータ名です。

次の例では、golden-ami という名前の既存の Systems Manager パラメータから AMI ID を取得する起動テンプレートを作成します。

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling \ --launch-template-data file://config.json

config.json の内容:

{ "ImageId":"resolve:ssm:golden-ami", "InstanceType":"t2.micro" }

パラメータのデフォルトバージョンを指定しない場合、最新バージョンです。

次の例では、golden-ami パラメータの特定のバージョンを参照しています。この例では、golden-ami パラメータのバージョン 3 を使用していますが、有効なバージョン番号であればどれでも使用できます。

{ "ImageId":"resolve:ssm:golden-ami:3", "InstanceType":"t2.micro" }

次の同様の例では、golden-ami パラメータの特定のバージョンにマップするパラメータラベル prod を参照しています。

{ "ImageId":"resolve:ssm:golden-ami:prod", "InstanceType":"t2.micro" }

以下は出力例です。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-27T17:11:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
例: 別の から共有されるパラメータを指定する起動テンプレートを作成する AWS アカウント

resolve:ssm:parameter-ARN という構文を使用します。ただし、resolve:ssm は標準のプレフィックスで parameter-ARN は Systems Manager パラメータの ARN です。

次の例では、ARN が arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter である既存の Systems Manager パラメータから AMI ID を取得する起動テンプレートを作成します。

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

config.json の内容:

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter", "InstanceType":"t2.micro" }

パラメータのデフォルトバージョンを指定しない場合、最新バージョンです。

次の例では、MyParameter パラメータの特定のバージョンを参照しています。この例では、MyParameter パラメータのバージョン 3 を使用していますが、有効なバージョン番号であればどれでも使用できます。

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:3", "InstanceType":"t2.micro" }

次の同様の例では、MyParameter パラメータの特定のバージョンにマップするパラメータラベル prod を参照しています。

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:prod", "InstanceType":"t2.micro" }

以下に、応答の例を示します。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-00f93d4588example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2024-01-08T12:43:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

起動テンプレートで Parameter Store からのパラメータを指定するには、指定するパラメータに対する ssm:GetParameters アクセス許可が必要です。起動テンプレートを使用するすべてのユーザーには、パラメータ値を検証するための ssm:GetParameters アクセス許可も必要です。詳細については、「AWS Systems Manager ユーザーガイド」の「IAM ポリシーを使用して Systems Manager パラメータへのアクセスを制限」を参照してください。

起動テンプレートが正しい AMI ID を取得していることを確認する

describe-launch-template-versions コマンドを使用し、 パラメータを実際の AMI ID に解決する --resolve-alias オプションを含めます。

aws ec2 describe-launch-template-versions --launch-template-name my-template-for-auto-scaling \ --versions 1 --resolve-alias

この例では、ImageId に AMI ID を返します。この起動テンプレートを使用してインスタンスを起動するとき、AMI ID は ami-0ac394d6a3example に変換されます。

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0ac394d6a3example", "InstanceType": "t2.micro", } } ] }

起動テンプレートでの Systems Manager パラメータの指定について詳しくは、「Amazon EC2 ユーザーガイド」の「AMI ID の代わりに Systems Manager パラメータを使用する」を参照してください。

Systems Manager パラメータの使用に関する詳細は、Systems Manager のドキュメントの次のリファレンス資料を参照してください。

制限

Systems Manager パラメータを使用する場合は、次の制限事項に注意してください。

  • Amazon EC2 Auto Scaling は、AMI ID をパラメータとして指定することのみサポートします。

  • Systems Manager パラメータを指定する起動テンプレートを使用した、属性ベースのインスタンスタイプ選択による混合インスタンスグループの作成または更新はサポートされていません。

  • Auto Scaling グループが Systems Manager パラメータを指定する起動テンプレートを使用している場合、希望する設定で、あるいはスキップマッチングを使用してインスタンスの更新を開始することはできません。

  • Auto Scaling グループが Systems Manager パラメータを指定する起動テンプレートを使用している場合、ウォームプールはサポートされません。

  • Auto Scaling グループを作成または更新する呼び出しのたびに、Amazon EC2 Auto Scaling は起動テンプレートの Systems Manager パラメータを変換します。高度なパラメータまたはより高いスループット制限を使用している場合、Parameter Store (つまり、GetParameters 操作) への頻繁な呼び出しは、Parameter Store API 対話ごとに料金が発生するため、Systems Manager のコストが増加する可能性があります。詳細については、AWS Systems Manager の料金を参照してください。