View a markdown version of this page

AMI で許可されるインスタンスタイプ - Amazon Elastic Compute Cloud

AMI で許可されるインスタンスタイプ

AMI 所有者として、AMI がサポートするインスタンスタイプとサポートしないインスタンスタイプを指定できます。指定することで、互換性のないインスタンスタイプでの起動を防ぎます。Amazon EC2 は、起動時に許可されるインスタンスタイプを適用します。

例えば、AMI に GPU ハードウェアが必要な場合は、GPU インスタンスタイプのみに制限できます。AMI に特定のインスタンスファミリーとの互換性がない場合は、許可されるインスタンスタイプからそのファミリーを除外できます。

許可されるインスタンスタイプの仕組み

許可されるインスタンスタイプの制御には、AMI の InstanceTypeSpecification 属性を使用します。この属性には次の 2 つのリストが含まれます。

  • SupportedInstanceTypes – AMI がサポートするインスタンスタイプ。これらのインスタンスタイプのみを AMI で起動できます。

  • UnsupportedInstanceTypes – AMI がサポートしないインスタンスタイプ。これらのインスタンスタイプ以外を AMI で起動できます。

Amazon EC2 は、次のロジックを使用して仕様を評価します。

  • InstanceTypeSpecification が設定されていない場合、Amazon EC2 はすべてのインスタンスタイプを許可します。これがデフォルトの動作です。

  • SupportedInstanceTypes のみが設定されている場合は、指定されたインスタンスタイプのみが許可されます。Amazon EC2 は、これら以外のすべてのインスタンスタイプをブロックします。

  • UnsupportedInstanceTypes のみが設定されている場合、Amazon EC2 は、指定されたインスタンスタイプを除くすべてのインスタンスタイプを許可します。

  • 両方のリストが設定されている場合のインスタンスタイプは、SupportedInstanceTypes に含まれており、かつ UnsupportedInstanceTypes に含まれていない必要があります。

ワイルドカードのサポート

どちらのリストも、* 文字を使用したワイルドカードパターンをサポートしています。ワイルドカードを使用すると、複数のインスタンスタイプをそれぞれ個別にリストしなくても一致させることができます。

次の表は、ワイルドカードパターンの例を示しています。

パターン マッチ
t3.* t3 インスタンスファミリー内のすべてのサイズ (t3.microt3.smallt3.large など)
p4d.* p4d インスタンスファミリー内のすべてのサイズ
g5.* g5 インスタンスファミリー内のすべてのサイズ
*xlarge すべてのインスタンスファミリー内の任意の xlarge 以上のインスタンスタイプ
*.12xlarge すべてのインスタンスファミリー内の任意の 12xlarge インスタンスタイプ

AMI で許可されるインスタンスタイプを設定する

AMI で許可されるインスタンスタイプは、Amazon EC2 コンソールまたは AWS Command Line Interface (AWS CLI) を使用して設定または変更できます。この手順を実行するには、AMI の所有者である必要があります。

Console
AMI で許可されるインスタンスタイプを設定する
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで [AMI] を選択してください。

  3. AMI を選択してから、[アクション][インスタンスタイプの仕様を管理する] の順に選択します。

  4. [サポートされるインスタンスタイプ] または [サポートされていないインスタンスタイプ][追加] を選択します。

  5. インスタンスタイプを選択します。

  6. ‬[保存‭] を選択します。

AWS CLI
AMI でサポートされるインスタンスタイプを設定する

replace-image-instance-type-specification コマンドを実行します。以下の例は、t3.micro を除くすべての t3 および a2 インスタンスタイプを許可します。

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0 \ --instance-type-specification '{"SupportedInstanceTypes": ["t3.*", "a2.*"], "UnsupportedInstanceTypes": ["t3.micro"]}'
AMI でサポートされないインスタンスタイプのみを設定する

次のコマンドを使用して、特定のインスタンスタイプをブロックすると同時に、ブロックされたもの以外のすべてのインスタンスタイプを許可します。

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0 \ --instance-type-specification '{"UnsupportedInstanceTypes": ["t3.micro", "t3.nano"]}'
AMI からインスタンスタイプの仕様を削除する

次のコマンドを --instance-type-specification を指定せずに使用することで、制限を削除し、すべてのインスタンスタイプを許可します。

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0

AMI で許可されるインスタンスタイプを表示する

Amazon EC2 コンソールまたは AWS CLI を使用して、AMI のインスタンスタイプの仕様を表示できます。

Console
AMI で許可されるインスタンスタイプを表示する
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで [AMI] を選択してください。

  3. AMI を選択します。

  4. [詳細] タブで、サポートされているインスタンスタイプとサポートされていないインスタンスタイプを確認します。

AWS CLI
AMI のインスタンスタイプの仕様を確認する

describe-images コマンドを実行します。AMI にインスタンスタイプの仕様がある場合は、レスポンスに InstanceTypeSpecification フィールドが含まれます。

aws ec2 describe-images \ --image-ids ami-1234567890abcdef0

以下は、インスタンスタイプの仕様がある AMI の出力例です。

{ "Images": [ { "ImageId": "ami-1234567890abcdef0", ... "InstanceTypeSpecification": { "SupportedInstanceTypes": [ { "InstanceType": "t3.*" }, { "InstanceType": "a2.*" } ], "UnsupportedInstanceTypes": [ { "InstanceType": "t3.micro" } ] } } ] }

許可されるインスタンスタイプでの起動動作

インスタンスを起動するときは、指定されたインスタンスタイプに AMI のインスタンスタイプの仕様との互換性があるかどうかを Amazon EC2 がチェックします。インスタンスタイプが許可されていない場合、Amazon EC2 は起動をブロックしてエラーを返します。

例: ブロックされた起動

以下のコマンドは、t3.micro をサポートしない AMI を使用して t3.micro インスタンスの起動を試みます。

aws ec2 run-instances \ --image-id ami-1234567890abcdef0 \ --instance-type t3.micro

Amazon EC2 が以下のエラーを返します。

An error occurred (InvalidParameterCombination) when calling the RunInstances operation: This AMI does not support the specified instance type. Check DescribeImages for InstanceTypeSpecification, and try again.

このエラーを解決するには、AMI がサポートするインスタンスタイプを選択します。describe-images コマンドを使用して、AMI のインスタンスタイプの仕様を表示します。

考慮事項

許可されるインスタンスタイプを使用するときは、以下の点に留意してください。

  • デフォルトで、AMI にはインスタンスタイプの仕様が設定されていません。仕様が明示的に設定されるまで、Amazon EC2 はすべてのインスタンスタイプを許可します。

  • インスタンスタイプの仕様を設定または変更できるのは、AMI の所有者のみです。

  • CopyImage を使用して AMI をコピーする場合、Amazon EC2 は新しい AMI にインスタンスタイプの仕様を保持します。

  • Amazon EC2 は、インスタンスタイプの仕様をハードブロックとして適用します。インスタンスタイプが許可されていない場合、起動は InvalidParameterCombination エラーで失敗します。

  • 仕様は既存のインスタンスには影響せず、新しい起動のみに適用されます。

  • 設定したインスタンスタイプが許可されていない場合は、インスタンスタイプの仕様が設定された AMI を参照する起動テンプレートと Auto Scaling グループが失敗する可能性があります。共有 AMI で仕様を設定する前に、互換性を確認することをお勧めします。

  • ReplaceImageInstanceTypeSpecification アクションは仕様全体を置き換えます。個々のインスタンスタイプを追加または削除するには、更新された完全な仕様をリクエストに含める必要があります。