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

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

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

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

Systems Manager パラメータを使用すると、AMIID が変更されるたびに新しい起動テンプレートや新しいバージョンの起動テンプレートを作成するAMIIDs必要なく、新しい を使用するように Auto Scaling グループを更新できます。これらは、 AMIが最新のオペレーティングシステムやソフトウェア更新で更新された場合など、定期的に変更IDsされる可能性があります。

の一機能である Parameter Store を使用して、独自の Systems Manager パラメータを作成、 AWS Systems Manager更新、または削除できます。起動テンプレートで Systems Manager パラメータを使用する前に、作成する必要があります。開始するには、データ型 でパラメータを作成しaws:ec2:image、その値に の ID を入力しますAMI。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. アプリケーションイメージと OS イメージ (Amazon マシンイメージ) で、さらに を参照 AMIsを選択します。

  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 パラメータを指定する起動テンプレートを作成するには、次のいずれかのサンプルコマンドを使用できます。各 を置き換える user input placeholder 自分の情報を入力します。

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

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

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

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 のパラメータ名です。

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

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 パラメータ。この例では バージョンを使用しています 3golden-ami パラメータ。ただし、任意の有効なバージョン番号を使用できます。

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

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

{ "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-ARNresolve:ssmは標準プレフィックスで、 parameter-ARNは Systems Manager パラメータARNの です。

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

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 パラメータの特定のバージョンを参照しています。この例では バージョンを使用しています 3 MyParameter パラメータの ですが、任意の有効なバージョン番号を使用できます。

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

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

{ "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 コマンドを使用し、 --resolve-aliasオプションを含めて、 パラメータを実際の AMI ID に解決します。

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

この例では、 の AMI ID を返しますImageId。この起動テンプレートを使用してインスタンスを起動すると、AMIID は に解決されます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 では、パラメータAMIIDsとしての の指定のみがサポートされています。

  • 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 の料金を参照してください。