Amazon Elastic Compute Cloud
Windows 实例用户指南

使用容量预留

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

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

创建容量预留

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

注意

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

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

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

您可以使用 Amazon EC2 控制台或 AWS CLI 创建容量预留。

使用控制台创建容量预留

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

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

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

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

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

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

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

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

    6. 租赁 — 指定是否要运行共享硬件实例(默认)或专用实例。

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

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

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

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

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

      注意

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

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

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

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

  5. 选择请求预留

使用 AWS CLI 创建容量预留

使用 create-capacity-reservation 命令:

C:\> aws ec2 create-capacity-reservation --instance-type instance_type --instance-platform platform_type --availability-zone az --instance-count quantity

在现有容量预留中启动实例

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

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

使用控制台在现有容量预留中启动实例

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

    • 依次选择实例启动实例

    • 依次选择容量预留启动实例

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

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

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

      注意

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

    • 选择以阻止实例在容量预留中启动。

    • 选择在其中启动实例的特定容量预留。

      注意

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

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

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

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

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

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

C:\> 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 容量预留中启动 t2.micro 实例。

C:\> 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}]

修改容量预留

在创建之后,您可以更改活动容量预留的属性。在某个容量预留过期后,或者您明确取消后,您无法对其进行修改。

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

您可以使用 Amazon EC2 控制台和 AWS CLI 修改容量预留。

使用控制台修改容量预留

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 选择容量预留,选择要修改的容量预留,然后选择编辑

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

    注意

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

使用 AWS CLI 修改 容量预留

使用 modify-capacity-reservations 命令:

C:\> aws ec2 modify-capacity-reservation --capacity-reservation-id reservation_id --instance-count quantity --end-date-type limited|unlimited --end-date expiration_date

修改实例的容量预留设置

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

  • 定位特定容量预留。实例无法在定位的容量预留之外启动。

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

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

注意

您只能在实例处于停止状态时才能修改其容量预留设置。

可以使用 Amazon EC2 控制台和 AWS CLI 修改实例的容量预留设置。

使用控制台修改实例的容量预留设置

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 选择实例,选择要修改的实例,然后依次选择操作修改容量预留设置

  3. 对于容量预留,执行以下操作之一:

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

      注意

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

    • 选择以阻止实例在容量预留中启动。

    • 选择实例应在其中运行的特定容量预留。

      注意

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

使用 AWS CLI 修改实例的容量预留设置

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

C:\> aws ec2 modify-instance-capacity-reservation-attributes --instance-id instance_id --capacity-reservation-specification 'CapacityReservationPreference=none|open'

查看容量预留

容量预留有三种可能状态:

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

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

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

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

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

您可以使用 Amazon EC2 控制台和 AWS CLI 查看活动的容量预留。

使用控制台查看容量预留

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 选择容量预留并选择要查看的容量预留。

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

使用 AWS CLI 查看容量预留

使用 describe-capacity-reservations 命令:

C:\> aws ec2 describe-capacity-reservations

取消 容量预留

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

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

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

您可以使用 Amazon EC2 控制台和 AWS CLI 取消容量预留。

使用控制台取消容量预留

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 选择容量预留,然后选择要取消的容量预留。

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

使用 AWS CLI 取消容量预留

使用 cancel-capacity-reservation 命令:

C:\> aws ec2 cancel-capacity-reservation --capacity-reservation-id reservation_id