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

使用容量块

要开始使用容量块,您首先要找到并购买与您的预留大小、持续时间和时间需求相匹配的可用容量块。然后,当预留开始时,您可以通过启动定位预留 ID 的实例来使用容量块。在预留到期前三十分钟,系统将开始终止仍在容量块中运行的所有实例。

容量块在单个可用区中作为 targeted 容量预留进行交付。要在容量块中运行实例,您必须在启动实例时指定预留 ID。如果您自行停止实例,且容量块过期,则在定位另一个处于 active 状态的容量块之前无法重新启动。

默认情况下,容量块可在容量块内的实例之间提供低延迟、高吞吐量的网络连接,因此无需在容量块中使用集群置放群组。

先决条件

您必须为要使用的实例类型使用相应的 Amazon Web Services 区域。有关更多信息,请参阅 区域

以下 Amazon Web Services 区域 提供带 p5.48xlarge 实例的容量块。

区域名称 区域代码

美国东部(俄亥俄州)

us-east-2

美国东部(弗吉尼亚州北部)

us-east-1

以下 Amazon Web Services 区域 提供带 p4d.24xlarge 实例的容量块。

区域名称 区域代码

美国东部(俄亥俄州)

us-east-2

美国西部(俄勒冈州)

us-west-2

注意

并非所有 Amazon Web Services 区域 中的所有实例类型都支持 64 个实例的容量块大小。

查找和购买容量块

要预留容量块,您首先需要找到符合您需求的可用容量的时间段。要查找可供预留的容量块,请指定:

  • 您需要的实例数

  • 您需要的实例持续时间

  • 您需要预留的日期范围

要搜索可用的容量块产品,您可以指定预留持续时间和实例数量。您必须选择下列选项之一。

  • 对于预留持续时间 - 以 1 天为增量,最多 14 天

  • 对于实例数量 - 1、2、4、8、16、32 或 64 个实例

如果有符合您要求的容量块,系统将返回单个容量块产品的详细信息。产品详细信息包括预留开始时间、预留可用区和预留价格。有关更多信息,请参阅 定价

您可以购买所显示的容量块产品,也可以修改搜索条件以查看其他可用选项。该产品没有预定义的到期时间,但产品仅按先到先得的原则进行提供。

当您购买容量块产品时,您会立即收到回复,确认已预留您的容量块。确认后,您将在账户中看到一个新的容量预留,其预留类型为 capacity-block,并且 start-date 设置为所购买产品的开始时间。您的容量块预留创建时的状态为 payment-pending。成功处理预付款后,预留状态变为 scheduled。有关更多信息,请参阅 Billing

您可以使用以下方法之一查找和购买容量块。

Console
要使用控制台查找和购买容量块
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在屏幕顶部的导航栏中,选择一个 Amazon Web Services 区域。此选项很重要,因为并非所有区域中的所有实例类型都支持 64 个实例的容量块大小。

  3. 在导航窗格中,依次选择容量预留购买容量块

  4. 容量属性下,您可以定义容量块搜索参数。默认情况下,平台为 Linux。如果要选择其他操作系统,请使用 Amazon CLI。有关更多信息,请参阅 支持的平台

  5. 总容量下,选择您要预留的实例数。

  6. 持续时间下,输入您需要预留的天数。

  7. 容量块的搜索日期范围下,输入预留的最早可能开始日期和最晚可接受结束日期。

  8. 选择查找容量块

  9. 如果有符合您要求的容量块,您将在推荐的容量块下方看到产品。如果有多个产品符合您的要求,则会显示价格最低的可用容量块产品。要查看其他容量块产品,请调整搜索输入,然后再次选择查找容量块

  10. 当您找到要购买的容量块产品时,选择下一步

  11. (可选)在添加标签页面上,选择添加新标签

  12. 查看和购买页面列出了开始和结束日期、持续时间、实例总数和价格。

    注意

    预留后,无法修改或取消容量块。

  13. 购买容量块弹出窗口中,键入确认,然后选择购买

Amazon CLI
要使用 Amazon CLI 查找容量块

使用 describe-capacity-block-offerings 命令。

以下示例搜索一个具有 16 个 p5.48xlarge 实例,日期范围从 2023-08-14 开始到 2023-10-22 结束,持续时间 48 小时的容量块。实例数量必须是预定义选项组 1、2、4、8、16、32、64 中的一个整数。容量持续时间必须是一个整数,该整数是 24 和 336 之间的 24 的倍数,表示以小时为单位的天数。

aws ec2 describe-capacity-block-offerings --instance-type p5.48xlarge \ --instance-count 16 --start-date-range 2023-08-14T00:00:00Z \ --end-date-range 2023-10-22-T00:00:00Z --capacity-duration 48
要使用 Amazon CLI 购买容量块

使用 purchase-capacity-block 命令并指定您要购买的容量块的产品 ID 和实例平台。

aws ec2 purchase-capacity-block \ --capacity-block-offering-id cbr-0123456789abcdefg \ --instance-platform Linux/UNIX

在容量块中启动实例

预留容量块后,您可以在 Amazon 账户中查看容量块预留。您可以查看 start-dateend-date,了解您的预留何时开始和结束。在容量块预留开始之前,可用容量显示为零。您可以通过标签键 aws:ec2capacityreservation:incrementalRequestedQuantity 的标签值查看容量块中有多少可用实例。

当容量块预留开始时,预留状态从 scheduled 变为 active。系统通过 Amazon EventBridge 发出一个事件,通知您容量块可以使用。有关更多信息,请参阅 监控容量块

要使用容量块,您必须在启动实例时指定容量块预留 ID。在容量块中启动实例后,可用容量会减去已启动实例的数量。例如,如果您购买的实例容量为 8 个实例,而您启动了 4 个实例,则可用容量将减去 4。

如果您在预留结束之前终止在容量块中运行的实例,则可以在其位置启动新实例。当您停止或终止容量块中的实例时,系统需要几分钟的时间来清理实例,然后才能启动另一个实例来替换它。在此期间,您的实例将处于停止或 shutting-down 状态。此过程完成后,实例状态将变为 stoppedterminated。然后,容量块中的可用容量将会更新,以显示另一个可用实例。

以下步骤说明了如何使用 Amazon Web Services Management Console 或 Amazon CLI 在状态为 active 的容量块中启动实例。

有关如何设置 EKS 节点组以在容量块开始时自动使用容量块的信息,请参阅 Amazon EKS 用户指南中的适用于 ML 的容量块

有关如何使用 EC2 Fleet 在容量块中启动实例的信息,请参阅 教程:在容量块中启动实例

有关如何创建定位容量块的启动模板的信息,请参阅 通过启动模板启动实例

您可以使用以下方法之一在容量块中启动实例。

Console
要使用控制台在容量块中启动实例
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在屏幕顶部的导航栏中,选择容量块预留的区域。

  3. 从 Amazon EC2 控制台控制面板中,选择启动实例

  4. (可选)在名称和标签下,您可以命名您的实例并标记实例。有关标签的信息,请参阅 标记 Amazon EC2 资源

  5. 应用程序和操作系统映像下,选择亚马逊机器映像(AMI)。

  6. 实例类型下,选择与您的容量块预留匹配的实例类型。

  7. 密钥对(登录)下,选择一个现有密钥对,或选择创建新密钥对来新建一个密钥对。有关更多信息,请参阅 Amazon EC2 密钥对和 Amazon EC2 实例

  8. Network settings(网络设置)下,使用默认设置,或选择 Edit(编辑)根据需要配置网络设置。

    重要

    您的实例无法在与您的容量块所在可用区不同的可用区的子网中启动。

  9. 高级详细信息下,按如下方式配置实例。

    1. 购买选项(市场类型)下,选择容量块

    2. 容量预留下,选择按 ID 定位

    3. 选择容量块预留的容量预留 ID。

  10. 在存储库的 Summary(摘要)面板,对于 Number of instances(实例数量),输入要启动的实例数量。

  11. 选择启动实例

Amazon CLI
要使用 Amazon CLI 在容量块中启动实例
  • 使用 run-instances 命令并在 instance-market-options 结构中指定 capacity-blockMarketType。还必须指定 capacity-reservation-specification 参数。

    以下示例在具有匹配属性和可用容量的活动容量块中启动单个 p5.48xlarge 实例。

    aws ec2 run-instances --image-id ami-abc12345 --count 1 \ --instance-type p5.48xlarge --key-name MyKeyPair \ --subnet-id subnet-1234567890abcdef1 \ --instance-market-options MarketType='capacity-block' --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=cr-a1234567}

查看容量块

容量块具有以下状态:

  • payment-pending - 预付款尚未处理。

  • payment-failed - 无法在 12 小时内处理付款。您的容量块已释放。

  • scheduled - 付款已处理,但容量块预留尚未开始。

  • active - 预留容量可供使用。

  • expired - 容量块预留将在您的预留请求中指定的日期和时间自动到期。预留容量不再可供您使用。

您可以使用以下方法之一查看容量块预留。

Console
要使用控制台查看容量块
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择容量预留

  3. 容量预留概述页面上,您会看到一个资源表,其中包含有关所有容量预留资源的详细信息。要查找您的容量块预留,请从容量预留 ID 上方的下拉列表中选择容量块。在表中,您可以看到有关容量块的信息,比如开始和结束日期、持续时间和状态。

  4. 有关容量块的更多详细信息,请选择要查看的容量块的预留 ID。容量预留详细信息页面将显示预留的所有属性以及容量块中正在使用和可用的实例数。

    注意

    在容量块预留开始之前,可用容量显示为零。您可以通过使用标签键的以下标签值查看容量块预留开始时有多少可用实例:aws:ec2capacityreservation:incrementalRequestedQuantity

Amazon CLI
要使用 Amazon CLI 查看容量块

默认情况下,当您使用 describe-capacity-reservations 命令时,会列出按需容量预留和容量块预留。要仅查看您的容量块预留,请对 capacity-reservation-type 参数使用 capacity-block 进行筛选。

例如,以下命令描述了当前 Amazon Web Services 区域 中的一个或多个容量块预留。

aws ec2 describe-capacity-reservations -reservation-type capacity-block

输出示例。

{ "CapacityReservations": [ { "CapacityReservationId": "cr-12345678", "EndDateType": "limited", "ReservationType": "capacity-block" "AvailabilityZone": "eu-east-2a", "InstanceMatchCriteria": "targeted", "EphemeralStorage": false, "CreateDate": "2023-11-29T14:22:45Z", "StartDate": "2023-12-15T12:00:00Z", "EndDate": "2023-08-19T12:00:00Z", "AvailableInstanceCount": 0, "InstancePlatform": "Linux/UNIX", "TotalInstanceCount": 16, "State": "payment-pending", "Tenancy": "default", "EbsOptimized": true, "InstanceType": "p5.48xlarge" }, ...