Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用Capacity Reservations

要开始使用Capacity Reservations,您需要在所需的可用区中创建容量预留。在您创建Capacity Reservation之后,可以在预留容量中启动实例,实时查看其容量使用情况,以及根据需要增加或减少其容量。

默认情况下,Capacity Reservations自动将新实例与具有匹配属性(实例类型、平台和可用区)的运行中实例进行匹配。换而言之,具有匹配属性的实例自动使用Capacity Reservation的容量运行。不过,您还可以将Capacity Reservation定位到特定工作负载。这使您可以明确控制允许哪些实例在预留容量中运行。

创建Capacity Reservation

在账户中创建Capacity Reservation会在特定可用区中创建容量预留。在创建之后,您可以根据需要在预留容量中启动实例。

注意

如果 Amazon EC2 没有足够的容量来满足请求,创建Capacity Reservation的请求可能会失败。如果您的请求由于 Amazon EC2 容量限制而失败,请稍后重试、尝试不同可用区或者请求较小的容量预留。如果您的应用程序灵活地跨实例类型和大小,请尝试创建具有不同实例属性的Capacity Reservation。

如果请求的数量超过了选定实例类型的个按需实例限制,请求也会失败。如果您的请求由于容量限制而失败,请增加所需实例类型的个按需实例限制,然后重试。有关增加实例限制的更多信息,请参阅 Amazon EC2 服务限制

创建Capacity Reservation之后,容量立即可用。只要Capacity Reservation活动,该容量就为您预留,您可以随时在其中启动实例。如果Capacity Reservation处于 open 状态,具有匹配属性的新实例和现有实例自动使用Capacity Reservation的容量运行。如果Capacity Reservation处于 targeted 状态,只有专门定位到其中的实例才能在预留容量中运行。

您可以使用 Amazon EC2 控制台或 AWS CLI 创建Capacity Reservation。

使用控制台创建Capacity Reservation

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择Capacity Reservations,然后选择创建Capacity Reservation

  3. 在“创建Capacity Reservation”页面上的实例详细信息部分中,配置以下设置:

    1. 实例类型 — 指定在预留容量中启动的实例类型。

    2. 启动 EBS 优化的实例 — 指定是否为 EBS 优化的实例预留容量。一些实例类型默认情况下会选中此选项。有关 EBS 优化实例的更多信息,请参阅 Amazon Elastic Block Store

    3. 启动时附加实例存储 — 指示在Capacity Reservation中启动的实例是否使用临时块级别存储。实例存储卷上的数据仅在相关实例的生命周期内保留。

    4. 平台 — 指定您目标实例的操作系统。

    5. 可用区 — 指定在其中预留容量的可用区。

    6. 数量 — 指定要预留容量的实例数。如果指定的数量超过了选定实例类型的剩余个按需实例限制,将拒绝该请求。

  4. 预留详细信息部分中配置以下设置:

    1. 预留结束 — 选择以下选项之一:

      • 手动 — 容量将预留,直至您明确取消。

      • 特定时间 — 自动取消容量预留。容量预留在指定的日期和时间自动释放。Capacity Reservation将在指定时间开始的一小时内取消。例如,如果您指定“5/31/2019, 13:30:55”,则Capacity Reservation可确保在 2019 年 5 月 31 日的 13:30:55 到 14:30:55 之间结束。

      注意

      预留结束后,您无法再将实例定位到Capacity Reservation中。在预留容量中运行的实例继续运行,不会中断。如果定位到Capacity Reservation中的实例停止,在您删除其Capacity Reservation定位首选项或者将其配置为定位到其他Capacity Reservation之前,无法重新启动这些实例。

    2. 实例资格 — 选择以下选项之一:

      • 开放 —(默认值)Capacity Reservation匹配任意具有匹配属性(实例类型、平台和可用区)的实例。如果您启动具有匹配属性的实例,则会自动将其放置到预留容量中。

      • 定位 — Capacity Reservation仅接受具有匹配属性(实例类型、平台和可用区)并明确定位到预留中的实例。

  5. 选择请求预留

使用 AWS CLI 创建Capacity Reservation

使用 create-capacity-reservation 命令:

$ aws ec2 create-capacity-reservation --instance-type instance_type --instance-platform platform_type --availability-zone az --instance-count quantity

在现有Capacity Reservation中启动实例

您可在任意具有匹配属性(实例类型、平台和可用区)和充足容量的Capacity Reservation中启动实例。在Capacity Reservation中启动实例会将其可用容量减去所启动实例的数量。例如,如果您启动 3 个实例,Capacity Reservation的可用容量将减去 3。

您可在以前使用 Amazon EC2 控制台或命令行创建的Capacity Reservation中启动实例。

使用控制台在现有Capacity Reservation中启动实例

  1. 通过执行以下操作之一来打开启动实例向导:

    • 依次选择实例启动实例

    • 依次选择Capacity Reservations启动实例

  2. 填写实例的详细信息以满足您的需求。

  3. 配置实例详细信息页面上,对于Capacity Reservation,执行以下操作之一:

    • 选择打开可在任意具有匹配属性(实例类型、平台和可用区)和充足容量的 open Capacity Reservation中启动实例。

      注意

      如果没有匹配的 open Capacity Reservation具有足够容量,实例在按需容量中启动。

    • 选择以阻止实例在Capacity Reservation中启动。

    • 选择在其中启动实例的特定Capacity Reservation。

      注意

      如果选定Capacity Reservation没有足够的容量,实例启动将会失败。

  4. 依次选择审核和启动启动

  5. 在系统提示时,选择现有密钥对或创建新的密钥对,然后选择启动实例

使用 AWS CLI 在现有Capacity Reservation中启动实例

使用 run-instances 命令并指定 --capacity-reservation-specification 参数。

以下示例在任意具有匹配属性和可用容量的 open Capacity Reservation中启动 t2.micro 实例。

$ aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --availability-zone us-east-1b --capacity-reservation-specification CapacityReservationPreference=open

以下示例在 targeted Capacity Reservation中启动 t2.micro 实例。

$ aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --availability-zone us-east-1b --capacity-reservation-specification CapacityReservationTarget=[{CapacityReservationId=cr-a1234567}]

修改Capacity Reservation

在创建之后,您可以更改活动Capacity Reservation的属性。在某个Capacity Reservation已失效或者您已明确取消之后,无法进行修改。

修改Capacity Reservation时,您只能增加或减少数量以及更改释放容量的方式。无法更改Capacity Reservation的实例类型、EBS 优化、实例存储设置、平台、可用区或实例资格。如果您需要修改任意这些属性,我们建议您取消预留,然后使用所需属性创建新的预留。

您可以使用 Amazon EC2 控制台和 AWS CLI 修改Capacity Reservation。

使用控制台修改Capacity Reservation

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择Capacity Reservations,选择要修改的Capacity Reservation,然后选择编辑

  3. 根据需要修改数量预留结束选项,然后选择保存更改

    注意

    如果指定的新数量超过了选定实例类型的剩余个按需实例限制,更新将失败。

使用 AWS CLI 修改 Capacity Reservation

使用 modify-capacity-reservations 命令:

$ aws ec2 modify-capacity-reservation --capacity-reservation-id reservation_id --instance-count quantity --end-date-type limited|unlimited --end-date expiration_date

修改实例的Capacity Reservation设置

您可以随时修改现有实例的Capacity Reservation设置。您可修改已停止的实例来执行以下操作:

  • 定位特定Capacity Reservation。实例无法在定位的Capacity Reservation之外启动。

  • 在任意具有匹配属性(实例类型、平台和可用区)以及可用容量的Capacity Reservation上启动。

  • 避免在Capacity Reservation中启动。阻止实例在任意Capacity Reservation中启动,即使预留处于开放状态并且属性(实例类型、平台和可用区)匹配

注意

您只能在实例处于停止状态时才能修改其Capacity Reservation设置。

可以使用 Amazon EC2 控制台和 AWS CLI 修改实例的Capacity Reservation设置。

使用控制台修改实例的Capacity Reservation设置

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择实例,选择要修改的实例,然后依次选择操作修改Capacity Reservation设置

  3. 对于Capacity Reservation,执行以下操作之一:

    • 选择打开,配置实例在任意具有匹配属性(实例类型、平台和可用区)和充足容量的 open Capacity Reservation中运行。

      注意

      如果没有匹配的 open Capacity Reservation具有足够容量,实例在按需容量中启动。

    • 选择以阻止实例在Capacity Reservation中启动。

    • 选择实例应在其中运行的特定Capacity Reservation。

      注意

      如果实例属性(实例类型、平台和可用区)与所选Capacity Reservation的属性不匹配,或者如果所选Capacity Reservation没有足够的容量,则实例启动失败。

使用 AWS CLI 修改实例的Capacity Reservation设置

使用 modify-instance-capacity-reservation-attributes 命令:

$ aws ec2 modify-instance-capacity-reservation-attributes --instance-id instance_id --capacity-reservation-specification 'CapacityReservationPreference=none|open'

查看Capacity Reservation

Capacity Reservations有三种可能状态:

  • active — Capacity Reservation处于活动状态,容量可供您使用。

  • expired — Capacity Reservation已在您预留请求中指定的日期和时间自动失效。预留容量不再可供您使用。

  • cancelled — 已手动取消了Capacity Reservation。预留容量不再可供您使用。

  • pending — Capacity Reservation请求已成功,但容量预配置仍待处理。

  • failed — Capacity Reservation请求失败。请求可能由于无效的请求参数、容量限制或实例限制等约束条件失败。失败的请求保留 60 分钟。

您可以使用 Amazon EC2 控制台和 AWS CLI 查看活动的Capacity Reservations。

使用控制台查看Capacity Reservations

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择Capacity Reservations并选择要查看的Capacity Reservation。

  3. 选择查看此预留已启动的实例

使用 AWS CLI 查看Capacity Reservations

使用 describe-capacity-reservations 命令:

$ aws ec2 describe-capacity-reservations

取消Capacity Reservation

如果不在需要预留容量,您可以随时取消Capacity Reservation。取消Capacity Reservation之后,该容量将立即释放,不再保留供您使用。

您可以取消空Capacity Reservations以及具有正在运行的实例的Capacity Reservations。如果您取消具有正在运行的实例的Capacity Reservation,该实例将继续在容量预留之外运行,采用标准个按需实例费率,或者,如果您有活动的匹配区域性预留实例,则可享受折扣费率。

取消Capacity Reservation之后,定位到其中的实例无法再启动。修改这些实例,使其定位到不同Capacity Reservation、启动到任意处于“开放”状态且具有匹配属性和充足容量的Capacity Reservation,或者避免将其启动到Capacity Reservation中。有关更多信息,请参阅修改实例的Capacity Reservation设置

您可以使用 Amazon EC2 控制台和 AWS CLI 取消Capacity Reservation。

使用控制台取消Capacity Reservation

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择Capacity Reservations,然后选择要取消的Capacity Reservation。

  3. 依次选择取消预留取消预留

使用 AWS CLI 取消Capacity Reservation

使用 cancel-capacity-reservation 命令:

$ aws ec2 cancel-capacity-reservation --capacity-reservation-id reservation_id