起動テンプレートで AMI IDs の代わりに AWS Systems Manager パラメータを使用する - Amazon 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 (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、[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. [保存] を選択します。

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

次の例では、ARN が の既存の Systems Manager パラメータから AMI ID を取得する起動テンプレートを作成します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 パラメータの特定のバージョンを参照しています。この例では、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 } }

起動テンプレートのパラメータストアからパラメータを指定するには、指定したパラメータに対する アクセスssm:GetParameters許可が必要です。起動テンプレートを使用するユーザーには、パラメータ値を検証するための アクセスssm:GetParameters許可も必要です。詳細については、「 ユーザーガイド」の「IAM ポリシーを使用した Systems Manager パラメータへのアクセスの制限」を参照してください。 AWS 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 $Default --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 パラメータを指定する方法の詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「AMI ID の代わりに Systems Manager パラメータを使用する」を参照してください。 Amazon EC2

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

制限事項

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

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

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