使用 容量预留 组 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 容量预留 组

您可以使用 Amazon Resource Groups 创建称为 Resource Groups 的容量预留逻辑集合。资源组是全部位于同一 Amazon 区域的 Amazon 资源的逻辑分组。有关 Resource Groups 的更多信息,请参阅 Amazon Resource Groups 用户指南中的什么是 Resource Groups?

您可以将您拥有的容量预留包含在您的账户中,并将其他 Amazon 账户与您共享的容量预留包含在单个资源组中。您也可以将具有不同属性(实例类型、平台和可用区)的容量预留包含在单个资源组中。

为容量预留创建资源组时,可以将实例定位到一组容量预留,而不是单个容量预留。定位到一组容量预留的实例与该组中具有匹配属性(实例类型、平台和可用区)和可用容量的任何容量预留匹配。如果该组中没有具有匹配属性和可用容量的容量预留,相关实例将会使用按需容量运行。如果稍后将匹配的容量预留添加到目标组中,则实例将自动与其预留容量匹配并移动到该容量中。

为防止意外使用组中的容量预留,请将组中的容量预留配置为仅接受明确定位到该容量预留的实例。为此,在使用 Amazon EC2 控制台创建容量预留时,请将实例资格设置为目标(旧控制台)或仅指定此预留的实例(新控制台)。如果使用 Amazon CLI,请在创建容量预留时指定 --instance-match-criteria targeted。这样做可确保只有明确定位到该组或该组中的某个容量预留的实例才能在该组中运行。

如果组中的容量预留在其中的实例正在运行时被取消或过期,则这些实例会自动移动到该组中具有匹配属性和可用容量的另一个容量预留中。如果该组中没有其他具有匹配属性和可用容量的容量预留,则实例将使用按需容量运行。如果稍后将匹配的容量预留添加到目标组中,则实例将自动移动到其预留容量中。

创建容量预留组

为容量预留创建组

使用 create-group Amazon CLI 命令。对于 name,请为组提供一个描述性名称,对于 configuration,请指定 2 个 Type 请求参数:

  • AWS::EC2::CapacityReservationPool,可确保资源组可以作为实例启动的目标

  • AWS::ResourceGroups::Generic,并将 allowed-resource-types 设置为 AWS::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 Amazon CLI 命令。对于 group,请指定要添加容量预留的组的名称,对于 resources,请指定要添加的容量预留的 ARN。若要添加多个容量预留,请用空格分隔 ARN。要获取要添加的容量预留的 ARN,请使用 describe-capacity-reservations Amazon CLI 命令并指定容量预留的 ID。

例如,以下命令会将 2 个容量预留添加到名为 MyCRGroup 的组中。

$ 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 Amazon 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" } ] }
注意

命令输出包括您拥有的容量预留和与您共享的容量预留。

查看容量预留所属的组

Amazon CLI
查看添加了特定容量预留的组

使用 get-groups-for-capacity-reservation Amazon 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" } ] }
注意

如果您指定了与您共享的容量预留,则该命令仅返回您拥有的容量预留组。

Amazon EC2 console
查看添加了特定容量预留的组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择容量预留,再选择要查看的容量预留,然后选择查看

    选项卡中会列出添加了容量预留的组。

注意

如果您选择与您共享的容量预留,则控制台仅显示您拥有的容量预留组。

从组中删除容量预留

从组中删除容量预留

使用 ungroup-resources Amazon 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 Amazon CLI 命令。对于 group,提供要删除的组的名称。

例如,以下命令会删除名为 MyCRGroup 的组。

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

下面显示了示例输出。

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