EC2 インスタンスの要件を満たす AMI を検索する - Amazon Elastic Compute Cloud

EC2 インスタンスの要件を満たす AMI を検索する

AMI には、インスタンスの起動に必要な、オペレーティングシステムやルートボリュームのタイプなどのコンポーネントとアプリケーションが含まれています。インスタンスを起動するには、要件を満たす AMI を検索する必要があります。

AMI を選択する際には、起動するインスタンスについて求められる可能性のある次の要件を検討してください。

  • AMI ID としての AMI の AWS リージョンは、各リージョンに固有のものです。

  • オペレーティングシステム (Linux、Windows など)。

  • アーキテクチャ (32 ビット、64 ビット、64 ビット ARM など)。

  • ルートデバイスタイプ (Amazon EBS、インスタンスストアなど)。

  • プロバイダー (Amazon Web Services など)。

  • 追加のソフトウェア (SQL Server など)。

Amazon Linux 2023 AMI を検索するには、「Amazon Linux 2023 ユーザーガイド」の「Amazon EC2 での AL2023」を参照してください。

Ubuntu AMI を検索するには、Canonical Ubuntu ウェブサイトの「Amazon EC2 AMI Locator」を参照してください。

RHEL AMI を検索するには、Red Hat ウェブサイトの「Red Hat Enterprise Linux Images (AMI) Available on Amazon Web Services (AWS)」を参照してください。

ニーズに合った AMI を検索する方法はいろいろあります。Amazon EC2 コンソール、AWS CLI、AWS Tools for Windows PowerShell、および AWS Systems Manager を使用して AMI を検索できます。

Amazon EC2 コンソールを使用して AMI を検索できます。インスタンス起動ウィザードを使用してインスタンスを起動するときに、AMI のリストから目的のインスタンスを選択できます。また、[Images] (イメージ) ページを使用して使用可能なすべての AMI を検索することもできます。

インスタンス起動ウィザードを使用して AMI を検索するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションバーから、インスタンスを起動するリージョンを選択します。お客様は場所に関係なく、使用できるリージョンをどれでも選択できます。AMI ID は各 AWS リージョンで固有です。

  3. コンソールダッシュボードで [インスタンスの作成] を選択します。

  4. [アプリケーションと OS イメージ (Amazon マシンイメージ)] にある [クイックスタート] を選択し、インスタンスのオペレーティングシステム (OS) を選択します。次に、[Amazon マシンイメージ (AMI)] で、よく使用されている AMI の 1 つをリストから選択します。必要な AMI が表示されていない場合は、[Browser more AMIs] (その他の AMI を閲覧) を選択して、AMI の全カタログを参照します。詳細については、「アプリケーションと OS イメージ (Amazon マシンイメージ)」を参照してください。

AMI ページを使用して AMI を検索するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションバーから、インスタンスを起動するリージョンを選択します。お客様は場所に関係なく、使用できるリージョンをどれでも選択できます。AMI ID は各 AWS リージョンで固有です。

  3. ナビゲーションペインで [AMI] を選択します。

  4. (オプション) フィルターと検索オプションを使用すると、表示される AMI を限定して、条件に一致する AMI のみを表示できます。

    例えば、AWS で提供されるすべての AMI を表示するには、[パブリックイメージ] を選択します。次に、検索オプションを使用して、AMI のリストに表示される範囲を指定します。検索バーをクリックし、メニューから [Owner alias] (所有者エイリアス)、[=] 演算子の順に選択し、値として [Amazon] を選択します。Linux や Windows など、特定のプラットフォームに対応する AMI を検索するには、[検索] バーを再度選択して [プラットフォーム] を選択し、そして [=] 演算子を選択して、表示されたリストからオペレーティングシステムを選択します。

  5. (オプション) [設定] アイコンを選択して、ルートデバイスタイプなど、表示するイメージ属性を選択します。あるいは、一覧から AMI を選択し、[Details] (詳細) タブにそのプロパティを表示できます。

  6. AMI を選択する前に、その AMI が Instance Store-Backed と Amazon EBS-Backed のどちらであるかを確認し、その違いを認識しておくことが重要です。詳細については、「ルートデバイスタイプ」を参照してください。

  7. この AMI からインスタンスを起動するには、インスタンスを選択し、[イメージからのインスタンスの起動] を選択します。コンソールを使用してインスタンスを起動する方法については、コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する を参照してください。まだインスタンスを起動する準備ができていない場合は、後で使用するために AMI ID を記録します。

describe-images AWS CLI コマンドを使用して、要件に一致する AMI のみを一覧表示できます。要件に一致する AMI が見つかったら、インスタンスの起動に使用できるようにその ID をメモしておきます。詳細については、[AWS Command Line Interface User Guide] (ユーザーガイド) の[Launch your instance] (インスタンスを起動) を参照してください。

describe-images コマンドは、フィルタリングパラメータをサポートしています。例えば、Amazon が所有するパブリック AMI を表示するのに --owners パラメーターを使用します。

aws ec2 describe-images --owners amazon

Windows AMI のみを表示するには、前のコマンドに以下のフィルターを追加します。

--filters "Name=platform,Values=windows"

Amazon EBS-backed AMI のみを表示するには、上記のコマンドに以下のフィルターを追加します。

--filters "Name=root-device-type,Values=ebs"
重要

describe-images コマンドの --owners パラメータを省略すると、所有権に関係なく、起動許可があるすべてのイメージが返されます。

PowerShell コマンドレットを使用して、要件に一致する Windows AMI のみを表示できます。詳細と例については、「AWS Tools for Windows PowerShell ユーザーガイド」の「Windows PowerShell を使用した Amazon マシンイメージの検索」を参照してください。

要件に一致する AMI が見つかったら、インスタンスの起動に使用できるようにその ID をメモしておきます。詳細については、「AWS Tools for Windows PowerShell ユーザーガイド」の「Windows PowerShell を使用した Amazon EC2 インスタンスの起動」を参照してください。

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

Systems Manager パラメータは、Systems Manager パラメータストアで作成できるユーザー定義のキーと値のペアです。パラメータストアは、アプリケーションの設定値を外部化するための一元的なストアを提供します。詳細については、AWS Systems Manager ユーザーガイドの「AWS Systems Manager Parameter Store」を参照してください。

AMI ID をポイントするパラメータを作成する場合は、データ型に aws:ec2:image を指定してください。このデータ型を指定すると、パラメータの作成時または変更時にパラメータ値が AMI ID として検証されます。詳細については、AWS Systems Manager ユーザーガイドの「Amazon マシンイメージ ID のパラメータのネイティブサポート」を参照してください。

ユースケース

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

ユーザーの利便性の向上

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

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

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

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

注記

Systems Manager パラメータが指す AMI ID を変更しても、実行中のインスタンスは影響を受けません。

アクセス許可

インスタンス起動ウィザードで AMI ID をポイントする Systems Manager パラメータを使用する場合は、IAM ポリシーに次のアクセス許可を追加する必要があります。

  • ssm:DescribeParameters – Systems Manager パラメータを表示および選択するためのアクセス許可を付与します。

  • ssm:GetParameters – Systems Manager パラメータの値を取得するためのアクセス許可を付与します。

また、特定の Systems Manager パラメータへのアクセスを制限することもできます。詳細と IAM ポリシーの例については、「例: EC2 起動インスタンスウィザードの使用」を参照してください。

制約事項

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

Systems Manager パラメータを使用したインスタンスの起動

コンソールまたは AWS CLI を使用してインスタンスを作成できます。AMI ID を指定する代わりに、AMI ID をポイントする AWS Systems Manager パラメータを指定できます。

Systems Manager パラメータを使用して AMI を検索するには (コンソール)
  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. 検索バーの右側にある矢印ボタンを選択し、[Search by Systems Manager parameter] (Systems Manager パラメータで検索) を選択します。

  6. [Systems Manager parameter (Systems Manager パラメータ)] でパラメータを選択します。対応する AMI ID が [Currently resolves to] (現在、以下に解決されています) の下に表示されます。

  7. [検索] を選択します。AMI ID に一致する AMI がリストに表示されます。

  8. リストから AMI を選択し、[Select (選択)] を選択します。

インスタンス起動ウィザードを使用してインスタンスを起動する方法の詳細については、「コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する」を参照してください。

AMI ID の代わりに AWS Systems Manager パラメータを使用してインスタンスを作成するには (AWS CLI)

次の例では、Systems Manager パラメータの golden-ami を使用して m5.xlarge インスタンスを作成します。このパラメータは AMI ID をポイントします。

このパラメータをコマンドで指定するには、resolve:ssm:/parameter-name 構文を使用します。この場合、resolve:ssm は標準のプレフィクス、parameter-name は一意のパラメータ名です。パラメータ名では、大文字と小文字が区別されることに注意してください。パラメータ名のバックスラッシュは、パラメータが階層の一部である場合にのみ必要です (例: /amis/production/golden-ami)。パラメータが階層の一部でない場合は、バックスラッシュを省略できます。

この例では、--count パラメータと --security-group パラメータは含まれていません。--count はデフォルトで 1 になります。デフォルトの VPC とデフォルトのセキュリティグループがある場合は、これらが使用されます。

aws ec2 run-instances --image-id resolve:ssm:/golden-ami --instance-type m5.xlarge ...
特定のバージョンの AWS Systems Manager パラメータを使用してインスタンスを作成するには (AWS CLI)

Systems Manager パラメータでは、バージョンがサポートされています。パラメータの各バージョンには、一意のバージョン番号が割り当てられます。パラメータのバージョンは、resolve:ssm:parameter-name:version のように参照できます。version は一意のバージョン番号です。デフォルトでは、パラメータのバージョンを指定しない場合は最新バージョンが使用されます。

次の例では、バージョン 2 のパラメータを使用します。

この例では、--count パラメータと --security-group パラメータは含まれていません。--count の場合、デフォルトは 1 です。デフォルトの VPC とデフォルトのセキュリティグループがある場合は、そのデフォルトが使用されます。

aws ec2 run-instances --image-id resolve:ssm:/golden-ami:2 --instance-type m5.xlarge ...
AWS が提供するパブリックパラメータを使用してインスタンスを起動するには

Systems Manager には、AWS が提供するパブリック AMI 用のパブリックパラメータがあります。インスタンスの起動時にパブリックパラメータを使用することで、確実に最新の AMI を使用することができます。

詳細については、「Systems Manager パブリックパラメータを使用して最新の AMI を検索する」を参照してください。

AWS Systems Manager には、AWS によって維持されるパブリック AMI 用のパブリックパラメータがあります。インスタンスの起動時にパブリックパラメータを使用することで、確実に最新の AMI を使用することができます。例えば、パブリックパラメータ /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64 はすべてのリージョンで使用でき、特定のリージョンの arm64 アーキテクチャ対応 Amazon Linux 2023 AMI の最新バージョンを常にポイントします。

パブリックパラメータは次のパスから使用できます。

  • Linux/aws/service/ami-amazon-linux-latest

  • Windows/aws/service/ami-windows-latest

現在の AWS リージョン内のすべての Linux AMI または Windows AMI のリストを表示するには

次の get-parameters-by-path AWS CLI コマンドを使用して、現在の AWS リージョン内のすべての Linux AMI または Windows AMI のリストを表示します。--path パラメータの値は、Linux と Windows では異なります。

Linux の場合:

aws ssm get-parameters-by-path \ --path /aws/service/ami-amazon-linux-latest \ --query "Parameters[].Name"

Windows の場合:

aws ssm get-parameters-by-path \ --path /aws/service/ami-windows-latest \ --query "Parameters[].Name"
パブリックパラメータを使用してインスタンスを作成するには

次の例では、イメージ ID の Systems Manager パブリックパラメータを指定して、最新の Amazon Linux 2023 AMI でインスタンスを起動します。

このパラメータをコマンドで指定するには、resolve:ssm:public-parameter 構文を使用します。resolve:ssm は標準のプレフィクス、public-parameter はパブリックパラメータのパスと名前です。

この例では、--count パラメータと --security-group パラメータは含まれていません。--count はデフォルトで 1 になります。デフォルトの VPC とデフォルトのセキュリティグループがある場合は、これらが使用されます。

aws ec2 run-instances \ --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \ --instance-type m5.xlarge \ --key-name MyKeyPair

詳細については、「AWS Systems Manager ユーザーガイド」の「Working with public parameters」を参照してください。

Systems Manager パラメータを使用する例については、「AWS Systems Manager Parameter Store を使用した最新の Amazon Linux AMI IDのクエリ」および「AWS Systems Manager Parameter Store を使用した最新の Windows AMI のクエリ」を参照してください。