Linux AMI の検索 - Amazon Elastic Compute Cloud

Linux AMI の検索

インスタンスを起動する前に、使用する AMI を選択する必要があります。AMI を選択するときに、起動するインスタンスに関して、次の要件を検討します。

  • リージョン

  • オペレーティングシステム

  • アーキテクチャ: 32 ビット (i386)、64 ビット (x86_64)、または 64 ビット ARM (arm64)

  • ルートデバイスタイプ: Amazon EBS またはインスタンスストア

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

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

Windows AMI の検索方法については、『Windows インスタンスの Amazon EC2 ユーザーガイド』の「Windows AMI を見つける」を参照してください。

Amazon EC2 コンソールを使用した Linux AMI の検索

Amazon EC2 コンソールを使用して Linux AMI を検索できます。起動ウィザードを使用してインスタンスを起動するときに AMI のリストから選択するか、[Images] ページを使用して使用可能なすべての AMI を検索することができます。AMI ID は各 AWS リージョンに固有です。

起動ウィザードを使用して Linux AMI を検索するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

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

  4. [クイックスタート] タブで、よく使用されている AMI のいずれかをリストから選択します。必要な AMI が表示されていない場合は、[マイ AMI]、[AWS Marketplace]、または [コミュニティ AMI] タブを選択して他の AMI を探します。詳細については、「ステップ 1: Amazon Machine Image (AMI) を選択する」を参照してください。

[Images] ページを使用して Linux AMI を検索するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

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

  4. (オプション) [Filter] オプションを使用して、一覧表示された AMI を興味のある AMI に限定します。たとえば、AWS で指定されたすべての Linux AMI を表示するには、[Public images] を選択します。検索バーを選択し、メニューから [Owner]、[Amazon images] の順に選択します。検索バーをもう一度選択し、[Platform] を選択します。次に、表示されたリストからオペレーティングシステムを選択します。

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

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

  7. この AMI からインスタンスを起動するには、インスタンスを選択し、[Launch] を選択します。コンソールを使用したインスタンスの起動の詳細については、「AMI からのインスタンスの起動」を参照してください。まだインスタンスを起動する準備ができていない場合は、後で使用するために AMI ID を記録します。

AWS CLI を使用した AMI の検索

Amazon EC2 の AWS CLI コマンドを使用して、ニーズに合った Linux AMI のみが表示されるようにできます。ニーズに合った AMI が見つかったら、インスタンスの起動に使用するためにその ID を記録します。詳細については、『AWS CLI』の「AWS Command Line Interface ユーザーガイド を使用したインスタンスの起動」を参照してください。

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

aws ec2 describe-images --owners self amazon

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

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

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

Systems Manager を使用して最新の Amazon Linux AMI を検索する

Amazon EC2 では、AWS で保持されるパブリック AMI 用の AWS Systems Manager パブリックパラメータが提供されており、インスタンスの作成時に使用することができます。たとえば、EC2 で提供されている /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 パラメータはすべてのリージョンで使用でき、常に特定のリージョンの最新バージョンの Amazon Linux 2 AMI をポイントします。

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

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

  • /aws/service/ami-windows-latest

現在の AWS リージョンのすべての Linux AMI のリストを表示するには、AWS CLI で次のコマンドを使用します。

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

パブリックパラメータを使用してインスタンスを作成するには

次の例では、EC2 で提供されているパブリックパラメータを使用して、最新の Amazon Linux 2 AMI で m5.xlarge インスタンスを作成します。

このパラメータをコマンドで指定するには、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/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge --key-name MyKeyPair

詳細については、AWS Systems Manager ユーザーガイドの「パブリックパラメータを使用する」および「Query for the latest Amazon Linux AMI IDs Using AWS Systems Manager Parameter Store」を参照してください。

Systems Manager パラメータを使用した AMI の検索

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

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

AMI ID をポイントするパラメータを作成する場合は、データ型に aws:ec2:image を指定してください。このデータ型により、パラメータの作成時または変更時にパラメータ値が AMI ID として検証されます。詳細については、AWS Systems Manager ユーザーガイドの「Native parameter support for Amazon Machine Image IDs」を参照してください。

ユースケース

Systems Manager パラメータを使用して AMI ID をポイントすることで、ユーザーがインスタンスの作成時に適切な AMI を選択することが容易になり、オートメーションコードの保守を簡素化できます。

ユーザーの利便性の向上

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

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

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

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

注記

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

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

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

Systems Manager パラメータを使用して Linux AMI を検索するには (コンソール)

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

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

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

  4. [Search by Systems Manager parameter (Systems Manager パラメータで検索)] (右上) を選択します。

  5. [Systems Manager parameter (Systems Manager パラメータ)] でパラメータを選択します。対応する AMI ID が [Currently resolves to (現在対応するもの)] の横に表示されます。

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

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

作成ウィザードを使用した AMI からのインスタンスの作成の詳細については、「ステップ 1: Amazon Machine Image (AMI) を選択する」を参照してください。

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 が提供するパブリックパラメータを使用してインスタンスを起動するには

Amazon EC2 は、AWS によって提供されるパブリック AMI の Systems Manager パブリックパラメータを提供します。たとえば、パブリックパラメータ /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 はすべてのリージョンで利用でき、常にリージョン内の Amazon Linux 2 AMI の最新バージョンを指しています。

aws ec2 run-instances --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge ...

アクセス許可

インスタンスの作成ウィザードで AMI ID をポイントする Systems Manager パラメータを使用する場合は、IAM ポリシーに ssm:DescribeParametersssm:GetParameters を追加する必要があります。ssm:DescribeParameters は、IAM ユーザーに Systems Manager パラメータを表示および選択するアクセス許可を付与します。ssm:GetParameters は、IAM ユーザーに Systems Manager パラメータの値を取得するアクセス許可を付与します。また、特定の Systems Manager パラメータへのアクセスを制限することもできます。詳細については、「EC2 起動ウィザードを使用する」を参照してください。

制約事項

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

クイックスタート AMI の検索

Amazon EC2 コンソールを使用してインスタンスを起動する場合、[Choose an Amazon Machine Image (AMI) (Amazon マシンイメージ (AMI) の選択)] ページの [Quick Start (クイックスタート)] タブには、一般的な AMI の一覧が含まれています。これらのクイックスタート AMI のいずれかを使用してインスタンスの起動を自動化するには、プログラムで現在の AMI バージョンの ID を探す必要があります。

最新バージョンのクイックスタート AMI を探すには、その AMI 名のすべての AMI を列挙し、作成日が最新の AMI を見つけます。

例: 現在の Amazon Linux 2 AMI を検索する

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=amzn2-ami-hvm-2.0.????????.?-x86_64-gp2' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

例: 現在の Amazon Linux AMI を検索する

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=amzn-ami-hvm-????.??.?.????????-x86_64-gp2' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

例: 現在の Ubuntu Server 16.04 LTS AMI を検索する

aws ec2 describe-images \ --owners 099720109477 \ --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-????????' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

例: 現在の Red Hat Enterprise Linux 7.5 AMI を検索する

aws ec2 describe-images \ --owners 309956199498 \ --filters 'Name=name,Values=RHEL-7.5_HVM_GA*' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

例: 現在の SUSE Linux Enterprise Server 15 AMI を検索する

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=suse-sles-15-v????????-hvm-ssd-x86_64' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text