

# Amazon EC2 起動テンプレートを作成する
<a name="create-launch-template"></a>

Amazon EC2 起動テンプレートを作成するには、インスタンス設定パラメータに独自の値を指定するか、既存の起動テンプレートまたは Amazon EC2 インスタンスから値を取得します。

起動テンプレートのすべてのパラメータに値を指定する必要はありません。起動テンプレートを作成するには、インスタンス設定パラメータを 1 つだけ指定する必要があります。指定しないパラメータを指定するには、コンソールの使用時に **[起動テンプレートに含めない]** を選択してください。コマンドラインツールを使用する場合は、起動テンプレートで指定しないことを示すパラメータを含めないでください。

起動テンプレートで AMI を指定する場合は、AMI を選択するか、インスタンスの起動時に AMI を指す Systems Manager パラメータを指定できます。

起動テンプレートを使用してインスタンスを起動すると、起動テンプレートで指定された値を使用して、対応するインスタンスパラメータを設定します。起動テンプレートで値が指定されていない場合は、対応するインスタンスパラメータのデフォルト値が使用されます。

**Topics**
+ [パラメータを指定して起動テンプレートを作成する](#create-launch-template-define-parameters)
+ [既存の起動テンプレートからの起動テンプレートの作成](#create-launch-template-from-existing-launch-template)
+ [インスタンスからの起動テンプレートの作成](#create-launch-template-from-instance)
+ [AMI ID のかわりに Systems Manager パラメータを使用する](#use-an-ssm-parameter-instead-of-an-ami-id)

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

起動テンプレートを作成する際には、そのテンプレートの名と、少なくとも 1 つのインスタンス設定パラメーターを指定する必要があります。

各パラメータの説明については、「[Amazon EC2 インスタンス設定パラメータのリファレンス](ec2-instance-launch-parameters.md)」を参照してください。

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

**起動テンプレートを作成するには**

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

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

1. **[起動テンプレートの名前と説明]** で、次の操作を行います。

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

   1. [**Template version description**] (テンプレートバージョンの説明) に、起動テンプレートバージョンの短い説明を入力してください。

   1. 作成時に起動テンプレートに[タグを付ける](Using_Tags.md)には、**[テンプレートタグ]** を展開し、**[新しいタグの追加]** を選択して、タグのキーと値のペアを入力してください。追加するタグごとに **[新しいタグを追加]** を選択してください。
**注記**  
インスタンスの起動時に作成されるリソースにタグを付けるには、**[Resource tags]** (リソースタグ) のタグを指定する必要があります。詳細については、この手順のステップ 9 を参照してください。

1. **[アプリケーションイメージと OS イメージ (Amazon マシンイメージ)]** では、**[起動テンプレートに含めない]** を選択したままにするか、インスタンスのオペレーティングシステム (OS) を選択してから AMI を選択できます。または、AMI を指定する代わりに Systems Manager パラメータを指定することもできます。詳細については、「[AMI ID のかわりに Systems Manager パラメータを使用する](#use-an-ssm-parameter-instead-of-an-ami-id)」を参照してください。

   AMI は、インスタンスの起動に必要なオペレーティングシステムとソフトウェアを含むテンプレートです。

1. **[インスタンスタイプ]** で、**[起動テンプレートに含めない]** を選択したままにするか、インスタンスタイプを選択するか、インスタンス属性を指定して Amazon EC2 がそれらの属性でインスタンスタイプを識別できるようにすることができます。
**注記**  
インスタンス属性の指定がサポートされるのは、Auto Scaling グループ、EC2 フリート、およびスポットフリートによってインスタンスを起動するために起動テンプレートが使用される場合のみです。詳細については「[Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html)」と「[EC2 フリートまたはスポットフリートのインスタンスタイプを選択するための属性を指定する](ec2-fleet-attribute-based-instance-type-selection.md)」を参照してください。  
[インスタンス起動ウィザード](ec2-launch-instance-wizard.md)または [RunInstances API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) で起動テンプレートを使用する予定がある場合は、インスタンスタイプ属性を指定できません。

   インスタンスタイプによって、インスタンスに使用されるホストコンピュータのハードウェア構成 (CPU、メモリ、ストレージ、ネットワークキャパシティ) とサイズが決まります。

   どのインスタンスタイプを選択するかわからない場合は、次の操作を実行できます。
   + **[インスタンスタイプの比較]** を選択して、vCPU の数、アーキテクチャ、メモリ量 (GiB)、ストレージ量 (GB)、ストレージタイプ、ネットワークパフォーマンスの属性によってさまざまなインスタンスタイプを比較します。
   + **[アドバイスの取得]** を選択して、EC2 インスタンスタイプファインダーからインスタンスタイプに関するガイダンスやアドバイスを取得します。詳細については、「[EC2 インスタンスタイプファインダーからレコメンデーションを取得する](get-ec2-instance-type-recommendations.md)」を参照してください。
**注記**  
アカウントの作成日に応じて、Amazon EC2 を無料利用枠で使用できる場合があります。  
2025 年 7 月 15 日より前に AWS アカウントを作成していて、12 か月が経過していない場合は、**[t2.micro]** インスタンスタイプ (**[t2.micro]** が利用できないリージョンでは **[t3.micro]** インスタンスタイプ) を選択することで、Amazon EC2 の無料利用枠を使用できます。**[t3.micro]** インスタンスを起動すると、デフォルトで [**[Unlimited]** モード](burstable-performance-instances-unlimited-mode.md)になり、CPU 使用率に基づいて追加料金が発生する可能性があることに注意してください。インスタンスタイプを無料利用枠で使用できる場合、**[無料利用枠の対象]** とラベル付けされます。  
2025 年 7 月 15 日以降に AWS アカウント を作成した場合、**t3.micro**、**t3.small**、**t4g.micro**、**t4g.small**、**c7i-flex.large**、**m7i-flex.large** インスタンスタイプを 6 か月間、またはクレジットを使い切るまで使用できます。  
詳細については、「[2025 年 7 月 15 日より前とそれ以降の無料利用枠の特典](ec2-free-tier-usage.md#ec2-free-tier-comparison)」を参照してください。

1. **[キーペア (ログイン)]** の **[キーペア名]** で、**[起動テンプレートに含めない]** を選択したままにするか、既存のキーペアを選択するか、新しいキーペアを作成します。

1. **[ネットワーク設定]** では、**[起動テンプレートに含めない]** を選択したままにするか、さまざまなネットワーク設定の値を指定できます。

1. **[ストレージの設定]** で、起動テンプレートで AMI を指定した場合、AMI にはルートボリューム (**[ボリューム 1 (AMI ルート)]**) を含む、1 つまたは複数のストレージボリュームが含まれます。オプションで、インスタンスにアタッチする追加のボリュームを指定できます。新しいボリュームを追加するには、[**Add new volume**] を選択してください。

1. **[リソースタグ]** で、インスタンスの起動時に作成されるリソースに[タグを付ける](Using_Tags.md)には、**[タグの追加]** を選択し、タグのキーと値のペアを入力してください。**[Resource types]** (リソースタイプ) で、作成時にタグを付けるリソースを指定します。すべてのリソースに同じタグを指定することも、リソースごとに異なるタグを指定することもできます。追加するタグごとに **[Add tag]** (タグの追加) を選択してください。

   起動テンプレートの使用時に作成される次のリソースにタグを指定できます。
   + インスタンス
   + ボリューム
   + Elastic graphics
   + スポットインスタンスリクエスト
   + ネットワークインターフェイス
**注記**  
起動テンプレート自体にタグを付けるには、**[Template tags]** (テンプレートタグ) でタグを指定する必要があります。詳細については、この手順のステップ 3 を参照してください。

1. **[高度な詳細]** では、セクションを展開してフィールドを表示し、必要に応じてインスタンスの追加パラメータを指定します。

1. **[概要]** パネルから起動テンプレートの設定を確認します。リンクを選択して任意のセクションに移動し、必要な変更を加えることができます。

1. 起動テンプレートを作成する準備ができたら、**[Create launch template]** (起動テンプレートの作成) をクリックしてください。

------
#### [ AWS CLI ]

**起動テンプレートを作成するには**  
[create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) コマンドを使用します。

```
aws ec2 create-launch-template \
    --launch-template-name TemplateForWebServer \
    --version-description WebVersion1 \
    --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \
    --launch-template-data file://template-data.json
```

インスタンス設定の起動テンプレートデータを指定する JSON の例を以下に示します。コマンド例に示すように、JSON をファイルに保存して `--launch-template-data` パラメータに含めます。

```
{
    "NetworkInterfaces": [{
        "AssociatePublicIpAddress": true,
        "DeviceIndex": 0,
        "Ipv6AddressCount": 1,
        "SubnetId": "subnet-0abcdef1234567890"
    }],
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "r5.4xlarge",
    "TagSpecifications": [{
        "ResourceType": "instance",
        "Tags": [{
            "Key":"Name",
            "Value":"webserver"
        }]
    }],
    "CpuOptions": {
        "CoreCount":4,
        "ThreadsPerCore":2
    }
}
```

以下は出力の例です。

```
{
    "LaunchTemplate": {
        "LatestVersionNumber": 1, 
        "LaunchTemplateId": "lt-01238c059e3466abc", 
        "LaunchTemplateName": "TemplateForWebServer", 
        "DefaultVersionNumber": 1, 
        "CreatedBy": "arn:aws:iam::123456789012:root", 
        "CreateTime": "2017-11-27T09:13:24.000Z"
    }
}
```

------
#### [ PowerShell ]

**起動テンプレートを作成するには**  
[New-EC2LaunchTemplate](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2LaunchTemplate.html) コマンドレットを使用します。

```
$launchTemplateData = [Amazon.EC2.Model.RequestLaunchTemplateData]@{
    ImageId = 'ami-0abcdef1234567890'
    InstanceType = 'r5.4xlarge'
    NetworkInterfaces = @(
        [Amazon.EC2.Model.LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]@{
            AssociatePublicIpAddress = $true
            DeviceIndex = 0
            Ipv6AddressCount = 1
            SubnetId = 'subnet-0abcdef1234567890'
        }
    )
    TagSpecifications = @(
        [Amazon.EC2.Model.LaunchTemplateTagSpecificationRequest]@{
            ResourceType = 'instance'
            Tags = [Amazon.EC2.Model.Tag]@{
                Key = 'Name'
                Value = 'webserver'
            }
        }
    )
    CpuOptions = [Amazon.EC2.Model.LaunchTemplateCpuOptionsRequest]@{
        CoreCount = 4
        ThreadsPerCore = 2
    }
}
$tagSpecificationData = [Amazon.EC2.Model.TagSpecification]@{
    ResourceType = 'launch-template'
    Tags = [Amazon.EC2.Model.Tag]@{
        Key = 'purpose'
        Value = 'production'
    }
}
New-EC2LaunchTemplate -LaunchTemplateName 'TemplateForWebServer' `
    -VersionDescription 'WebVersion1' `
    -LaunchTemplateData $launchTemplateData `
    -TagSpecification $tagSpecificationData
```

以下は出力の例です。

```
CreatedBy            : arn:aws:iam::123456789012:root
CreateTime           : 9/19/2023 16:57:55
DefaultVersionNumber : 1
LatestVersionNumber  : 1
LaunchTemplateId     : lt-01238c059eEXAMPLE
LaunchTemplateName   : TemplateForWebServer
Tags                 : {purpose}
```

------

## 既存の起動テンプレートからの起動テンプレートの作成
<a name="create-launch-template-from-existing-launch-template"></a>

既存の起動テンプレートをクローンして、新しい起動テンプレートを作成するようにパラメータを調整できます。ただし、これを実行できるのは、Amazon EC2 コンソールを使用している場合のみです。AWS CLI はテンプレートのクローン作成をサポートしていません。各パラメータの説明については、「[Amazon EC2 インスタンス設定パラメータのリファレンス](ec2-instance-launch-parameters.md)」を参照してください。

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

**既存の起動テンプレートから起動テンプレートを作成するには**

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

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

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

1. [**Template version description**] (テンプレートバージョンの説明) に、起動テンプレートバージョンの短い説明を入力してください。

1. 作成時に起動テンプレートにタグを付けるには、**[テンプレートタグ]** を展開し、**[新しいタグの追加]** を選択して、タグのキーと値のペアを入力してください。

1. **[Source template]** (ソーステンプレート) を展開し、**[Launch template name]** (起動テンプレート名) で、新しい起動テンプレートのベースとなる起動テンプレートを選択してください。

1. **[Source template version]** (ソーステンプレートのバージョン) で、新しい起動テンプレートのベースとなる起動テンプレートのバージョンを選択してください。

1. 必要に応じて起動パラメータを調整し、[**起動テンプレートの作成**] を選択してください。

------

## インスタンスからの起動テンプレートの作成
<a name="create-launch-template-from-instance"></a>

既存の Amazon EC2 インスタンスのパラメータのクローンを作成し、パラメータを調整して起動テンプレートを作成できます。各パラメータの説明については、「[Amazon EC2 インスタンス設定パラメータのリファレンス](ec2-instance-launch-parameters.md)」を参照してください。

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

**インスタンスから起動テンプレートを作成するには**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスを選び、**[アクション]**、**[イメージとテンプレート]**、**[インスタンスからテンプレートを作成]** の順に選択してください。

1. 名前、説明、およびタグを入力し、必要に応じて起動パラメータを調整します。
**注記**  
インスタンスから起動テンプレートを作成するとき、そのインスタンスのネットワークインターフェイス ID と IP アドレスはテンプレートに含まれません。

1. [**起動テンプレートの作成**] を選択してください。

------
#### [ AWS CLI ]

AWS CLI を使用して既存のインスタンスから起動テンプレートを作成するには、まずインスタンスから起動テンプレートデータを取得し、次に起動テンプレートデータを使用して起動テンプレートを作成します。

**インスタンスから起動テンプレートデータを取得するには**
+ [get-launch-template-data](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-launch-template-data.html) コマンドを使用して、インスタンス ID を指定します。出力をベースとして使用して、新しい起動テンプレートや起動テンプレートのバージョンを作成できます。デフォルトでは、起動テンプレートデータで指定できない最上位レベルの `LaunchTemplateData` オブジェクトが出力に含まれています。このオブジェクトを除外するには、`--query` オプションを使用します。

  ```
  aws ec2 get-launch-template-data \
      --instance-id i-0123d646e8048babc \
      --query "LaunchTemplateData"
  ```

  出力例を次に示します。

  ```
      {
          "Monitoring": {}, 
          "ImageId": "ami-8c1be5f6", 
          "BlockDeviceMappings": [
              {
                  "DeviceName": "/dev/xvda", 
                  "Ebs": {
                      "DeleteOnTermination": true
                  }
              }
          ], 
          "EbsOptimized": false, 
          "Placement": {
              "Tenancy": "default", 
              "GroupName": "", 
              "AvailabilityZone": "us-east-1a"
          }, 
          "InstanceType": "t2.micro", 
          "NetworkInterfaces": [
              {
                  "Description": "", 
                  "NetworkInterfaceId": "eni-35306abc", 
                  "PrivateIpAddresses": [
                      {
                          "Primary": true, 
                          "PrivateIpAddress": "10.0.0.72"
                      }
                  ], 
                  "SubnetId": "subnet-7b16de0c", 
                  "Groups": [
                      "sg-7c227019"
                  ], 
                  "Ipv6Addresses": [
                      {
                          "Ipv6Address": "2001:db8:1234:1a00::123"
                      }
                  ], 
                  "PrivateIpAddress": "10.0.0.72"
              }
          ]
      }
  ```

  出力を次のようにファイルに直接書き込むことができます。

  ```
  aws ec2 get-launch-template-data \
      --instance-id i-0123d646e8048babc \
      --query "LaunchTemplateData" >> instance-data.json
  ```

**起動テンプレートデータを使用して起動テンプレートを作成するには**
+ [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) コマンドを使用して、前の手順の出力を使用して起動テンプレートを作成します。AWS CLI を使用した起動テンプレートの作成の詳細については、[パラメータを指定して起動テンプレートを作成する](#create-launch-template-define-parameters)を参照してください。

------

## AMI ID のかわりに Systems Manager パラメータを使用する
<a name="use-an-ssm-parameter-instead-of-an-ami-id"></a>

起動テンプレートで AMI ID を指定する代わりに、AWS Systems Manager パラメータを指定できます。AMI ID が変更された場合は、Systems Manager パラメータストアの Systems Manager パラメータを更新することで、AMI ID を一箇所で更新できます。パラメータは、他の AWS アカウント と[共有](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html)することもできます。AMI パラメータは、1 つのアカウントで一元的に保存および管理し、これを参照する必要がある他のすべてのアカウントに共有することができます。Systems Manager パラメータを使用すると、すべての起動テンプレートを 1 回のアクションで更新できます。

Systems Manager パラメータは、[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) で作成できるユーザー定義のキーと値のペアです。パラメータストアは、アプリケーションの設定値を保存するための一元的な場所を提供します。

次の図では、`golden-ami` パラメータは最初にパラメータストア内の元の AMI `ami-aabbccddeeffgghhi` にマッピングされます。起動テンプレートの AMI ID の値は `golden-ami` です。この起動テンプレートを使用してインスタンスを起動するとき、AMI ID は `ami-aabbccddeeffgghhi` に変換されます。その後、AMI が更新され、新しい AMI ID が取得されます。パラメータストアでは、`golden-ami` パラメータが新しい `ami-00112233445566778` パラメータにマッピングされます。起動テンプレートは変更されずに引き継がれます。この起動テンプレートを使用してインスタンスを起動するとき、AMI ID は新しい `ami-00112233445566778` に変換されます。

![\[パラメータストアの Systems Manager パラメータを使用して起動テンプレートを更新します。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/launch-template-ami-alias.png)


### AMI ID の Systems Manager パラメータ形式
<a name="ssm-parameter-format-for-ami-ids"></a>

起動テンプレートを AMI ID の代わりに使用する場合、ユーザー定義の Systems Manager パラメータを次の形式に従う必要があります。
+ パラメータ型: `String`
+ パラメータデータ型: `aws:ec2:image` - これにより、パラメータストアは入力した値が AMI ID の適切な形式であることを検証します。

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

### 起動テンプレートの Systems Manager パラメータ形式
<a name="ssm-parameter-format-in-launch-templates"></a>

起動テンプレートの AMI ID の代わりに 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`

**パラメータバージョン**

Systems Manager パラメータはバージョニングされたリソースです。パラメータを更新すると、そのパラメータの新しいバージョンが連続して作成されます。Systems Manager は、特定のバージョンのパラメータにマッピングできる[パラメータラベル](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html)をサポートしています。

例えば、`golden-ami` パラメータには、`1`、`2` および `3` の 3 つのバージョンがあります。バージョン `2` にマッピングするパラメータラベル `beta` と、バージョン `3` にマップするパラメータラベル `prod` を作成できます。

起動テンプレートでは、次のいずれかの形式を使用して `golden-ami` パラメータのバージョン 3 を指定できます。
+ `resolve:ssm:golden-ami:3`
+ `resolve:ssm:golden-ami:prod`

バージョンまたはラベルの指定は任意です。バージョンやパラメータを指定しない場合は最新バージョンのパラメータが使用されます。

### 起動テンプレートの Systems Manager パラメータを指定する
<a name="specify-systems-manager-parameter-in-launch-template"></a>

起動テンプレートまたは起動テンプレートの新しいバージョンを作成するときに、起動テンプレートで AMI ID の代わりに Systems Manager パラメータを指定できます。

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

**起動テンプレートの 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. [**Save**] を選択してください。

1. 必要に応じて他の起動テンプレートパラメータを指定し、その後に **[起動テンプレートの作成]** を選択してください。

詳細については、「[パラメータを指定して起動テンプレートを作成する](#create-launch-template-define-parameters)」を参照してください。

------
#### [ AWS CLI ]

**起動テンプレートの Systems Manager パラメータを指定するには**
+ [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) コマンドを使用して、起動テンプレートを作成します。使用する AMI を指定するには、次のいずれかの形式を使用して 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***

  次の例では、以下を指定する起動テンプレートを作成します。
  + 起動テンプレートの名前 (`TemplateForWebServer`)
  + 起動テンプレートのタグ (`purpose`=`production`)
  + JSON ファイルで指定された、インスタンス設定のデータ。
    + 使用する AMI (`resolve:ssm:golden-ami`)
    + 起動するインスタンスタイプ (`m5.4xlarge`)
    + インスタンスに付けるタグ (`Name`=`webserver`)

  ```
  aws ec2 create-launch-template \
      --launch-template-name TemplateForWebServer \
      --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \
      --launch-template-data file://template-data.json
  ```

  インスタンスを設定するための起動テンプレートデータを含む、JSON ファイルの例を以下に示します。`ImageId` の値は Systems Manager パラメータ名で、必要な形式 `resolve:ssm:golden-ami` で入力されます。

  ```
  {"LaunchTemplateData": {
      "ImageId": "resolve:ssm:golden-ami",
      "InstanceType": "m5.4xlarge",
      "TagSpecifications": [{
          "ResourceType": "instance",
          "Tags": [{
              "Key":"Name",
              "Value":"webserver"
          }]
      }]
    }
  }
  ```

------

### 起動テンプレートが正しい AMI ID を取得していることを確認する
<a name="ssm-parameter-verify-ami-id"></a>

**Systems Manager のパラメータを実際の AMI ID に変換するには**  
[describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) コマンドを使用して、`--resolve-alias` パラメータを含めます。

```
aws ec2 describe-launch-template-versions \
    --launch-template-name my-launch-template \
    --versions $Default \
    --resolve-alias
```

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

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

### 関連リソース
<a name="ssm-parameter-related-resources"></a>

Systems Manager パラメータの使用に関する詳細は、Systems Manager のドキュメントの次のリファレンス資料を参照してください。
+ 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 を介して共有する方法については、「[Working with shared parameters](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="ssm-parameter-limitations"></a>
+ タイプが `instant` の EC2 フリートのみが、AMI ID の代わりに Systems Manager パラメータが指定されている起動テンプレートを使用できます。
+ タイプが `maintain` と `request` の EC2 フリートと、さらにスポットフリートでは、AMI ID の代わりに Systems Manager パラメータが指定されている起動テンプレートを使用できません。タイプが `maintain` と `request` の EC2 フリートと、さらにスポットフリートでは、起動テンプレートに AMI を指定する場合、AMI ID を指定する必要があります。
+ EC2 フリートで[属性ベースのインスタンスの選択](ec2-fleet-attribute-based-instance-type-selection.md)を使用した場合は、AMI ID の代わりに Systems Manager パラメータを指定できません。属性ベースのインスタンスの選択を使用する場合は、AMI ID を指定する必要があります。
+ Amazon EC2 Auto Scaling には、その他の制限があります。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「[Use AWS Systems Manager parameters instead of AMI IDs in launch templates](https://docs.aws.amazon.com/autoscaling/ec2/userguide/using-systems-manager-parameters.html)」を参照してください。