

# Systems Manager パラメータを使用して AMI を参照する
<a name="using-systems-manager-parameter-to-find-AMI"></a>

Amazon EC2 コンソールで EC2 インスタンス起動ウィザードを使用してインスタンスを起動する場合は、リストから AMI を選択するか、AMI ID (このセクションで説明) を指す AWS Systems Manager パラメータを選択できます。オートメーションコードを使用してインスタンスを作成する場合は、AMI ID の代わりに Systems Manager パラメータを指定できます。

システム管理 パラメータは、システム管理 パラメータストアで作成できるユーザー定義のキーと値のペアです。パラメータストアは、アプリケーションの設定値を外部化するための一元的なストアを提供します。詳細については、*AWS Systems Manager ユーザーガイド*の「[AWS システム管理 パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)」を参照してください。

AMI ID をポイントするパラメータを作成する場合は、データ型に `aws:ec2:image` を指定してください。このデータ型を指定すると、パラメータの作成時または変更時にパラメータ値が AMI ID として検証されます。詳細については、*AWS Systems Manager ユーザーガイド*の「[Amazon マシンイメージ ID のパラメータのネイティブサポート](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html)」を参照してください。

**Topics**
+ [ユースケース](#systems-manager-parameter-use-case)
+ [アクセス許可](#systems-manager-permissions)
+ [制限](#AMI-systems-manager-parameter-limitations)
+ [システム管理 パラメータを使用したインスタンスの起動](#systems-manager-parameter-launch-instance)

## ユースケース
<a name="systems-manager-parameter-use-case"></a>

システム管理 パラメータを使用して AMI ID を指すようにすると、ユーザーがインスタンスの起動時に適切な AMI を簡単に選択できるようになります。システム管理 パラメータにより、オートメーションコードのメンテナンスを簡素化することもできます。

**ユーザーの利便性の向上**

特定の AMI を使用してインスタンスを作成する必要があり、その AMI を定期的に更新する場合は、AMI を見つけるために システム管理 パラメータを選択するようにユーザーに求めることをお勧めします。ユーザーに システム管理 パラメータを選択するように求めると、インスタンスの起動に最新の AMI が使用されるようになります。

例えば、組織内で毎月最新のオペレーティングシステムとアプリケーションパッチが適用された AMI の新しいバージョンを作成するとします。また、ユーザーに最新バージョンの AMI を使用してインスタンスを作成するように求めるとします。ユーザーに最新バージョンを確実に使用させるには、適切な AMI ID をポイントする システム管理 パラメータ (例: `golden-ami` など) を作成することができます。新しいバージョンの AMI を作成するたびに、パラメータの AMI ID の値を更新して常に最新の AMI をポイントするようにします。ユーザーは毎回同じ システム管理 パラメータを選択し続けるため、AMI の定期的な更新について知る必要はありません。AMI に システム管理 パラメータを使用すると、ユーザーはインスタンスの起動に適切な AMI を簡単に選択できるようになります。

**オートメーションコードの保守の簡素化**

オートメーションコードを使用してインスタンスを作成する場合は、AMI ID の代わりに システム管理 パラメータを指定できます。新しいバージョンの AMI を作成したら、最新の AMI を指すようにパラメータの AMI ID の値を変更できます。パラメータを参照するオートメーションコードは、新しいバージョンの AMI を作成するたびに修正する必要はありません。これにより、オートメーションのメンテナンスが簡素化されるため、デプロイのコストの削減に役立ちます。

**注記**  
システム管理 パラメータが指す AMI ID を変更しても、実行中のインスタンスは影響を受けません。

## アクセス許可
<a name="systems-manager-permissions"></a>

インスタンス起動ウィザードで AMI ID をポイントする システム管理 パラメータを使用する場合は、IAM ポリシーに次のアクセス許可を追加する必要があります。
+ `ssm:DescribeParameters` – システム管理 パラメータを表示および選択するためのアクセス許可を付与します。
+ `ssm:GetParameters` – システム管理 パラメータの値を取得するためのアクセス許可を付与します。

また、特定の システム管理 パラメータへのアクセスを制限することもできます。詳細と IAM ポリシーの例については、「[例: EC2 インスタンス起動ウィザードの使用](iam-policies-ec2-console.md#ex-launch-wizard)」を参照してください。

## 制限
<a name="AMI-systems-manager-parameter-limitations"></a>

AMI と システム管理 パラメータはリージョンに固有です。リージョン間で同じ システム管理 パラメータ名を使用するには、それぞれのリージョンで同じ名前の システム管理 パラメータを作成します (例: `golden-ami` など)。それぞれのリージョンの システム管理 パラメータでそのリージョンの AMI をポイントします。

パラメータ名では大文字と小文字が区別されます。パラメータ名のバックスラッシュは、パラメータが階層の一部である場合にのみ必要です (例: `/amis/production/golden-ami`)。パラメータが階層の一部でない場合は、バックスラッシュを省略できます。

## システム管理 パラメータを使用したインスタンスの起動
<a name="systems-manager-parameter-launch-instance"></a>

インスタンスを起動するときは、AMI ID を指定する代わりに、AMI ID をポイントする Systems Manager パラメータを指定できます。

このパラメータをプログラム的に指定するには、以下の構文を使用します。この構文では、`resolve:ssm` が標準のプレフィクス、`parameter-name` が一意のパラメータ名になります。

```
resolve:ssm:{{parameter-name}}
```

システム管理 パラメータでは、バージョンがサポートされています。パラメータの各バージョンには、一意のバージョン番号が割り当てられます。パラメータのバージョンは以下のように参照できます。`version` は一意のバージョン番号です。デフォルトでは、パラメータのバージョンを指定しない場合は最新バージョンが使用されます。

```
resolve:ssm:{{parameter-name}}:{{version}}
```

AWS が提供するパブリックパラメータを使用してインスタンスを起動するには、「[Systems Manager パブリックパラメータを使用して最新の AMI を参照する](finding-an-ami-parameter-store.md)」を参照してください。

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

**Systems Manager パラメータを使用して AMI を検索する**

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

1. ナビゲーションバーから、インスタンスを起動するリージョンを選択してください。お客様は場所に関係なく、使用できるリージョンをどれでも選択できます。

1. コンソールダッシュボードで [**インスタンスの作成**] を選択してください。

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

1. 検索バーの右側にある矢印ボタンを選択し、**[システム管理 パラメータで検索]** を選択してください。

1. [**システム管理 パラメータ**] でパラメータを選択してください。対応する AMI ID が **[現在、以下に解決されています]** の下に表示されます。

1. [**検索**] を選択してください。AMI ID に一致する AMI がリストに表示されます。

1. リストから AMI を選択し、[**選択**] を選択してください。

インスタンス起動ウィザードを使用してインスタンスを起動する方法の詳細については、「[コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)」を参照してください。

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

**Systems Manager パラメータを使用してインスタンスを起動する**  
`--image-id` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。この例では、AMI ID を指定する **golden-ami** という名前の Systems Manager パラメータを使用します。

```
--image-id resolve:ssm:/{{golden-ami}}
```

Systems Manager パラメータにはバージョンを作成できます。次の例では、**golden-ami** パラメータのバージョン 2 を指定します。

```
--image-id resolve:ssm:/{{golden-ami:2}}
```

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

**Systems Manager パラメータを使用してインスタンスを起動する**  
`-ImageId` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。この例では、AMI ID を指定する **golden-ami** という名前の Systems Manager パラメータを使用します。

```
-ImageId "resolve:ssm:/golden-ami"
```

Systems Manager パラメータにはバージョンを作成できます。次の例では、**golden-ami** パラメータのバージョン 2 を指定します。

```
-ImageId "resolve:ssm:/golden-ami:2"
```

------