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

集群置放群组中的容量预留

您可以在集群置放群组中创建容量预留,以便为您的工作负载预留 Amazon EC2 计算容量。集群置放群组具有低网络延迟和高网络吞吐量的好处。

在集群置放群组中创建容量预留可以确保您在需要时访问集群置放群组中的计算容量。这非常适合为需要计算扩缩的高性能 (HPC) 工作负载预留容量。它允许您向下扩展群集,同时确保容量仍可供您使用,以便在需要时可以扩展备份。

限制

在集群置放群组中创建容量预留时,请牢记以下几点:

  • 如果现有容量预留不在置放群组中,则您无法修改容量预留以在置放群组中预留容量。要在置放群组中预留容量,您必须在置放群组中创建容量预留。

  • 在置放群组中创建容量预留后,您无法对其进行修改以在置放群组之外预留容量。

  • 您可以通过修改置放群组中的现有容量预留或在置放群组中创建其他容量预留来增加置放群组中的预留容量。但是,您增加了出现容量不足错误的机会。

  • 您无法共享在集群置放群组中创建的容量预留。

  • 您无法删除具有 active 容量预留的集群置放群组。删除前,您必须先取消集群置放群组中的所有容量预留。

使用集群置放群组中的容量预留

要开始对集群置放群组使用容量预留,请执行以下步骤。

注意

如果要在现有集群置放群组中创建容量预留,请跳过步骤 1。然后,对于步骤 2 和 3,请指定现有集群置放群组的 ARN。有关如何查找现有集群置放群组的 ARN 的信息,请参阅 查看置放群组信息

步骤 1:(条件)创建用于容量预留的集群置放群组

仅在需要创建新的集群置放群组时,执行此步骤。要使用现有的集群置放群组,请跳过此步骤,然后对于步骤 2 和 3,使用该集群置放群组的 ARN。有关如何查找现有集群置放群组的 ARN 的信息,请参阅 查看置放群组信息

您可以使用以下一种方法创建集群置放群组。

Console
使用控制台创建集群置放群组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Placement Groups(置放群组),然后选择 Create placement group(创建置放群组)。

  3. 对于 Name(名称),为置放群组指定一个描述性名称。

  4. 对于 Placement strategy(置放策略),选择 Cluster(集群)。

  5. 选择创建组

  6. 置放群组表的群组 ARN 列中,记下您创建的集群置放群组的 ARN。下一步中需要使用该值。

Amazon CLI
使用 Amazon CLI 创建集群置放群组

使用 create-placement-group 命令。对于 --group-name,为置放群组指定一个描述性名称,对于 --strategy,请指定 cluster

以下示例创建一个名为 MyPG 的使用 cluster 置放策略的置放群组。

C:\> aws ec2 create-placement-group \ --group-name MyPG \ --strategy cluster

请记下命令输出中返回的置放群组 ARN,因为下一个步骤需要用到。

步骤 2:在集群置放群组中创建容量预留

在集群置放群组中创建容量预留的方式与创建任何容量预留的方式相同。但是,您还必须指定要在其中创建容量预留的集群置放群组的 ARN。有关更多信息,请参阅 创建 容量预留

注意事项
  • 指定的集群置放群组必须处于 available 状态。如果集群置放群组处于 pendingdeletingdeleted 状态,则请求将失败。

  • 容量预留和集群置放群组必须位于同一可用区。如果创建容量预留的请求指定的可用区与集群置放群组的可用区不同,则请求将失败。

  • 您只能为集群置放群组支持的实例类型创建容量预留。如果您指定了不受支持的实例类型,则请求将失败。有关更多信息,请参阅 集群置放群组规则和限制

  • 如果您在集群置放群组中创建 open 容量预留,并且现有正在运行的实例具有匹配属性(置放群组 ARN、实例类型、可用区、平台和租期),这些实例将在容量预留中自动运行。

  • 如果出现以下情况之一,创建容量预留的请求会失败:

    • Amazon EC2没有足够的容量来满足请求。请稍后重试、尝试不同的可用区或者尝试较小的容量。如果您的工作负载灵活地跨实例类型和大小,请尝试不同的实例属性。

    • 请求的数量超过选定实例系列的个按需型实例限制。增加该实例系列的个按需型实例限制,然后重试。有关更多信息,请参阅 按需型实例限额

您可以使用以下一种方法在集群置放群组中创建容量预留。

Console
使用控制台创建容量预留
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择 容量预留 (容量预留),然后选择 Create 容量预留 (创建容量预留)

  3. 创建容量预留页面上,根据需要指定实例类型、平台、可用区、租赁、数量和结束日期。

  4. 对于置放群组,选择要在其中创建容量预留的集群置放群组的 ARN。

  5. 选择 Create(创建)。

有关更多信息,请参阅 创建 容量预留

Amazon CLI
使用 Amazon CLI 创建容量预留

使用 create-capacity-reservation 命令。对于 --placement-group-arn,请指定要在其中创建容量预留的集群置放群组的 ARN。

$ aws ec2 create-capacity-reservation \ --instance-type instance_type \ --instance-platform platform \ --availability-zone az \ --instance-count quantity \ --placement-group-arn placement_group_ARN

有关更多信息,请参阅 创建 容量预留

步骤 3:在集群置放群组中启动实例

您将实例启动到集群置放群组的容量预留中,与在任何容量预留中启动实例的方式相同。但是,您还必须指定要在其中启动实例的集群置放群组的 ARN。有关更多信息,请参阅 创建 容量预留

注意事项
  • 如果容量预留为 open,您无需在实例启动请求中指定容量预留。如果实例具有匹配指定置放群组中的容量预留的属性(置放群组 ARN、实例类型、可用区、平台和租期),这些实例将在容量预留中自动运行。

  • 如果容量预留仅接受目标实例启动,则除了请求中的集群置放群组之外,还必须指定目标容量预留。

  • 如果容量预留在容量预留组中,则除了请求中的集群置放群组之外,还必须指定目标容量预留组。有关更多信息,请参阅 使用 容量预留 组

您可以使用以下一种方法将实例启动到集群置放群组中的容量预留。

Console
使用控制台在现有容量预留中启动实例
  1. 按照步骤启动实例,但请在完成以下步骤以指定置放群组和容量预留的设置之后再启动实例。

  2. 展开高级详细信息,并执行以下操作:

    1. 对于置放群组,选择要在其中启动实例的集群置放群组。

    2. 对于 Capacity Reservation(容量预留),请选择以下选项之一,具体取决于容量预留的配置:

      • 打开 – 将实例启动到集群置放群组中任何具有匹配属性和足够容量的 open 容量预留。

      • 按 ID 定位 – 将实例启动到只接受目标实例启动的容量预留中。

      • 按组定位 –在所选容量预留组中任何具有匹配属性和可用容量的容量预留中启动实例。

  3. Summary(摘要)面板中查看实例配置,然后选择 Launch instance(启动实例)。有关更多信息,请参阅 使用新启动实例向导启动实例

有关更多信息,请参阅 在现有 容量预留 中启动实例

Amazon CLI
使用 Amazon CLI 在现有容量预留中启动实例

可以使用 run-instances 命令。如果您需要定位特定容量预留或容量预留组,请指定 --capacity-reservation-specification 参数。对于 --placement,请指定 GroupName 参数,然后指定您在上述步骤中创建的置放群组的名称。

以下命令将实例启动到集群置放群组中的 targeted 容量预留。

$ aws ec2 run-instances \ --image-id ami_id \ --count quantity \ --instance-type instance_type \ --key-name key_pair_name \ --subnet-id subnetid \ --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=capacity_reservation_id} \ --placement "GroupName=cluster_placement_group_name"

有关更多信息,请参阅 在现有 容量预留 中启动实例