

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

# 起動テンプレートで AMI IDs の代わりに AWS Systems Manager パラメータを使用する
<a name="using-systems-manager-parameters"></a>

このセクションでは、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](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)または削除できます。起動テンプレートで Systems Manager パラメータを使用する前に、作成する必要があります。開始するには、データタイプ `aws:ec2:image` でパラメータを作成し、値については AMI の ID を入力できます。AMI ID は形式 `ami-<identifier>` があり、`ami-123example456` はその例です。正しい AMI ID は、Auto Scaling グループを起動するインスタンスタイプおよび AWS リージョン によって異なります。

AMI ID の有効なパラメータの作成について詳しくは、「[Systems Manager パラメータを作成する](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html)」を参照してください。

## AMI のパラメータを指定する起動テンプレートを作成する
<a name="using-systems-manager-parameters-create-launch-template"></a>

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

------
#### [ Console ]

**AWS Systems Manager パラメータを使用して起動テンプレートを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

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

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

1. **[カスタム値または 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***

   1. **[保存]** を選択します。

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

------
#### [ 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 パラメータへのアクセスを制限](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html)」を参照してください。

## 起動テンプレートが正しい AMI ID を取得していることを確認する
<a name="using-systems-manager-parameters-verify-launch-template"></a>

[describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) コマンドを使用し、 パラメータを実際の 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",
            }
        }
    ]
}
```

## 関連リソース
<a name="using-systems-manager-parameters-related-resources"></a>

起動テンプレートでの Systems Manager パラメータの指定について詳しくは、「*Amazon EC2 ユーザーガイド*」の「[AMI ID の代わりに Systems Manager パラメータを使用する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id)」を参照してください。

Systems Manager パラメータの使用に関する詳細は、Systems Manager のドキュメントの次のリファレンス資料を参照してください。
+ パラメータバージョンおよびラベルを作成するには、「[パラメータバージョンの使用](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html)」および「[パラメータラベルの操作](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html)」を参照してください。
+ Amazon EC2 でサポートされている AMI パブリックパラメータを検索する方法については、「[Calling AMI public parameters](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters-ami.html)」を参照してください。
+ 他の AWS アカウントまたは でパラメータを共有する方法については AWS Organizations、[「共有パラメータの使用](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html)」を参照してください。
+ パラメータが正常に作成されたかどうかをモニタリングする方法については、「[Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html)」を参照してください。

## 制限事項
<a name="using-systems-manager-parameters-limitations"></a>

Systems Manager パラメータを使用する場合は、次の制限事項に注意してください。
+ Amazon EC2 Auto Scaling は、AMI ID をパラメータとして指定することのみサポートします。
+ Systems Manager パラメータを指定する起動テンプレートを使用した、[属性ベースのインスタンスタイプ選択](create-mixed-instances-group-attribute-based-instance-type-selection.md)による[混合インスタンスグループ](ec2-auto-scaling-mixed-instances-groups.md)の作成または更新はサポートされていません。
+ 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 料金表](https://aws.amazon.com/systems-manager/pricing/)を参照してください。