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.micro、t3.small、t3.large など) |
p4d.* |
p4d インスタンスファミリー内のすべてのサイズ |
g5.* |
g5 インスタンスファミリー内のすべてのサイズ |
*xlarge |
すべてのインスタンスファミリー内の任意の xlarge 以上のインスタンスタイプ |
*.12xlarge |
すべてのインスタンスファミリー内の任意の 12xlarge インスタンスタイプ |
AMI で許可されるインスタンスタイプを設定する
AMI で許可されるインスタンスタイプは、Amazon EC2 コンソールまたは AWS Command Line Interface (AWS CLI) を使用して設定または変更できます。この手順を実行するには、AMI の所有者である必要があります。
AMI で許可されるインスタンスタイプを表示する
Amazon EC2 コンソールまたは AWS CLI を使用して、AMI のインスタンスタイプの仕様を表示できます。
許可されるインスタンスタイプでの起動動作
インスタンスを起動するときは、指定されたインスタンスタイプに AMI のインスタンスタイプの仕様との互換性があるかどうかを Amazon EC2 がチェックします。インスタンスタイプが許可されていない場合、Amazon EC2 は起動をブロックしてエラーを返します。
例: ブロックされた起動
以下のコマンドは、t3.micro をサポートしない AMI を使用して t3.micro インスタンスの起動を試みます。
aws ec2 run-instances \ --image-idami-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アクションは仕様全体を置き換えます。個々のインスタンスタイプを追加または削除するには、更新された完全な仕様をリクエストに含める必要があります。