キャパシティーの予約 グループの操作 - Amazon Elastic Compute Cloud

キャパシティーの予約 グループの操作

AWS Resource Groups を使用して、Resource Groupsと呼ばれるキャパシティー予約の論理コレクションを作成できます。リソースグループは、すべて同じ AWS リージョンにある AWS リソースの論理的なグループです。リソースグループの詳細については、『AWS Resource Groups ユーザーガイド』の「 リソースグループとは」を参照してください。

1 つのリソースグループに、異なる属性 (インスタンスタイプ、プラットフォーム、アベイラビリティーゾーン) を持つ複数の キャパシティーの予約 を含めることができます。

キャパシティーの予約 のリソースグループを作成する場合、個別の キャパシティーの予約 ではなく キャパシティーの予約 のグループをインスタンスのターゲットにできます。キャパシティーの予約 のグループをターゲットとするインスタンスは、属性 (インスタンスタイプ、プラットフォーム、アベイラビリティーゾーン) と使用可能な容量を持つグループ内の キャパシティーの予約 と一致します。一致する属性と使用可能な容量を持つ キャパシティーの予約 がグループにない場合、インスタンスはオンデマンド型キャパシティーを使用して実行されます。一致する キャパシティーの予約 が後の段階でターゲットグループに追加されると、インスタンスは自動的にマッチングされ、リザーブドキャパシティーに移動されます。

グループで キャパシティーの予約 の意図しない使用を防ぐには、キャパシティー予約を明示的にターゲットとするインスタンスだけを受け入れるように、グループの キャパシティーの予約 を設定します。これを行うには、Amazon EC2 コンソールを使用して キャパシティーの予約 を作成するときに、[Instance eligibility (インスタンスの適格性)] を [targeted (ターゲット)] (古いコンソール) または [Only instances that specify this reservation (この予約を指定するインスタンスのみ)] (新しいコンソール) に設定します。AWS CLI を使用する場合は、キャパシティ予約の作成時に --instance-match-criteria targeted を指定します。これにより、グループまたはグループ内の キャパシティーの予約 を明示的にターゲットとするインスタンスのみが、グループ内で実行できるようになります。

実行中のインスタンスがある間にグループの キャパシティーの予約 がキャンセルまたは期限切れになった場合、インスタンスは、一致する属性と使用可能な容量を持つグループ内の別の キャパシティーの予約 に自動的に移動されます。一致する属性と使用可能な容量を持つ キャパシティーの予約 がグループに残っていない場合、インスタンスはオンデマンド型キャパシティーで実行されます。一致する キャパシティーの予約 が後の段階でターゲットグループに追加されると、インスタンスは自動的にリザーブドキャパシティーに移動されます。

キャパシティーの予約 のグループを作成するには

create-group AWS CLI コマンドを使用します。name で、グループのわかりやすい名前を指定し、configuration で、次の 2 つの Type リクエストパラメータを指定します。

  • AWS::EC2::CapacityReservationPool を指定して、リソースグループがインスタンス起動の対象となるようにします。

  • AWS::ResourceGroups::Genericallowed-resource-typesAWS::EC2::CapacityReservation に設定して、リソースグループがキャパシティー予約のみを受け入れるようにします。

例えば、次のコマンドは、MyCRGroup という名前のグループを作成します。

$ aws resource-groups create-group --name MyCRGroup --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'

出力例を次に示します。

{ "GroupConfiguration": { "Status": "UPDATE_COMPLETE", "Configuration": [ { "Type": "AWS::EC2::CapacityReservationPool" }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Values": [ "AWS::EC2::CapacityReservation" ], "Name": "allowed-resource-types" } ] } ] }, "Group": { "GroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup", "Name": "MyCRGroup" } }

キャパシティーの予約 をグループに追加するには

group-resources AWS CLI コマンドを使用します。group には、キャパシティーの予約 を追加するグループの名前を指定し、resources には、追加する キャパシティーの予約 の ARN を指定します。複数の キャパシティーの予約 を追加するには、ARN をスペースで区切ります。追加する キャパシティー予約 の ARN を取得するには、AWS CLI の describe-capacity-reservations コマンドを使用して、キャパシティー予約 の ID を指定します。

例えば、次のコマンドは、MyCRGroup という名前のグループに 2 つの キャパシティーの予約 を追加します。

$ aws resource-groups group-resources --group MyCRGroup --resource-arns arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890

出力例を次に示します。

{ "Failed": [], "Succeeded": [ "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" ] }

特定のグループの キャパシティーの予約 を表示するには

list-group-resources AWS CLI コマンドを使用します。group に、グループの名前を指定します。

例えば、次のコマンドは、MyCRGroup という名前のグループ内の キャパシティーの予約 をリストします。

$ aws resource-groups list-group-resources --group MyCRGroup

出力例を次に示します。

{ "QueryErrors": [], "ResourceIdentifiers": [ { "ResourceType": "AWS::EC2::CapacityReservation", "ResourceArn": "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1" }, { "ResourceType": "AWS::EC2::CapacityReservation", "ResourceArn": "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" } ] }

特定のキャパシティ予約が追加されたグループを表示するには (AWS CLI)

get-groups-for-capacity-reservation AWS CLI コマンドを使用します。

例えば、次のコマンドは、キャパシティーの予約 cr-1234567890abcdef1 が追加されたグループをリストします。

$ aws ec2 get-groups-for-capacity-reservation --capacity-reservation-id cr-1234567890abcdef1

出力例を次に示します。

{ "CapacityReservationGroups": [ { "OwnerId": "123456789012", "GroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } ] }

特定の キャパシティーの予約 が追加されたグループを表示するには (コンソール)

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

  2. ナビゲーションペインで [キャパシティーの予約] を選択し、表示する キャパシティーの予約 を選択して、[表示] を選択します。

    キャパシティーの予約 が追加されたグループは、[グループ] カードにリストされます。

グループから キャパシティーの予約 を削除するには

ungroup-resources AWS CLI コマンドを使用します。group には、キャパシティーの予約 を削除するグループの ARN を指定し、resources には、削除する キャパシティーの予約 の ARN を指定します。複数の キャパシティーの予約 を削除するには、ARN をスペースで区切ります。

次の例では、MyCRGroup という名前のグループから 2 つの キャパシティーの予約 を削除します。

$ aws resource-groups ungroup-resources --group MyCRGroup --resource-arns arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-0e154d26a16094dd arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890

出力例を次に示します。

{ "Failed": [], "Succeeded": [ "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-0e154d26a16094dd", "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" ] }

グループを削除するには

delete-group AWS CLI コマンドを使用します。[group] で、削除するグループの名前を選択します。

例えば、次のコマンドは、MyCRGroup という名前のグループを削除します。

$ aws resource-groups delete-group --group MyCRGroup

出力例を次に示します。

{ "Group": { "GroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup", "Name": "MyCRGroup" } }