

# Amazon EC2 账单和购买选项
<a name="instance-purchasing-options"></a>

您可以使用以下选项优化 Amazon EC2 的成本：
+ **[按需型实例](ec2-on-demand-instances.md)**：按秒为启动的实例付费。
+ **[节省计划](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html)**：通过承诺在 1 年或 3 年期限内保持一致的使用量（以美元/小时为单位）来降低您的 Amazon EC2 成本。
+ **[预留实例](ec2-reserved-instances.md)**：通过承诺在 1 年或 3 年期限内提供一致的实例配置（包括实例类型和区域）来降低您的 Amazon EC2 成本。
+ **[竞价型实例](using-spot-instances.md)**：请求未使用的 EC2 实例，这可能会显著降低您的 Amazon EC2 成本。
+ **[专属主机](dedicated-hosts-overview.md)**：为完全专用于运行您的实例的物理主机付费，让您现有的按插槽、按内核或按 VM 计费的软件许可证降低成本。
+ **[专用实例](dedicated-instance.md)**：为在单一租户硬件上运行的实例按小时付费。
+ **[容量预留](capacity-reservation-overview.md)** – 可在特定可用区中为 EC2 实例预留容量。

如果您无法承诺使用特定的实例配置，但可以承诺保证一定的使用量，请购买节省计划，降低按需型实例的成本。如果您需要预留容量，请为特定可用区购买预留实例或预留容量。可使用容量块预留 GPU 实例集群。如果能灵活控制应用程序的运行时间并且您的应用程序可以中断，竞价型实例就是经济实惠之选。专用主机或专用实例可以通过使用现有服务器端绑定软件许可证来满足合规性要求和降低成本。

有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)和 [Amazon EC2 托管式实例](amazon-ec2-managed-instances.md)。

# 为 Amazon EC2 购买按需型实例
<a name="ec2-on-demand-instances"></a>

使用按需型实例，您按秒为计算容量支付费用，无需长期订阅。实例的生命周期完全由您控制 – 您决定何时启动、停止、休眠、开机、重启或终止实例。

购买按需型实例没有长期承诺。您只需要为处于 `running` 状态的按需型实例的秒数付费，最少 60 秒。运行中的个按需型实例的每秒价格是固定的，[Amazon EC2 定价，按需定价页面](https://aws.amazon.com/ec2/pricing/on-demand/)上列出了此价格。

我们建议您为短期的不规则且不能中断的应用程序使用按需型实例。

要通过按需实例节省大量费用，请使用 [AWS Savings Plans](https://aws.amazon.com/savingsplans/)、[Spot Instances](using-spot-instances.md) 或 [Amazon EC2 的预留实例概览](ec2-reserved-instances.md)。

**Contents**
+ [按需型实例限额](#ec2-on-demand-instances-limits)
  + [监控按需型实例限额和使用情况](#monitoring-on-demand-limits)
  + [请求提高限额](#vcpu-limits-request-increase)
+ [查询按需型实例的价格](#query-aws-price-list)

## 按需型实例限额
<a name="ec2-on-demand-instances-limits"></a>

每个 AWS 账户可在每个区域运行的按需型实例数量存在限额。按需型实例的限额根据运行的按需型实例所用*虚拟中央处理器（vCPU）数*进行管理，而无论为哪种实例类型。每种限额类型都规定了一个或多个实例系列的最大 vCPUs 数。

您的账户包含以下按需型实例配额。处于待处理、正在停止、已停止和已休眠状态的实例不计入按需型实例限额。容量预留会计入按需型实例限额，即使未使用也是如此。


| 名称 | 默认值 | 可调整 | 
| --- | --- | --- | 
| 正在运行的按需 DL 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-6E869C2A) | 
| 正在运行的按需 F 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-74FC7D96) | 
| 正在运行的按需 G 和 VT 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-DB2E81BA) | 
| 正在运行的按需型 HPC 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-F7808C92) | 
| 正在运行按需内存增强型实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-43DA4232) | 
| 正在运行的按需 Inf 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1945791B) | 
| 正在运行的按需 P 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-417A185B) | 
| 正在运行的按需标准（A、C、D、H、I、M、R、T、Z）实例 | 5 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) | 
| 正在运行的按需型 Trn 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-2C3B7624) | 
| 正在运行的按需 X 实例 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-7295265B) | 

有关不同实例系列、实例代和大小的信息，请参阅《Amazon EC2 Instance Types Guide》[https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html)。

只要 vCPU 数不超过账户的限额，您就可以启动任意实例类型组合来满足您不断变化的应用程序需求。例如，对于 256 个 vCPU 的标准实例限额，您可以启动 32 个 `m5.2xlarge` 实例（32 x 8 vCPU）或 16 个 `c5.4xlarge` 实例（16 x 16 vCPU）。有关更多信息，请参阅 [EC2 个按需实例限制](https://aws.amazon.com/ec2/faqs/#EC2_On-Demand_Instance_limits)。

**Topics**
+ [监控按需型实例限额和使用情况](#monitoring-on-demand-limits)
+ [请求提高限额](#vcpu-limits-request-increase)

### 监控按需型实例限额和使用情况
<a name="monitoring-on-demand-limits"></a>

您可以使用以下方法查看和管理您在每个区域的按需型实例限额。

**使用服务限额控制台查看当前限额**

1. 访问 [https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/)，打开 Service Quotas 控制台。

1. 从导航栏中选择一个区域。

1. 在筛选条件字段中输入 **On-Demand**。

1. **应用的限额值**列会显示账户中每种按需型实例限额类型的最大 vCPU 数量。

**使用 AWS Trusted Advisor 控制台查看当前限额**  
打开 AWS Trusted Advisor 控制台中的[服务限制页面](https://console.aws.amazon.com/trustedadvisor/home?#/category/service-limits)。

**配置 CloudWatch 告警**  
借助 Amazon CloudWatch 指标集成，您可以根据限额监控 EC2 使用情况。您还可以配置警报以在即将达到限额时发出警告。有关更多信息，请参阅《服务限额用户指南》中的 [服务限额与 Amazon CloudWatch 警报](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html)**。

### 请求提高限额
<a name="vcpu-limits-request-increase"></a>

尽管 Amazon EC2 会根据您的使用情况自动提高按需型实例限额，您仍可以在必要时请求提高限额。例如，假设您计划启动超过当前限额允许数量的实例，则可以按照 [Amazon EC2 Service Quotas](ec2-resource-limits.md) 中的描述，在服务限额控制台中使用请求提高限额。

## 查询按需型实例的价格
<a name="query-aws-price-list"></a>

可以使用价目表服务 API 或 AWS 价目表 API 查询按需型实例的价格。有关更多信息，请参阅 *AWS Billing 用户指南*中的[使用AWS价目表 API](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html)。

# Amazon EC2 的预留实例概览
<a name="ec2-reserved-instances"></a>

**重要**  
我们建议使用节省计划，而不是预留实例。节省计划是节省 AWS 计算成本的最简单、最灵活方式，与预留实例一样，提供更低的价格（相比按需定价最高可省 72%）。但是，节省计划与预留实例不同。使用预留实例时，您将承诺使用特定的实例配置，而使用节省计划时，您可以灵活地使用最能满足您需求的实例配置。使用节省计划时，您将承诺保持一致的使用量（以美元/小时为单位）。有关更多信息，请参阅 [AWS Savings Plans 用户指南](https://docs.aws.amazon.com/savingsplans/latest/userguide/)。

相比按需型实例定价，预留实例可大幅节约您的 Amazon EC2 成本。预留实例不是物理实例，而是对账户中使用的按需型实例所应用的账单折扣。这些按需型实例必须与特定属性（例如实例类型和区域）匹配才能享受账单折扣。

**Topics**
+ [预留实例示例场景](#ri-example-scenario)
+ [决定Reserved Instance定价的关键变量](#ri-key-pricing-variables)
+ [区域和可用区预留实例（范围）](reserved-instances-scope.md)
+ [预留实例的类型（提供的类别）](reserved-instances-types.md)
+ [如何应用预留实例折扣](apply_ri.md)
+ [使用您的预留实例](using-reserved-instances.md)
+ [预留实例的计费方式](concepts-reserved-instances-application.md)
+ [购买 Amazon EC2 的预留实例](ri-market-concepts-buying.md)
+ [在预留实例市场中销售 Amazon EC2 的预留实例](ri-market-general.md)
+ [修改 预留实例](ri-modifying.md)
+ [交换 可转换预留实例](ri-convertible-exchange.md)
+ [预留实例限额](ri-limits.md)

## 预留实例示例场景
<a name="ri-example-scenario"></a>

下图是购买和使用预留实例的基本场景。

![\[购买预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-basics.png)


在此场景中，您的账户中有一个正在运行的个按需型实例 (T2)，当前您按照按需费率支付。您购买了一个与您正在运行的实例的属性相匹配的Reserved Instance，账单优势立即体现。接下来，您为 C4 实例购买一个Reserved Instance。您的账户中没有任何正在运行的实例与此Reserved Instance的属性相匹配。在最后的步骤中，您启动了一个与 C4 Reserved Instance的属性相匹配的实例，账单优势立即体现。

## 决定Reserved Instance定价的关键变量
<a name="ri-key-pricing-variables"></a>

Reserved Instance 定价由以下关键变量决定。

### 实例属性
<a name="ri-pricing-variable-instance-attributes"></a>

预留实例有四个决定其价格的实例属性。
+ **实例类型**：例如，`m4.large`。这由实例系列（例如，`m4`）和实例大小（例如，`large`）组成。
+ **区域**：购买Reserved Instance的区域。
+ **租赁**：您的实例在共享 (默认) 还是单租户 (专用) 硬件上运行。有关更多信息，请参阅[Amazon EC2 专用实例](dedicated-instance.md)。
+ **平台**：操作系统；例如，Windows 或 Linux/Unix。有关更多信息，请参阅[选择平台](ri-market-concepts-buying.md#ri-choosing-platform)。

### 期限承诺
<a name="ri-pricing-variable-term-commitment"></a>

您可以承诺购买一年或三年的 Reserved Instance，三年承诺可以获得更大的折扣。
+ **一年**：一年定义为 31536000 秒（365 天）。
+ **三年**：三年定义为 94608000 秒 (1095 天)。

预留实例不会自动续订；当它们过期时，可以继续使用 EC2 实例而不会中断，但要支付按需费率。在上面的示例中，当涵盖 T2 和 C4 实例的 预留实例 过期后，将改为以按需费率支付，直至终止这些实例或者购买与实例属性相匹配的新 预留实例。

**重要**  
购买Reserved Instance后，您将不能取消您的购买。但是，如果您需要更改，则可以[修改](ri-modifying.md)、[交换](ri-convertible-exchange.md)或[出售](ri-market-general.md)您的 Reserved Instance。

### 付款选项
<a name="ri-payment-options"></a>

针对 预留实例 可使用以下付款选项：
+ **预付全费**：所有款项于期限开始时支付，无论使用了多少小时数，剩余期限不会再产生其他任何费用或额外按小时计算的费用。
+ **预付部分费用**：必须预付部分费用，无论是否使用了 Reserved Instance，期限内剩余的小时数都将按照打折小时费率计费。
+ **无预付费用**：无论是否使用 Reserved Instance，您都将按照期限内的小时数，采用打折小时费率进行付费。无需预付款。
**注意**  
在整个预留期限内，“无预付费用”预留实例需要根据合同义务每月支付费用。因此，账户需要具有成功的账单历史记录才能购买“无预付”预留实例。

一般而言，通过为 预留实例 支付选较高的预付款，可以节省更多成本。您也可以在预留实例 Marketplace 中找到由第三方卖家以短期低价提供的预留实例。有关更多信息，请参阅[在预留实例市场中销售 Amazon EC2 的预留实例](ri-market-general.md)。

### 优惠类别
<a name="ri-pricing-variable-offering-class"></a>

在计算需求发生变化时，您可以根据产品类别修改或交换 Reserved Instance。
+ **标准**：这些提供最大力度的折扣，但只可以修改。标准 预留实例 无法交换。
+ **可转换**：这些相较于标准 预留实例 提供较低的折扣，但可以与具有不同实例属性的可转换 Reserved Instance 进行交换。可转换 预留实例 也可修改。

有关更多信息，请参阅[预留实例的类型（提供的类别）](reserved-instances-types.md)。

**重要**  
购买Reserved Instance后，您将不能取消您的购买。但是，如果您需要更改，则可以[修改](ri-modifying.md)、[交换](ri-convertible-exchange.md)或[出售](ri-market-general.md)您的 Reserved Instance。

有关更多信息，请参阅[“Amazon EC2 预留实例定价”页面](https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/)。

# 区域和可用区预留实例（范围）
<a name="reserved-instances-scope"></a>

当您购买 Reserved Instance 时，可决定 Reserved Instance 的范围。范围可以是区域或可用区。
+ **区域**：当您购买某个区域的 Reserved Instance，该实例称为*区域性* Reserved Instance。
+ **可用区**：当您购买特定可用区的 Reserved Instance 时，该实例称为*可用区* Reserved Instance。

范围不影响价格。您为区域或可用区 Reserved Instance 支付相同的价格。有关 Reserved Instance 定价的更多信息，请参阅[决定Reserved Instance定价的关键变量](ec2-reserved-instances.md#ri-key-pricing-variables)和[Amazon EC2 预留实例定价](https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/)。

有关如何指定预留实例范围的更多信息，请参阅 [RI 属性](https://aws.amazon.com/ec2/pricing/reserved-instances/#riattributes)，特别是**可用区**小点。

## 区域性或可用区预留实例之间的差异
<a name="reserved-instances-regional-zonal-differences"></a>

下表重点介绍了区域性 预留实例 和可用区 预留实例 之间的一些主要区别：


|  | 区域性预留实例 | 可用区预留实例 | 
| --- | --- | --- | 
|  是否能够预留容量  |  区域性Reserved Instance*无法*预留容量。  |  可用区Reserved Instance可在指定可用区中预留容量。  | 
|  可用区灵活性  |  Reserved Instance 折扣适用于指定区域的任何可用区中的实例使用。  |  无可用区灵活性 — Reserved Instance 折扣仅适用于指定可用区中的实例使用。  | 
|  实例大小灵活性  |  Reserved Instance 折扣适用于实例系列中的实例使用，无论实例大小如何。 只在具有默认租期的 Amazon Linux/Unix 预留实例 上受支持。有关更多信息，请参阅[实例大小灵活性由标准化因子决定](apply_ri.md#ri-normalization-factor)。 |  无实例大小灵活性 — Reserved Instance 折扣仅适用于指定实例类型和大小的实例使用。  | 
|  排队购买  |  您可以排队购买区域预留实例。  |  您不能将可用区预留实例的购买排队。  | 

有关更多信息以及示例，请参阅 [如何应用预留实例折扣](apply_ri.md)。

# 预留实例的类型（提供的类别）
<a name="reserved-instances-types"></a>

Reserved Instance 的产品类别是标准或可转换。标准 Reserved Instance 提供的折扣比可转换 Reserved Instance 更多，但是您无法交换标准 Reserved Instance。您可以交换可转换 预留实例。您可以修改标准版和可转换 预留实例。

Reserved Instance 的配置包括单个实例类型、平台、范围和租期。在计算需求发生变化时，您可以修改或交换 Reserved Instance。

## 标准和可转换 预留实例 的差异
<a name="offering-class-differences"></a>

下面是标准和可转换 预留实例 之间的差别。


|  | 标准Reserved Instance | Convertible Reserved Instance | 
| --- | --- | --- | 
| 修改 预留实例 | 有些属性可以修改。有关更多信息，请参阅[修改 预留实例](ri-modifying.md)。 | 有些属性可以修改。有关更多信息，请参阅 [修改 预留实例](ri-modifying.md)。 | 
| 交换预留实例 | 无法交换。 | 在期限内可以与具有新属性（包括实例系列、实例类型、平台、范围或租期）的其他 可转换预留实例 进行交换。有关更多信息，请参阅 [交换 可转换预留实例](ri-convertible-exchange.md)。 | 
| 在预留实例 Marketplace 中销售 | 可以在预留实例 Marketplace 中销售。 | 无法在预留实例 Marketplace 中销售。 | 
| 在预留实例 Marketplace 中购买 | 可以在预留实例 Marketplace 中购买。 | 无法在预留实例 Marketplace 中购买。 | 

# 如何应用预留实例折扣
<a name="apply_ri"></a>

预留实例不是物理实例，而是对账户中正在运行的按需型实例所应用的账单折扣。这些按需型实例必须与预留实例的特定规格匹配，才能享受账单折扣。

如果您购买了预留实例并且已经有正在运行的按需型实例与预留实例的规范匹配，则账单折扣将立即自动应用。您不必重启您的实例。若没有符合条件的正在运行的按需型实例，则请启动与您的预留实例具有相同规格的按需型实例。有关更多信息，请参阅 [使用您的预留实例](using-reserved-instances.md)。

预留实例的优惠类别（标准或可转换）不会影响账单折扣的应用方式。

**Topics**
+ [如何应用可用区预留实例](#apply-zonal-ri)
+ [如何应用区域性预留实例](#apply-regional-ri)
+ [实例大小灵活性](#ri-instance-size-flexibility)
+ [应用预留实例的示例](#ri-usage-examples)

## 如何应用可用区预留实例
<a name="apply-zonal-ri"></a>

为特定可用区中的预留容量而购买的预留实例称为地区性预留实例。
+ 预留实例折扣适用于该可用区中匹配的实例使用。
+ 正在运行的实例的属性 (租期、平台、可用区、实例类型和实例大小) 必须与预留实例的属性匹配。

例如，如果购买可用区 us-east-1a 中的两个 `c4.xlarge` 默认租期 Linux/Unix 标准预留实例，则可用区 us-east-1a 中最多两个正在运行的 `c4.xlarge` 默认租赁 Linux/Unix 实例可享受预留实例折扣。

## 如何应用区域性预留实例
<a name="apply-regional-ri"></a>

为区域购买的预留实例称为区域性预留实例，可提供可用区和实例大小的灵活性。
+ Reserved Instance 折扣适用于该区域的任何可用区中的实例使用。
+ 预留实例折扣适用于实例系列中的实例使用，无论实例大小如何，这称为[实例大小灵活性](#ri-instance-size-flexibility)。

## 实例大小灵活性
<a name="ri-instance-size-flexibility"></a>

凭借实例大小的灵活性，预留实例折扣适用于对同一[系列](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html)实例的使用量。预留实例基于标准化因子应用于实例系列中各种规模的实例（从最小到最大）。有关如何应用预留实例折扣的示例，请参阅 [场景 2：使用标准化因素在单个账户中使用预留实例](#ri-usage-ex2)。

### 限制
<a name="ri-instance-size-flexibility-limitations"></a>
+ **支持：**仅区域性预留实例支持实例大小灵活性。
+ **不支持：**以下预留实例*不支持*实例大小灵活性：
  + 针对特定可用区购买的 预留实例（可用区 预留实例）
  + G4ad、G4dn、G5、G5g、G6、G6e、G6f、Gr6、Gr6f、hpc7a、P5、Inf1、Inf2、u7i-6tb 和 u7i-8tb 实例的预留实例
  + 适用于 Windows Server、装有 SQL Standard 的 Windows Server、装有 SQL Server Enterprise 的 Windows Server、装有 SQL Server Web 的 Windows Server、RHEL 和 SUSE Linux Enterprise Server 的 预留实例
  + 使用专用租赁的预留实例

### 实例大小灵活性由标准化因子决定
<a name="ri-normalization-factor"></a>

实例大小灵活性取决于实例大小的标准化因子。根据预留的实例大小，区域中的任何可用区中的相同实例系列的运行实例将享受全部或部分折扣。必须匹配的属性仅为实例系列、租期和平台。

下表列出了实例系列中的各种大小以及相应的标准化因子。这种比例用于将 预留实例 的折扣费率应用于实例系列的标准化使用。


| 实例大小 | 标准化因子 | 
| --- | --- | 
| nano | 0.25 | 
| micro | 0.5 | 
| small | 1 | 
| medium | 2 | 
| large | 4 | 
| xlarge | 8 | 
| 2xlarge | 16 | 
| 3xlarge | 24 | 
| 4xlarge | 32 | 
| 6xlarge | 48 | 
| 8xlarge | 64 | 
| 9xlarge | 72 | 
| 10xlarge | 80 | 
| 12xlarge | 96 | 
| 16xlarge | 128 | 
| 18xlarge | 144 | 
| 24xlarge | 192 | 
| 32xlarge | 256 | 
| 48xlarge | 384 | 
| 56xlarge | 448 | 
| 112xlarge | 896 | 

例如，`t2.medium` 实例具有标准化因子 2。如果您在 US East (N. Virginia) 中购买了 `t2.medium` 默认租期 Amazon Linux/Unix Reserved Instance，并且您的账户在该区域中有两个正在运行的 `t2.small` 实例，则账单优势应用于全部两个实例。

![\[应用区域性预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-instance-flex-full.png)


或者，如果您的账户在 US East (N. Virginia) 区域有一个 `t2.large` 实例，则账单优势应用到 50% 的实例使用。

![\[应用区域性预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-instance-flex-partial.png)


在修改预留实例时，标准化因子也适用。有关更多信息，请参阅[修改 预留实例](ri-modifying.md)。

#### 裸机实例的标准化因子
<a name="ri-normalization-factor-bare-metal"></a>

实例大小灵活性也适用于实例系列中的裸机实例。如果您具有区域性 Amazon Linux/Unix 预留实例 并对裸机实例使用共享租期，则可以获得在相同实例系列中节省 Reserved Instance 的好处。反过来也是如此：如果您具有区域性 Amazon Linux/Unix 预留实例 并对与裸机实例相同的系列中的实例使用共享租期，则可以获得在裸机实例中节省 Reserved Instance 的好处。

`metal` 实例大小的标准化因子不是单一的。裸机实例的标准化因子与同一实例系列中的等效虚拟化实例大小相同。例如，`i3.metal` 实例与 `i3.16xlarge` 实例具有相同的标准化因子。


| 实例大小 | 标准化因子 | 
| --- | --- | 
| a1.metal | 32 | 
|  m5zn.metal \$1 x2iezn.metal z1d.metal  | 96 | 
|  c6g.metal \$1 c6gd.metal \$1 i3.metal \$1 m6g.metal \$1 m6gd.metal \$1 r6g.metal \$1 r6gd.metal \$1 x2gd.metal  | 128 | 
| c5n.metal | 144 | 
|  c5.metal \$1 c5d.metal \$1 i3en.metal \$1 m5.metal \$1 m5d.metal \$1 m5dn.metal \$1 m5n.metal \$1 r5.metal \$1 r5b.metal \$1 r5d.metal \$1 r5dn.metal \$1 r5n.metal  | 192 | 
|  c6i.metal \$1 c6id.metal \$1 m6i.metal \$1 m6id.metal \$1 r6d.metal \$1 r6id.metal  | 256 | 
|  u-18tb1.metal \$1 u-24tb1.metal  | 448 | 
|  u-6tb1.metal \$1 u-9tb1.metal \$1 u-12tb1.metal  | 896 | 

例如，`i3.metal` 实例的标准化因子为 128。如果您购买 US East (N. Virginia) 中的 `i3.metal` 默认租期 Amazon Linux/Unix Reserved Instance，则可以获得如下的账单优惠：
+ 如果您在该区域的账户中有一个正在运行的 `i3.16xlarge`，则账单优惠全部应用于 `i3.16xlarge` 实例（`i3.16xlarge` 标准化因子 = 128）。
+ 或者，如果您在该区域的账户中有两个正在运行的 `i3.8xlarge` 实例，则账单优惠全部应用于这两个 `i3.8xlarge` 实例（`i3.8xlarge` 标准化因子 = 64）。
+ 或者，如果您在该区域的账户中有四个正在运行的 `i3.4xlarge` 实例，则账单优惠全部应用于所有四个 `i3.4xlarge` 实例（`i3.4xlarge` 标准化因子 = 32）。

反之亦然。例如，如果您购买 US East (N. Virginia) 中的两个 `i3.8xlarge` 默认租期 Amazon Linux/Unix 预留实例，并且您在该区域中有一个正在运行的 `i3.metal` 实例，则账单优惠全部应用于 `i3.metal` 实例。

## 应用预留实例的示例
<a name="ri-usage-examples"></a>

**Topics**
+ [方案 1：单个账户中的预留实例](#ri-usage-ex1)
+ [场景 2：使用标准化因素在单个账户中使用预留实例](#ri-usage-ex2)
+ [场景 3：关联账户中的区域性预留实例](#ri-usage-ex3)
+ [场景 4：关联账户中的可用区预留实例](#ri-usage-ex4)

### 方案 1：单个账户中的预留实例
<a name="ri-usage-ex1"></a>

您在账户 A 中运行以下按需型实例：
+ 4 x `m3.large` Linux，可用区 us-east-1a 中的默认租期实例
+ 2 x `m4.xlarge` Amazon Linux，可用区 us-east-1b 中的默认租期实例
+ 1 x `c4.xlarge` Amazon Linux，可用区 us-east-1c 中的默认租期实例

您在账户 A 中购买以下预留实例：
+ 4 x `m3.large`，可用区 us-east-1a 中的默认租期 预留实例（容量为预留）
+ 4 x `m4.large` Amazon Linux，区域 us-east-1 中的默认租期 预留实例
+ 1 x `c4.large` Amazon Linux，区域 us-east-1 中的默认租期 预留实例

Reserved Instance优惠以下面方式应用：
+ 四个 `m3.large` 地区性 预留实例 的折扣和容量预留将由四个 `m3.large` 实例使用，因为它们之间的属性（实例大小、区域、平台、租期）相匹配。
+ `m4.large` 区域性 预留实例 具备可用区和实例大小灵活性，因为它们是带默认租期的区域性 Amazon Linux 预留实例。

  `m4.large` 等效于 4 个标准化单位/小时。

  您已购买四个 `m4.large` 区域性 预留实例，它们加起来等效于 16 个标准化单位/小时 (4x4)。账户 A 具有两个正在运行的 `m4.xlarge` 实例，等效于 16 个标准化单位/小时 (2x8)。这种情况下，四个 `m4.large` 区域性预留实例可享受使用两个 `m4.xlarge` 实例的全部成本优势。
+ us-east-1 中的 `c4.large` 区域 Reserved Instance 提供了可用区和实例大小灵活性，因为它是带默认租期的区域 Amazon Linux Reserved Instance，并且将应用于 `c4.xlarge` 实例。`c4.large` 实例等效于 4 个标准化单位/小时，`c4.xlarge` 等效于 8 个标准化单位/小时。

  在这种情况下，`c4.large` 区域 Reserved Instance 提供了针对 `c4.xlarge` 用量的部分优势。这是因为 `c4.large` Reserved Instance 等效于 4 个标准化单位/小时的用量，而 `c4.xlarge` 实例需要 8 个标准化单位/小时。因此，`c4.large` Reserved Instance 账单折扣应用于 50% 的 `c4.xlarge` 用量。剩余的 `c4.xlarge` 用量按照按需费率收费。

### 场景 2：使用标准化因素在单个账户中使用预留实例
<a name="ri-usage-ex2"></a>

您在账户 A 中运行以下按需型实例：
+ 2 x `m3.xlarge` Amazon Linux，可用区 us-east-1a 中的默认租期实例
+ 2 x `m3.large` Amazon Linux，可用区 us-east-1b 中的默认租期实例

您在账户 A 中购买以下预留实例：
+ 1 x `m3.2xlarge` Amazon Linux，区域 us-east-1 中的默认租期预留实例

Reserved Instance优惠以下面方式应用：
+ us-east-1 中的 `m3.2xlarge` 区域预留实例提供了可用区和实例大小灵活性，因为它是带默认租期的区域 Amazon Linux 预留实例。它首先适用于 `m3.large` 实例，然后适用于 `m3.xlarge` 实例，因为它根据标准化因子应用于实例系列中从最小到最大的实例大小。

  `m3.large` 实例等效于 4 个标准化单位/小时。

  `m3.xlarge` 实例等效于 8 个标准化单位/小时。

  `m3.2xlarge` 实例等效于 16 个标准化单位/小时。

  该益处应用如下：

  `m3.2xlarge` 区域性预留实例为 2 x `m3.large` 使用提供充分的益处，因为这些实例加起来占 8 个标准化单位/小时。这会使 8 个标准化单位/小时适用于 `m3.xlarge` 实例。

  对于剩余 8 个标准化单位/小时，`m3.2xlarge` 区域性预留实例为 1 x `m3.xlarge` 使用提供充分益处，因为每个 `m3.xlarge` 实例等效于 8 个标准化单位/小时。剩余的 `m3.xlarge` 用量按照按需费率收费。

### 场景 3：关联账户中的区域性预留实例
<a name="ri-usage-ex3"></a>

预留实例首先供购买它们的账户使用，然后供组织中符合条件的任何其他账户使用。有关更多信息，请参阅[预留实例和整合账单](concepts-reserved-instances-application.md#concepts-reserved-instances-billing)。对于具备大小灵活性的区域性预留实例，这种优势适用于实例系列中各种规模的实例 (从最小到最大)。

您在账户 A (购买账户) 中运行以下按需型实例：
+ 2 x `m4.xlarge` Linux，可用区 us-east-1a 中的默认租期实例
+ 1 x `m4.2xlarge` Linux，可用区 us-east-1b 中的默认租期实例
+ 2 x `c4.xlarge` Linux，可用区 us-east-1a 中的默认租期实例
+ 1 x `c4.2xlarge` Linux，可用区 us-east-1b 中的默认租期实例

另一个客户在账户 B（链接账户）中运行以下 按需型实例：
+ 2 x `m4.xlarge` Linux，可用区 us-east-1a 中的默认租期实例

您在账户 A 中购买以下区域性预留实例：
+ 4 x `m4.xlarge` Linux，区域 us-east-1 中的默认租期 预留实例
+ 2 x `c4.xlarge` Linux，区域 us-east-1 中的默认租期 预留实例

区域Reserved Instance优惠以下面方式应用：
+ 四个 `m4.xlarge` 预留实例 的折扣将由两个 `m4.xlarge` 实例和账户 A（购买账户）中的单个 `m4.2xlarge` 实例使用。所有三个实例均与这些属性相匹配（实例系列、区域、平台和租期）。折扣将首先应用于购买账户（账户 A）中的实例，即使账户 B（链接账户）具有两个也匹配 预留实例 的 `m4.xlarge`。由于 预留实例 是区域性 预留实例，因此没有容量预留。
+ 两个 `c4.xlarge` 预留实例 的折扣适用于两个 `c4.xlarge`，因为它们比 `c4.2xlarge` 实例小。由于 预留实例 是区域性 预留实例，因此没有容量预留。

### 场景 4：关联账户中的可用区预留实例
<a name="ri-usage-ex4"></a>

通常，某个账户拥有的预留实例首先供该账户自用。不过，如果组织的其他账户中有适用于特定可用区、符合条件的未使用 预留实例（地区性 预留实例），这些实例将先于账户拥有的区域性 预留实例 应用于账户。这样做是为了确保实现最大Reserved Instance使用率和较低的费用。出于记账目的，组织中的所有账户将被视为一个账户。以下示例可能有助于您理解。

您在账户 A (购买账户) 中运行以下个按需型实例：
+ 1 x `m4.xlarge` Linux，可用区 us-east-1a 中的默认租期实例

某个客户在关联账户 B 中运行了以下个按需型实例：
+ 1 x `m4.xlarge` Linux，可用区 us-east-1b 中的默认租期实例

您在账户 A 中购买以下区域性预留实例：
+ 1 x `m4.xlarge` Linux，区域 us-east-1 中的默认租期 Reserved Instance

客户还在关联账户 C 中购买了以下区预留实例：
+ 1 x `m4.xlarge` Linux，可用区 us-east-1a 中的默认租期 预留实例

Reserved Instance优惠以下面方式应用：
+ 账户 C 拥有的 `m4.xlarge` 地区性 Reserved Instance 的折扣应用于账户 A 中的 `m4.xlarge` 用量。
+ 账户 A 拥有的 `m4.xlarge` 区域性 Reserved Instance 的折扣应用于账户 B 中的 `m4.xlarge` 用量。
+ 如果账户 A 拥有的区域性 Reserved Instance 先应用于账户 A 中的用量，则账户 C 拥有的地区性 Reserved Instance 将保持未使用状态，而账户 B 中的用量将按照按需费率收费。

有关更多信息，请参阅 AWS 成本和使用情况报告中的 [Understanding your reservations](https://docs.aws.amazon.com/cur/latest/userguide/understanding-ri.html)。

**注意**  
区域预留实例仅为所属账户预留容量，不能与其他 AWS 账户 账户共享。如果您需要与其他 AWS 账户 共享容量，请使用 [使用 EC2 按需容量预留来预留计算容量](ec2-capacity-reservations.md)。

# 使用您的预留实例
<a name="using-reserved-instances"></a>

预留实例 将自动应用于正在运行的 按需型实例（前提匹配规范）。如果正在运行的 按需型实例 都与 Reserved Instance 的规范不匹配，则不会使用 Reserved Instance，直到您启动具有指定规范的实例。

如果您要启动按需型实例以利用预留实例的账单收益，请确保您在配置按需型实例时指定了以下信息：

**平台**  
您必须指定与您预留实例的平台（产品说明）相匹配的亚马逊机器映像（AMI）。例如，如果您为预留实例指定 `Linux/UNIX`，则可以从 Amazon Linux AMI 或 Ubuntu AMI 启动实例。

**实例类型**  
如果您购买了可用区预留实例，则必须指定与您的预留实例相同的实例类型，例如：`t3.large`。有关更多信息，请参阅 [如何应用可用区预留实例](apply_ri.md#apply-zonal-ri)。  
如果您购买了区域性预留实例，则必须指定与预留实例的实例类型相同的实例系列中的实例类型。例如，如果您为预留实例指定 `t3.xlarge` 作为实例类型，则您必须从 T3 系列启动实例，但可指定其为任意大小，例如 `t3.medium`。有关更多信息，请参阅 [如何应用区域性预留实例](apply_ri.md#apply-regional-ri)。

**可用区**  
如果您为特定可用区购买了可用区预留实例，则必须在相同的可用区中启动实例。  
如果您购买了区域性预留实例，则可以在任何您为该预留实例指定的区域的可用区中启动实例。

**租赁**  
实例的租赁必须与预留实例的租赁匹配；例如 `dedicated` 或 `shared`。有关更多信息，请参阅 [Amazon EC2 专用实例](dedicated-instance.md)。

有关如何将预留实例应用于正在运行的按需型实例的示例，请参阅 [如何应用预留实例折扣](apply_ri.md)。有关更多信息，请参阅[为什么我的 Amazon EC2 预留实例没有以我期望的方式应用于我的 AWS 账单？](https://repost.aws/knowledge-center/reserved-instance-applying-why)

您可以使用多种方法来启动使用您的预留实例折扣的按需型实例。有关不同启动方法的信息，请参阅 [启动 Amazon EC2 实例](LaunchingAndUsingInstances.md)。您也可以使用 Amazon EC2 Auto Scaling 来启动实例。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 用户指南](https://docs.aws.amazon.com/autoscaling/ec2/userguide/)。

# 预留实例的计费方式
<a name="concepts-reserved-instances-application"></a>

与按需定价不同，所有预留实例都提供折扣。使用预留实例时，无论实际使用情况如何，都需要为整个期限付费。您可以根据为 Reserved Instance 指定的[付款选项](ec2-reserved-instances.md#ri-payment-options)，为 Reserved Instance 选择预付、部分预付或按月付费。

预留实例过期后，需要根据按需费率支付 EC2 实例使用费用。您最早可以提前三年排队购买 Reserved Instance。这样可以帮助您确保获得不中断的服务。有关更多信息，请参阅 [排队购买](ri-market-concepts-buying.md#ri-queued-purchase)。

AWS 免费套餐 可供新的 AWS 账户 使用。如果您使用 AWS 免费套餐 运行 Amazon EC2 实例，并购买了预留实例，则需要按标准定价付费。有关信息，请参阅[AWS 免费套餐](https://aws.amazon.com/free/)。

**Topics**
+ [使用情况计费](#hourly-billing)
+ [查看您的账单](#ri-market-buyer-billing)
+ [预留实例和整合账单](#concepts-reserved-instances-billing)
+ [Reserved Instance折扣定价套餐](#reserved-instances-discounts)

## 使用情况计费
<a name="hourly-billing"></a>

在选择的预留实例期限内，无论实例是否运行，预留实例均按小时计费。每时钟小时从标准 24 小时制的整点（该小时经过了零分零秒）开始。例如，1:00:00 到 1:59:59 是一个时钟小时。有关实例状态的更多信息，请参阅 [Amazon EC2 实例状态更改](ec2-instance-lifecycle.md)。

Reserved Instance账单优势适用于按秒收费的运行实例。每秒计费适用于使用开源 Linux 发行版的实例，例如 Amazon Linux 和 Ubuntu。每小时计费用于商业 Linux 发行版，例如 Red Hat Enterprise Linux 和 SUSE Linux Enterprise Server。

Reserved Instance账单优势适用于每小时最多 3600 秒 (一小时) 的实例使用。您可同时运行多个实例，但每小时只能获得总计 3600 秒的Reserved Instance折扣优惠；每小时超出 3600 秒的实例使用将根据按需费率计费。

例如，如果您购买了一个 `m4.xlarge` Reserved Instance，同时运行 4 个 `m4.xlarge` 实例 1 小时，则一个实例将按 1 小时的Reserved Instance使用收费，其他三个实例将按 3 小时的按需使用收费。

但是，如果您购买一个 `m4.xlarge` Reserved Instance，在同一小时内运行 4 个 `m4.xlarge` 实例各 15 分钟（900 秒），那么实例的总运行时间为 1 小时，这将产生 1 小时的Reserved Instance使用和 0 小时的按需使用。

![\[四个 m4.xlarge 实例在同一小时内各运行 15 分钟。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-per-second-billing.png)


如果多个合格实例同时运行，Reserved Instance账单优势将在一小时内（最多 3600 秒）同时适用于所有实例；在该时间后，根据按需费率收取费用。

![\[通过预留实例账单同时运行多个实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-per-second-billing-concurrent.png)


使用 [Billing and Cost Management](https://console.aws.amazon.com/billing) 控制台上的 **Cost Explorer (成本管理器)** 可以分析运行 按需实例 所节省的成本。[预留实例 常见问题](https://aws.amazon.com/ec2/faqs/#reserved-instances)包括标价计算的示例。

如果您关闭 AWS 账户，则您资源的按需计费会停止。不过，如果账户中有任何预留实例，则会继续收到这些实例的账单，直至实例过期。

## 查看您的账单
<a name="ri-market-buyer-billing"></a>

您可通过查看 [AWS 账单与成本管理](https://console.aws.amazon.com/billing) 控制台来了解您的账户的费用情况。
+ **控制面板**显示了您的账户的花费汇总。
+ 在 **Bills (账单)** 页面的 **Details (详细信息)** 下，展开 **Elastic Compute Cloud** 部分及区域，以了解有关您的 预留实例 的账单信息。

您可以在线查看费用，也可以下载 CSV 文件。

您还可以使用AWS成本和使用情况报告来跟踪您的预留实例使用情况。有关更多信息，请参阅 [Understanding your reservations](https://docs.aws.amazon.com/cur/latest/userguide/understanding-ri.html)。

## 预留实例和整合账单
<a name="concepts-reserved-instances-billing"></a>

如果购买者账户是在一个整合账单付款人账户之下计费的一组账户中的其中之一，则可以共享预留实例定价优惠。每月将在付款人账户中汇总所有成员账户的实例使用量。这通常对具有不同职能团队或团体的公司很有用；然后，将应用正常的Reserved Instance逻辑来计算账单。有关更多信息，请参阅 [AWS Organizations 的整合账单](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/consolidated-billing.html)。

如果您关闭购买预留实例的账户，会继续向付款人账户收取预留实例的费用，直到预留实例过期为止。已关闭的账户在 90 天后永久删除后，成员账户不再享受预留实例账单折扣。

**注意**  
区域预留实例仅为所属账户预留容量，不能与其他 AWS 账户 账户共享。如果您需要与其他 AWS 账户 共享容量，请使用 [使用 EC2 按需容量预留来预留计算容量](ec2-capacity-reservations.md)。

## Reserved Instance折扣定价套餐
<a name="reserved-instances-discounts"></a>

如果您的账户有资格获得折扣定价套餐，那么自您取得该资格时起，您在该套餐等级内购买的Reserved Instance的预付费和实例使用费均自动享受折扣。要取得折扣资格，在该区域内的 预留实例 的标价必须达到 500000 美元或更高。

以下规则适用：
+ 定价套餐和相关折扣仅适用于购买 Amazon EC2 标准 预留实例。
+ 定价套餐不适用于面向带 SQL Server Standard、SQL Server Web 和 SQL Server Enterprise 的 Windows 的 预留实例。
+ 定价套餐不适用于任何类型的含有 SQL Server 的 Linux 的预留实例。
+ 定价套餐折扣仅适用于通过 AWS 进行的购买。这些折扣不适用于第三方预留实例购买。
+ 折扣定价套餐当前不适用于可转换预留实例购买。

**Topics**
+ [计算 Reserved Instance 定价折扣](#pricing-discounts)
+ [以折扣套餐价格购买](#buying-discount-tier)
+ [跨越定价套餐](#crossing-pricing-tiers)
+ [定价套餐的整合账单](#consolidating-billing)

### 计算 Reserved Instance 定价折扣
<a name="pricing-discounts"></a>

通过计算在区域中的所有 预留实例 的标价，可以确定账户所适用的定价套餐。将每个预留的每小时费用乘以期限的总小时数，再加上购买时的未打折预付价格（也称为固定价格）。因为价目表值基于未打折 (公开) 定价，是否有资格获得批量折扣或者购买预留实例后是否降价均不影响价目表值。

```
List value = fixed price + (undiscounted recurring hourly price * hours in term)
```

例如，对于一年期部分预付 `t2.small` Reserved Instance，假定预付价格是 60.00 美元，每小时费率为 0.007 美元。这将提供 121.32 美元的标价。

```
121.32 = 60.00 + (0.007 * 8760)
```

**使用 Amazon EC2 控制台查看 预留实例 的固定价格**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 要显示**预付价格**列，请选择右上角的设置（![\[Settings icon.\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/settings-icon.png)），开启**预付价格**，然后选择**确认**。

**使用命令行查看 预留实例 的固定价格**
+ [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) (AWS CLI)
+  [Get-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstance.html) (AWS Tools for Windows PowerShell)

### 以折扣套餐价格购买
<a name="buying-discount-tier"></a>

购买 预留实例 时，Amazon EC2 自动将所有折扣应用于所购产品处于折扣定价套餐范围内的部分。您无需执行任何其他操作，而且可以使用任何 Amazon EC2 工具购买 预留实例。有关更多信息，请参阅[购买 Amazon EC2 的预留实例](ri-market-concepts-buying.md)。

在某区域的活动 预留实例 的标价达到某一折扣定价套餐范围后，以后在该区域购买任何 预留实例 都将按打折费率计费。如果在某区域的 预留实例 单项购买额超过折扣套餐阈值，则该项购买超出价格阈值的部分将按打折费率计费。有关在购买过程中创建的临时 Reserved Instance ID 的更多信息，请参阅[跨越定价套餐](#crossing-pricing-tiers)。

如果标价降至低于折扣定价套餐价格点（例如，如果部分 预留实例 到期），之后在该区域购买 预留实例 将不享受折扣。不过，原来在折扣定价套餐范围内购买的所有预留实例将继续享受折扣。

购买预留实例时，可能出现以下四种情况之一：
+ **没有折扣** — 您在某区域内的购买仍然低于折扣阈值。
+ **部分折扣** — 您在某区域内的购买跨越了第一折扣套餐的阈值。没有折扣将应用于一个或多个预留，而折扣费率将应用于剩余的预留。
+ **全部折扣** — 您在某区域内的购买全部在一个折扣套餐之内并且获得了相应的折扣。
+ **两种折扣率** — 您在某区域内的购买从较低折扣套餐跨入较高的折扣套餐。您将按两种费率付费：一个或多个预留采用较低的折扣费率，剩余的预留采用较高的折扣费率。

### 跨越定价套餐
<a name="crossing-pricing-tiers"></a>

如果您的购买跨入某个折扣定价套餐范围，您将看到该项购买有多个条目：一个条目显示购买中将按常规价格收费的部分，另一个条目显示购买中将按适用的打折费率收费的部分。

Reserved Instance 服务会生成多个 Reserved Instance ID，因为您的购买从未打折套餐跨入到打折套餐，或从一个打折套餐跨入到另一个打折套餐。套餐中的每组预留都有一个 ID。因此，由购买 CLI 命令或 API 操作返回的 ID 不同于新预留实例的实际 ID。

### 定价套餐的整合账单
<a name="consolidating-billing"></a>

整合账单账户汇总了某个区域内所有成员账户的标价。当整合账单账户的所有活动 预留实例 的标价达到折扣定价套餐时，整合账单账户的任何账户成员在此后购买任何 预留实例 都将享受打折费率（前提是整合账单账户的标价始终高于折扣定价套餐阈值）。有关更多信息，请参阅 [预留实例和整合账单](#concepts-reserved-instances-billing)。

# 购买 Amazon EC2 的预留实例
<a name="ri-market-concepts-buying"></a>

要购买 Amazon EC2 的预留实例，您可以使用 Amazon EC2 控制台、命令行工具或 SDK 搜索 AWS 和第三方卖家的预留实例产品，调整搜索参数，直到找到与您的目标完全相符的对象。

在搜索要购买的预留实例时，您将收到一个关于退还产品的成本报价。当您继续购买时，AWS 将自动对购买价格设定一个限定价格。预留实例的总成本不会超过报价金额。

如果价格由于任何原因上升或变动，将不会完成购买。当您从 Amazon EC2 预留实例市场购买第三方卖家的预留实例时，如果有与您的选择类似但预付价格较低的产品，AWS 将以较低的预付价格向您出售这些产品。

在确认购买之前，请检查您计划购买的Reserved Instance的详细信息，并确保所有参数都是准确的。在您购买预留实例之后（无论是从预留实例 Marketplace 中的第三方卖家购买还是从 AWS 购买），将无法取消您的购买。您可以将购买排队到将来的某个日期，也可以在预定时间之前取消已排队的购买。

要购买和修改预留实例，请确保您的用户具有相应的权限，例如描述可用区的能力。有关信息，请参阅 [示例：使用预留实例](ExamplePolicies_EC2.md#iam-example-reservedinstances)（API）或 [示例：使用预留实例](iam-policies-ec2-console.md#ex-reservedinstances)（控制台）。

**Topics**
+ [选择平台](#ri-choosing-platform)
+ [排队购买](#ri-queued-purchase)
+ [购买标准 预留实例](#ri-buying-standard)
+ [购买 可转换预留实例](#ri-buying-convertible)
+ [从预留实例 Marketplace 中购买](#ri-market-buying-guide)
+ [取消已排队的购买](#cancel-queued-purchase)
+ [续订 Reserved Instance](#renew-ri)

## 选择平台
<a name="ri-choosing-platform"></a>

Amazon EC2 支持以下平台的预留实例：
+ Linux/UNIX
+ 含有 SQL Server Standard 的 Linux
+ 含有 SQL Server Web 的 Linux
+ 含有 SQL Server Enterprise 的 Linux
+ SUSE Linux
+ Red Hat Enterprise Linux
+ Red Hat Enterprise Linux with HA
+ Windows
+ 含有 SQL Server Standard 的 Windows
+ 含有 SQL Server Web 的 Windows
+ 含有 SQL Server Enterprise 的 Windows

**注意事项**
+ 如果您对 **Red Hat Enterprise Linux**、**SUSE Linux** 或 **Ubuntu Pro** 使用现有订阅（BYOS），则必须选择适用于 **Linux/Unix** 平台的服务产品。
+ 运行 **macOS** 或 Ubuntu Pro（包括 EC2 订阅，即不包括 BYOS）的实例不支持预留实例。如需通过按需型实例定价节省费用，建议您使用配套节省计划的 macOS 和 Ubuntu Pro（包括 EC2 订阅）。有关更多信息，请参阅《[Savings Plans User Guide](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html)》。

为确保实例在特定的预留实例中运行，预留实例的平台必须与用于启动实例的 AMI 的平台相匹配。对于 Linux AMI，请务必检查 AMI 平台是使用常规值 **Linux/UNIX** 还是具体值（如 **SUSE Linux**）。

------
#### [ Console ]

**检查 AMI 平台**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **AMI**。

1. 选择 AMI。

1. 在**详细信息**选项卡上，记下**平台详细信息**的值。

------
#### [ AWS CLI ]

**检查 AMI 平台**  
使用 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令并检查 `PlatformDetails` 的值。

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[*].PlatformDetails
```

下面是示例输出。

```
[
    "Linux/UNIX"
]
```

------
#### [ PowerShell ]

**检查 AMI 平台**  
使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet 并检查 `PlatformDetails` 的值。

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | `
    Select PlatformDetails
```

下面是示例输出。

```
PlatformDetails
---------------
Linux/UNIX
```

------

## 排队购买
<a name="ri-queued-purchase"></a>

默认情况下，当您购买时 Reserved Instance，购买立即完成。或者，您也可以排队预约在将来的某个日期和时间购买。例如，您可以排队预约在现有 Reserved Instance 到期的时间购买。这样可以帮助您确保获得不中断的服务。

您可以排队购买区域 预留实例，但不能排队购买其他卖家的区域 预留实例 或 预留实例。您最早可以提前三年排队购买。在指定日期和时间，将使用默认支付方式进行购买。支付成功后，将体现账单优势。

您可以在 Amazon EC2 控制台中为已排队的购买设置日期，购买将排队等候至该日期的 00:00 UTC。要为已排队的购买指定不同的时间，请使用 AWS SDK 或命令行工具。

您可以在 Amazon EC2 控制台中查看已排队的购买。已排队的购买的状态为**已排队**。在指定时间之前，您随时可以取消已排队的购买。有关详细信息，请参阅 [取消已排队的购买](#cancel-queued-purchase)。

## 购买标准 预留实例
<a name="ri-buying-standard"></a>

您可以购买特定可用区中的标准预留实例从而获得容量预留。或者，您也可以放弃容量预留并购买区域性标准Reserved Instance。

购买完成后，如果已有正在运行的与 Reserved Instance 规范匹配的实例，账单优势将立即体现。您不需要重启实例。如果您没有合适的正在运行的实例，请启动实例并确保符合您为预留实例指定的相同标准。有关更多信息，请参阅 [使用您的预留实例](using-reserved-instances.md)。

有关如何将 预留实例 应用于正在运行的实例的示例，请参阅[如何应用预留实例折扣](apply_ri.md)。

------
#### [ Console ]

**购买标准预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances (预留实例)**，然后选择 **Purchase 预留实例 (购买 预留实例)**。

1. 对于 **Offering class (服务类别)**，选择 **Standard (标准)** 以显示标准 预留实例。

1. 要购买容量预留，请在购买屏幕的右上角开启 **Only show offerings that reserve capacity (只显示预留容量的产品)**。开启此设置后，**Availability Zone (可用区)** 字段将会出现。

   要购买区域 Reserved Instance，请关闭此设置。关闭此设置后，**Availability Zone (可用区)** 字段将会消失。

1. 根据需要选择其他配置，然后选择 **Search (搜索)**。

1. 对于您要购买的每个 Reserved Instance，输入所需数量，然后选择 **Add to cart (添加到购物车)**。

   要从预留实例市场购买标准预留实例，请在搜索结果的 **Seller (卖家)** 列中查找 **3rd party (第三方)**。**Term** 列会显示非标准期限。有关更多信息，请参阅[从预留实例 Marketplace 中购买](#ri-market-buying-guide)。

1. 要查看已选择的 预留实例 的汇总，请选择 **View cart (查看购物车)**。

1. 如果 **Order on (订购时间)** 为 **Now (现在)**，则在您选择 **Order all (全部订购)** 后，购买将立即完成。要排队购买，请选择 **Now (现在)** 并选择一个日期。您可以为购物车中每个符合条件的产品选择不同的日期。购买已排队，一直到选定日期 UTC 00:00 之前。

1. 要完成订单，请选择 **Order all (全部订购)**。

   如果在下订单时有与您的选择类似的低价位产品，AWS 将为您提供价格更低的产品。

1. 选择 **Close**。

   您的订单状态将在 **State (状态)** 列中列出。当您的订单完成时，**State (状态)** 值将从 `Payment-pending` 变为 `Active`。当 Reserved Instance 的状态为 `Active` 时即可使用。

   如果状态转为 `Retired`，AWS 可能未收到您的付款。

------
#### [ AWS CLI ]

**购买标准预留实例**

1. 使用 [describe-reserved-instances-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-offerings.html) 命令查找可用 预留实例。为 `--offering-class` 选项指定 `standard` 以仅返回标准预留实例。可以应用更多标准来缩小结果范围。例如，使用以下命令为 `Linux/UNIX` 购买具有默认租赁的仅一年期的区域性 `t2.large` 预留实例。

   ```
   aws ec2 describe-reserved-instances-offerings \
       --instance-type t2.large \
       --offering-class standard \
       --product-description "Linux/UNIX" \
       --instance-tenancy default \
       --filters Name=duration,Values=31536000 \
                 Name=scope,Values=Region
   ```

   要仅在预留实例 Marketplace 上查找预留实例，请使用 `marketplace` 筛选条件并在请求中不指定持续时间，因为期限可能会短于 1 年期或 3 年期。

   ```
   aws ec2 describe-reserved-instances-offerings \
       --instance-type t2.large \
       --offering-class standard \
       --product-description "Linux/UNIX" \
       --instance-tenancy default \
       --filters Name=marketplace,Values=true
   ```

   当您找到符合需求的 Reserved Instance 时，请记下产品 ID。例如：

   ```
   "ReservedInstancesOfferingId": "bec624df-a8cc-4aad-a72f-4f8abc34caf2"
   ```

1. 使用 [purchase-reserved-instances-offering](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-reserved-instances-offering.html) 命令购买您的 Reserved Instance。您必须指定在上一步中获取的Reserved Instance产品 ID，并且必须为预留指定实例数量。

   ```
   aws ec2 purchase-reserved-instances-offering \
       --reserved-instances-offering-id bec624df-a8cc-4aad-a72f-4f8abc34caf2 \
       --instance-count 1
   ```

   默认情况下，会立即完成购买。或者，若要排队购买，请在之前的调用中添加以下选项。

   ```
   --purchase-time "2020-12-01T00:00:00Z"
   ```

1. 使用 [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) 命令获取您的 Reserved Instance 的状态。

   ```
   aws ec2 describe-reserved-instances \
       --reserved-instances-ids b847fa93-e282-4f55-b59a-1342fec06327 \
       --query ReservedInstances[].State
   ```

------
#### [ PowerShell ]

**购买标准预留实例**

1. 使用 [Get-EC2ReservedInstancesOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesOffering.html) cmdlet 查找可用的预留实例。为 `standard` 参数指定 `-OfferingClass` 以仅返回标准 预留实例。可以应用更多标准来缩小结果范围。例如，使用以下命令为 `Linux/UNIX` 购买具有默认租赁的仅一年期的区域性 `t2.large` 预留实例。

   ```
   Get-EC2ReservedInstancesOffering `
       -InstanceType "t2.large" `
       -OfferingClass "standard" `
       -ProductDescription "Linux/UNIX" `
       -InstanceTenancy "default" `
       -Filters @{Name="duration"; Values="31536000"} `
                @{Name="scope"; Values="Region"
   ```

   要仅在预留实例 Marketplace 上查找预留实例，请使用 `marketplace` 筛选条件并在请求中不指定持续时间，因为期限可能会短于 1 年期或 3 年期。

   ```
   Get-EC2ReservedInstancesOffering `
       -InstanceType t2.large `
       -OfferingClass "standard" `
       -ProductDescription "Linux/UNIX" `
       -InstanceTenancy default `
       -Filters @{Name="marketplace"; Values="true"}
   ```

   当您找到符合需求的 Reserved Instance 时，请记下产品 ID。例如：

   ```
   bec624df-a8cc-4aad-a72f-4f8abc34caf2
   ```

1. 使用 [New-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ReservedInstance.html) cmdlet 购买预留实例。您必须指定在上一步中获取的Reserved Instance产品 ID，并且必须为预留指定实例数量。

   ```
   New-EC2ReservedInstance `
       -ReservedInstancesOfferingId "bec624df-a8cc-4aad-a72f-4f8abc34caf2" `
       -InstanceCount 1
   ```

   默认情况下，会立即完成购买。或者，若要排队购买，请在之前的调用中增加以下参数。

   ```
   -PurchaseTime "2020-12-01T00:00:00Z"
   ```

1. 使用 [Get-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstance.html) cmdlet 获取预留实例的状态。

   ```
   Get-EC2ReservedInstance `
       -ReservedInstancesId b847fa93-e282-4f55-b59a-1342fec06327 | `
       Select State
   ```

------

## 购买 可转换预留实例
<a name="ri-buying-convertible"></a>

您可以购买特定可用区中的可转换预留实例从而获得容量预留。或者，您也可以放弃容量预留并购买区域性可转换预留实例。

如果已经有与Reserved Instance的规格匹配的运行实例，则将立即体现账单收益。您不必重启您的实例。如果您没有合适的运行实例，请启动实例并确保符合您为Reserved Instance指定的相同标准。有关更多信息，请参阅[使用您的预留实例](using-reserved-instances.md)。

有关如何将 预留实例 应用于正在运行的实例的示例，请参阅[如何应用预留实例折扣](apply_ri.md)。

------
#### [ Console ]

**购买可转换预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances (预留实例)**，然后选择 **Purchase 预留实例 (购买 预留实例)**。

1. 对于 **Offering class (服务类别)**，选择 **Convertible (可转换)** 以显示 可转换预留实例。

1. 要购买容量预留，请在购买屏幕的右上角开启 **Only show offerings that reserve capacity (只显示预留容量的产品)**。开启此设置后，**Availability Zone (可用区)** 字段将会出现。

   要购买区域 Reserved Instance，请关闭此设置。关闭此设置后，**Availability Zone (可用区)** 字段将会消失。

1. 根据需要选择其他配置并选择 **搜索**。

1. 对于您要购买的每个 可转换预留实例，输入数量，然后选择 **Add to cart (添加到购物车)**。

1. 要查看您的选择的摘要，请选择 **View cart (查看购物车)**。

1. 如果 **Order on (订购时间)** 为 **Now (现在)**，则在您选择 **Order all (全部订购)** 后，购买将立即完成。要排队购买，请选择 **Now (现在)** 并选择一个日期。您可以为购物车中每个符合条件的产品选择不同的日期。购买已排队，一直到选定日期 UTC 00:00 之前。

1. 要完成订单，请选择 **Order all (全部订购)**。

   如果在下订单时有与您的选择类似的低价位产品，AWS 将为您提供价格更低的产品。

1. 选择 **Close**。

   您的订单状态将在 **State (状态)** 列中列出。当您的订单完成时，**State (状态)** 值将从 `Payment-pending` 变为 `Active`。当 Reserved Instance 的状态为 `Active` 时即可使用。

   如果状态转为 `Retired`，AWS 可能未收到您的付款。

------
#### [ AWS CLI ]

**购买可转换预留实例**

1. 使用 [describe-reserved-instances-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-offerings.html) 命令查找可用 预留实例。为 `--offering-class` 选项指定 `convertible` 以仅返回可转换预留实例。可以应用更多标准来缩小结果范围。例如，使用以下命令为 `Linux/UNIX` 购买具有默认租赁的区域性 `t2.large` 预留实例。

   ```
   aws ec2 describe-reserved-instances-offerings \
       --instance-type t2.large \
       --offering-class convertible \
       --product-description "Linux/UNIX" \
       --instance-tenancy default \
       --filters Name=scope,Values=Region
   ```

   当您找到符合需求的 Reserved Instance 时，请记下产品 ID。例如：

   ```
   "ReservedInstancesOfferingId": "bec624df-a8cc-4aad-a72f-4f8abc34caf2"
   ```

1. 使用 [purchase-reserved-instances-offering](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-reserved-instances-offering.html) 命令购买您的 Reserved Instance。您必须指定在上一步中获取的Reserved Instance产品 ID，并且必须为预留指定实例数量。

   ```
   aws ec2 purchase-reserved-instances-offering \
       --reserved-instances-offering-id bec624df-a8cc-4aad-a72f-4f8abc34caf2 \
       --instance-count 1
   ```

   默认情况下，会立即完成购买。或者，若要排队购买，请在之前的调用中添加以下选项。

   ```
   --purchase-time "2020-12-01T00:00:00Z"
   ```

1. 使用 [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) 命令获取您的 Reserved Instance 的状态。

   ```
   aws ec2 describe-reserved-instances \
       --reserved-instances-ids b847fa93-e282-4f55-b59a-1342fec06327 \
       --query ReservedInstances[].State
   ```

------
#### [ PowerShell ]

**购买可转换预留实例**

1. 使用 [Get-EC2ReservedInstancesOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesOffering.html) cmdlet 查找可用的预留实例。为 `convertible` 参数指定 `-OfferingClass` 以仅返回 可转换预留实例。可以应用更多标准来缩小结果范围。例如，使用以下命令为 `Linux/UNIX` 购买具有默认租赁的区域性 `t2.large` 预留实例。

   ```
   Get-EC2ReservedInstancesOffering `
       -InstanceType "t2.large" `
       -OfferingClass "convertible" `
       -ProductDescription "Linux/UNIX" `
       -InstanceTenancy "default" `
       -Filters @{Name="scope"; Values="Region"
   ```

   当您找到符合需求的 Reserved Instance 时，请记下产品 ID。例如：

   ```
   bec624df-a8cc-4aad-a72f-4f8abc34caf2
   ```

1. 使用 [New-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ReservedInstance.html) cmdlet 购买预留实例。您必须指定在上一步中获取的预留实例产品 ID，并且必须为预留指定实例数量。

   ```
   New-EC2ReservedInstance `
       -ReservedInstancesOfferingId "bec624df-a8cc-4aad-a72f-4f8abc34caf2" `
       -InstanceCount 1
   ```

   默认情况下，会立即完成购买。或者，若要排队购买，请在之前的调用中增加以下参数。

   ```
   -PurchaseTime "2020-12-01T00:00:00Z"
   ```

1. 使用 [Get-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstance.html) cmdlet 获取预留实例的状态。

   ```
   Get-EC2ReservedInstance `
       -ReservedInstancesId b847fa93-e282-4f55-b59a-1342fec06327 | `
       Select State
   ```

------

## 从预留实例 Marketplace 中购买
<a name="ri-market-buying-guide"></a>

您可以从预留实例 Marketplace 向不再需要其预留实例的第三方卖家购买预留实例。您可以使用 Amazon EC2 控制台或命令行工具执行此操作。该过程类似于从AWS购买预留实例。有关更多信息，请参阅[购买标准 预留实例](#ri-buying-standard)。

在预留实例 Marketplace 中购买的预留实例与直接从 AWS 购买的预留实例有一些区别：
+ **有效期** – 从第三方卖方购买的预留实例具有的剩余期限短于完整标准期限。从 AWS 获得的完整标准期限为一年或三年。
+ **预付价格** – 第三方预留实例可以不同的预付价格出售。使用费或周期性费用与最初从AWS购买预留实例时设定的费用一致。
+ **预留实例类型** – 只能从预留实例市场购买 Amazon EC2 标准预留实例。可转换预留实例、Amazon RDS 和 Amazon ElastiCache 预留实例不能在预留实例 Marketplace 上购买。

有关您的基本信息将与卖方进行共享，如您的邮政编码和国家/地区信息。

此信息使卖方能够计算他们必须向政府缴纳并且采用支付报告形式提供的任何必需的交易税 (如销售税或增值税)。在极少数情况下，AWS 可能必须向卖方提供您的电子邮件地址，这样卖方才能就与销售相关的问题 (例如税务问题) 与您联系。

出于相似的原因，AWS 将在买方的购货发票上共享卖方的法律实体名称。如果您出于税务或相关原因需要关于卖方的额外信息，请联系 [支持](https://aws.amazon.com/contact-us/)。

## 取消已排队的购买
<a name="cancel-queued-purchase"></a>

您最早可以提前三年排队购买。在指定时间之前，您随时可以取消已排队的购买。

------
#### [ Console ]

**取消已排队的购买**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 选择一个或多个 预留实例。

1. 依次选择 **Actions (操作)**、**Delete queued Reserved Instances (删除已排队的预留实例)**。

1. 提示进行确认时，选择 **Delete (删除)**，然后选择 **Close (关闭)**。

------
#### [ AWS CLI ]

**取消已排队的购买**  
使用 [delete-queued-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-queued-reserved-instances.html) 命令。

```
aws ec2 delete-queued-reserved-instances \
    --reserved-instances-ids b847fa93-e282-4f55-b59a-1342fec06327
```

------
#### [ PowerShell ]

**取消已排队的购买**  
使用 [Remove-EC2QueuedReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2QueuedReservedInstance.html) cmdlet。

```
Remove-EC2QueuedReservedInstance `
    -ReservedInstancesId b847fa93-e282-4f55-b59a-1342fec06327
```

------

## 续订 Reserved Instance
<a name="renew-ri"></a>

您可以在 Reserved Instance 按计划过期之前续订它。续订 Reserved Instance 将对购买 Reserved Instance（具有相同配置）进行排队，直到当前 Reserved Instance 过期。

您必须使用 Amazon EC2 控制台续订预留实例。

**使用排队的购买续订预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 选择要续订的预留实例。

1. 依次选择 **Actions (操作)**、**Renew Reserved Instances (续订预留实例)**。

1. 要完成订单，请选择 **Order all (全部订购)**，然后选择 **Close (关闭)**。

# 在预留实例市场中销售 Amazon EC2 的预留实例
<a name="ri-market-general"></a>

Amazon EC2 预留实例市场是一个便于 AWS 客户和第三方卖家销售未使用标准预留实例的平台。这些预留实例的期限长短和定价选项可能有所不同。当您不再需要预留实例时，例如将实例移动到新的 AWS 区域、更改为其他实例类型、在预留实例期限到期之前完成项目、业务需求发生变化或容量过剩时，您可能希望出售预留实例。

只要在预留实例 Marketplace 中列出预留实例，便可供潜在的买方找到。所有预留实例将根据剩余期限及小时价格进行分组。

为了满足买家通过预留实例市场购买第三方卖家预留实例的请求，AWS 首先以指定分组中最低的预付价格出售预留实例。然后，AWS再出售下一个最低价格的预留实例，直到买方的整个订单完成为止。AWS随后处理这些交易，并将预留实例的所有权转移给买方。

在您的Reserved Instance出售之前，它将归您所有。出售之后，您便放弃了容量预留和打折的周期性费用。如果继续使用您的实例，AWS将从您的预留实例出售的时间开始以按需价格向您收费。

在预留实例 Marketplace 上销售未使用的预留实例必须满足特定资格条件。

有关在预留实例 Marketplace 上购买预留实例的更多信息，请参阅 [从预留实例 Marketplace 中购买](ri-market-concepts-buying.md#ri-market-buying-guide)。

**Topics**
+ [限制和局限性](#ri-seller-limits)
+ [注册成为卖家](#ri-market-seller-profile)
+ [银行支付账户](#ri-market-concepts-bank)
+ [税务信息](#ri-market-concepts-taxinfo)
+ [您的 预留实例 的价格](#ri-market-concepts-pricing)
+ [列出您的 预留实例](#ri-market-selling-listing)
+ [Reserved Instance列表状态](#ri-listing-states)
+ [列表的生命周期](#ri-market-concepts-sold-partial)
+ [在Reserved Instance出售后](#ri-market-concepts-sold)
+ [收款](#ri-market-sold-gettingpaid)
+ [与买方共享的信息](#ri-market-seller-disclosure)

## 限制和局限性
<a name="ri-seller-limits"></a>

您必须先注册为预留实例 Marketplace 中的卖家，然后才能出售未使用的预留实例。有关信息，请参阅 [注册成为卖家](#ri-market-seller-profile)。

以下限制在出售预留实例时适用：
+ 只有 Amazon EC2 标准区域和分区预留实例可在预留实例 Marketplace 出售。
+ Amazon EC2 可转换预留实例不可在预留实例市场出售。
+ 其他 AWS 服务（比如 Amazon RDS 和 Amazon ElastiCache）的预留实例无法在预留实例 Marketplace 出售。
+ 标准Reserved Instance的剩余期限必须至少为一个月。
+ 您不能在[默认禁用](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)的区域中销售标准预留实例。
+ 预留实例 Marketplace 中允许的最低价格为 0.00 USD。
+ 只要实例在账户中处于激活状态至少 30 天，您就可以在预留实例市场中销售“无预付费用”“预付部分费用”或“预付全部费用”的预留实例。此外，如果预留实例上有预付款，则只能在 AWS 收到预付款之后将其出售。
+ 如果您使用批量折扣购买预留实例，则无法在预留实例市场中销售该预留实例。
+ 您无法在预留实例 Marketplace 中直接修改您的列示内容。然而，您可通过先取消它然后再用新参数创建另一个实例出售清单来改变您的实例出售清单。有关信息，请参阅 [您的 预留实例 的价格](#ri-market-concepts-pricing)。您也可以在列出预留实例时对其进行修改。有关信息，请参阅 [修改 预留实例](ri-modifying.md)。
+ AWS会向您收取您在预留实例市场中出售的每个标准预留实例的总预付价格 12% 的服务费。预付价格是卖方对标准Reserved Instance收取的费用。
+ 当您注册为卖家时，您指定的银行必须有一个美国地址。有关更多信息，请参阅 *AWS Marketplace 销售指南*中的[对付费商品的其他卖家要求](https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html#additional-seller-requirements-for-paid-products)。
+ 即使 Amazon Web Services India Private Limited（AWS India）的客户拥有美国银行账户，也无法在 EC2 预留实例市场中注册为卖家，且无法在 EC2 预留实例市场中上架或出售预留实例。有关更多信息，请参阅[AWS 账户 和 AWS 印度账户之间有何区别？](https://repost.aws/knowledge-center/aws-india-differences)
+ 如果您记录的卖家更改为 Amazon Web Services India Private Limited (AWS India)，则您的卖家身份将从 EC2 预留实例市场注销，并且将移除您在 EC2 预留实例市场中的所有现有在售商品。要恢复卖家身份，您必须将账户所在地更改为印度以外的国家/地区，然后重新完成卖家注册流程。

## 注册成为卖家
<a name="ri-market-seller-profile"></a>

**注意**  
只有 AWS 账户根用户 才可以将账户注册为卖家。

要在预留实例 Marketplace 中销售，您必须先注册为卖家。在注册过程中，您应提供以下信息：
+ **银行信息** –AWS为了支付您出售预留实例时收取的资金，必须获得您的银行信息。您指定的银行必须有一个美国地址。有关更多信息，请参阅[银行支付账户](#ri-market-concepts-bank)。
+ **税务信息** — 所有卖方都需要完成税务信息审查以确定任何必要的税务报告义务。有关更多信息，请参阅[税务信息](#ri-market-concepts-taxinfo)。

在 AWS 收到您已完成的卖家注册后，您会收到对您的注册进行确认并告知您可以开始在预留实例 Marketplace 中出售实例的电子邮件。

## 银行支付账户
<a name="ri-market-concepts-bank"></a>

为了支付您出售预留实例时收取的资金，AWS必须获得您的银行信息。您指定的银行必须有一个美国地址。有关更多信息，请参阅 *AWS Marketplace 销售指南*中的[对付费商品的其他卖家要求](https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html#additional-seller-requirements-for-paid-products)。

**注册付款的默认银行账户**

1. 打开[预留实例市场卖家注册](https://us-east-1.console.aws.amazon.com/rimarketplace/home?region=us-east-1)页面并使用您的 AWS 凭证登录。

1. 在 **Manage Bank Account** 页面上，提供有关您的收款行的以下信息：
   + 银行账户持有人姓名
   + 路由号码
   + 账号
   + 银行账户类型
**注意**  
如果您正在使用一个公司银行账户，则系统将提示您通过传真 (1-206-765-3424) 发送关于该银行账户的信息。

注册后，将提供的银行账户设置为默认账户，等待银行进行验证。验证新的银行账户可能需要两周时间，在此期间，您无法收到付款。对于已建立的账户，付款的完成通常需要两天左右的时间。

**更改付款的默认银行账户**

1. 在[预留实例市场卖家注册](https://us-east-1.console.aws.amazon.com/rimarketplace/home?region=us-east-1)页面上，使用您注册时所用的账户登录。

1. 在 **Manage Bank Account** 页面上，根据需要添加新的银行账户或修改默认银行账户。

## 税务信息
<a name="ri-market-concepts-taxinfo"></a>

出售预留实例可能需要交纳交易税，例如销售税或增值税。您应与您的企业的税务、法律、财务或会计部门沟通，以确定是否适用于基于交易的税种。您负责向相关税务机构收集并交纳基于交易的税款。

作为卖家注册的一部分，您必须在[卖家注册门户](https://portal.aws.amazon.com/ec2/ri/seller_registration?action=taxInterview)中完成税务审查。此审查将收集税务信息并填充 IRS 表 W-9、W-8BEN 或 W-8BEN-E，后者用于确定任何必要的税务报告义务。

您在税务审查中输入的税务信息可能不同，具体取决于您是作为个人还是企业运营，以及您是否为美国人，您的企业是否为美国实体。当您填写税务资料时，请记住以下事项：
+ AWS 提供的信息 (包括本主题中的信息) 不构成税务、法律或其他专业建议。查明 IRS 报告要求将如何影响您的企业，或者如果您有其他问题，请联系您的税务、法律或其他专业顾问。
+ 为了尽可能高效地满足 IRS 报告要求，在会见过程中回答所有的问题并输入所有要求的信息。
+ 检查您的回答。避免拼写错误或输入了不正确的税务识别号，它们会导致纳税申报表格无效。

根据您的税务审查响应和 IRS 报告阈值，Amazon 可能对表格 1099-K 归档。 Amazon 会在您的账户达到阈值级别的那一年的后一年的 1 月 31 日或之前通过电子邮件发送表格 1099-K 的副本。例如，如果您的账户在 2018 年达到阈值，则将在 2019 年 1 月 31 日或之前通过电子邮件发送您的表 1099-K。

有关 IRS 要求和表 1099-K 的更多信息，请参阅 IRS 网站上的 [Form 1099-K FAQs](https://www.irs.gov/newsroom/form-1099-k-faqs-third-party-filers-of-form-1099-k)。

## 您的 预留实例 的价格
<a name="ri-market-concepts-pricing"></a>

在为预留实例设置价格时，请注意以下方面：
+ **预付价格** – 预付价格是您可为要出售的预留实例指定的唯一费用。预付价格是买方在购买每个预留实例时支付的一次性费用。

  因为预留实例的价值随时间的推移而降低，所以，默认情况下，AWS可设定以同样的变化量逐月降低的价格。但是，您可根据预留实例出售的时间设置不同的预付价格。例如，如果您的 Reserved Instance 剩余期限为九个月，您可以指定客户如需购买这个剩余九个月的 Reserved Instance，您愿意接受的价格。您还可以分别设置剩余期限为五个月、一个月的价格。

  预留实例 Marketplace 中允许的最低价格为 0.00 USD。
+ **限制** – 以下预留实例出售限制适用于您的 AWS 账户的*有效期*。这种限制不是年度限制，无法增加。
  + **对于预留实例，您最多可以销售 50,000 USD**。
  + **您最多可以销售 5,000 个预留实例**。
+ **不能修改** – 您无法直接修改上架项目。然而，您可通过先取消它然后再用新参数创建另一个实例出售清单来改变您的实例出售清单。
+ **可以取消 ** – 您可以随时取消处于 `active` 状态的上架项目。您无法取消已经匹配或正在为销售进行处理的实例出售清单。如果您的实例出售清单中的某些实例已匹配且您取消了实例出售清单，则仅剩余的未匹配的实例将从实例出售清单中删除。

## 列出您的 预留实例
<a name="ri-market-selling-listing"></a>

注册卖家可以选择销售一个或多个预留实例。您可以选择在一次列出中销售所有实例，或分成多个部分销售。此外，您可以列出任意实例类型、平台和范围配置的预留实例。

控制台将确定建议的价格。它会检查与您的 Reserved Instance 匹配的产品，并与价格最低的产品匹配。否则，它会根据剩余时间的 Reserved Instance 成本计算建议价格。如果计算出的价值小于 1.01 美元，则建议的价格为 1.01 美元。

如果您取消出售清单，且出售清单的一部分已经售出，则取消不会在已售出的部分生效。仅实例出售清单中未售出的部分在预留实例 Marketplace 中将不再可用。

------
#### [ Console ]

**在预留实例 Marketplace 中列出预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 选择要列出的预留实例，然后依次选择**操作**、**销售预留实例**。

1. 在 **Configure Your Reserved Instance Listing (配置您的预留实例列表)** 页面上，在相关列中设置要出售的实例数并为剩余期限设定预付价格。单击 **Months Remaining** 列旁边的箭头，了解您的预留的价值是如何随着剩余期限的变化而变化的。

1. 如果您是高级用户且想对定价进行自定义，那么您可为后续月输入一个不同的值。要返回默认的线性价格降低，请选择 **Reset**。

1. 当您完成列表配置后，请选择 **Continue (继续)**。

1. 在 **Confirm Your Reserved Instance Listing (确认您的预留实例列表)** 页面上确认您的列表详细信息；如果对此类信息感到满意，请选择 **List Reserved Instance (列出预留实例)**。

**在 Amazon EC2 控制台中查看您的列表**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 选择您已列出的Reserved Instance，然后选择页面底部附近的**我的列表**选项卡。

------
#### [ AWS CLI ]

**在预留实例 Marketplace 中管理预留实例**

1. 使用 [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) 命令获取 预留实例 的列表。请注意您要列出的预留实例的 ID。

1. 使用 [create-reserved-instances-listing](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-reserved-instances-listing.html) 命令。您必须指定Reserved Instance的 ID、实例数以及价格表。

1. 要查看列表，请使用 [describe-reserved-instances-listings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-listings.html) 命令。

1. 要取消列表，请使用 [cancel-reserved-instances-listing](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-reserved-instances-listing.html) 命令。

------
#### [ PowerShell ]

**在预留实例 Marketplace 中管理预留实例**

1. 使用 [Get-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstance.html) cmdlet 获取您的预留实例列表。请注意您要列出的预留实例的 ID。

1. 使用 [New-EC2ReservedInstancesListing](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ReservedInstancesListing.html) cmdlet。您必须指定Reserved Instance的 ID、实例数以及价格表。

1. 要查看您的列表，请使用 [Get-EC2ReservedInstancesListing](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesListing.html) cmdlet。

1. 要取消您的列表，请使用 [Stop-EC2ReservedInstancesListing](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2ReservedInstancesListing.html) cmdlet。

------

## Reserved Instance列表状态
<a name="ri-listing-states"></a>

预留实例 页面的 **My Listings (我的列表)** 选项卡上的 **Listing State (列表状态)** 显示了列表的当前状态：

**Listing State (列表状态)** 显示的信息与您在预留实例市场中的列表的状态有关。它与 **Reserved Instances (预留实例)** 页面中的 **State (状态)** 列显示的状态信息不同。此 **State** 信息是关于您的预留的。
+ **active (已激活)** — 列表可供购买。
+ **canceled (已取消)** –列表已取消，并且在预留实例市场中不再可供购买。
+ **closed (已关闭)** — Reserved Instance 未列出。Reserved Instance 可能因列表已完成销售而处于 `closed` 状态。

## 列表的生命周期
<a name="ri-market-concepts-sold-partial"></a>

当实例出售清单中的所有实例都匹配且售出时，**My Listings** 选项卡将指示 **Total instance count** 匹配 **Sold** 下方列出的计数。此外，实例出售清单中没有 **Available** 实例，并且其 **Status** 为 `closed`。

当列表中只有一部分售出时，AWS将停用列表中的预留实例并创建与剩余预留实例数量相等的预留实例。因此，实例出售清单 ID 及其代表的实例出售清单 (现在具有较少的待售预留) 仍处于激活状态。

将以此方式处理此列表中任何未来预留实例销售。当列表中的所有预留实例售出后，AWS将列表标记为 `closed`。

例如，您创建一个列表数量为 5 的列表：*预留实例 listing ID 5ec28771-05ff-4b9b-aa31-9e57dexample*。

**Reserved Instance** 控制台页中的 **My Listings** 选项卡将按以下所示显示实例出售清单：

*Reserved Instance listing ID 5ec28771-05ff-4b9b-aa31-9e57dexample*
+ 总预留计数= 5
+ 已售 = 0
+ 可用 = 5
+ 状态 = 已激活

 某个买家购买了其中两个预留，这使得三个预留的计数依然可供销售。由于此部分销售，AWS 创建了一个实例计数为 3 的新预留，以表示剩下的三个预留依然可供销售。

这是您的实例出售清单在 **My Listings** 选项卡中的显示方式：

*Reserved Instance listing ID 5ec28771-05ff-4b9b-aa31-9e57dexample*
+ 总预留计数= 5
+ 已售 = 2
+ 可用 = 3
+ 状态 = 已激活

如果您取消您的出售清单，且出售清单的一部分已经售出，取消不会在已售出的部分生效。仅实例出售清单中未售出的部分在预留实例 Marketplace 中将不再可用。

## 在Reserved Instance出售后
<a name="ri-market-concepts-sold"></a>

当您的预留实例售出后，AWS会向您发送一条电子邮件通知。每天如有任何类型的活动，您会收到一封电子邮件通知，其中包含当天的所有活动。活动可能包括您创建或销售列表，或者 AWS 向您的账户发送资金。

------
#### [ Console ]

**跟踪预留实例列表的状态**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航页面中，选择**预留实例**。

1. 在**我的列表**选项卡上，查找**列表状态**值。该选项卡还包含有关期限和标价的信息，以及列表中可用、待处理、售出和取消的实例数量明细。

------
#### [ AWS CLI ]

**跟踪预留实例列表的状态**  
使用 [describe-reserved-instances-listings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-listings.html) 命令，借助合适的筛选条件来获取有关您的列表的信息。

```
aws ec2 describe-reserved-instances-listings
```

------
#### [ PowerShell ]

**跟踪预留实例列表的状态**  
使用 [Get-EC2ReservedInstancesListing](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesListing.html) cmdlet。

```
Get-EC2ReservedInstancesListing
```

------

## 收款
<a name="ri-market-sold-gettingpaid"></a>

AWS从买方收到资金后，会向已售预留实例的注册所有者账户发送一封电子邮件。

AWS 将自动清算所 (ACH) 电汇发送至您的指定银行账户。通常，此电汇在您的Reserved Instance已售出后的一天到三天内发生。支付每天只发生一次。在发放资金后，您将收到包含支付报告的电子邮件。请记住，在 AWS 从您的银行收到确认信息后，您才能收到付款。这可能需要长达两周的时间。

在查看 预留实例 时，仍会显示已销售的 Reserved Instance。

预留实例的现金付款通过电汇转账直接进入您的银行账户。AWS 向您收取您在预留实例 Marketplace 中出售的每个预留实例的总预付价格 12% 的服务费。

## 与买方共享的信息
<a name="ri-market-seller-disclosure"></a>

当您在预留实例 Marketplace 中出售时，AWS 将按照美国的规章在买方声明上分享您的公司法律名称。此外，如果买家因发票或其他税务相关的原因需要联系您而致电 支持，那么 AWS 可能需要向买家提供您的电子邮件地址，这样买家就能与您直接联系。

出于同样的原因，买方的邮政编码和国家/地区信息将在支付报告中提供给卖方。作为卖家，您可能需要在汇给政府任何必要的交易税 (例如销售税和增值税) 时附带此信息。

AWS 不能提供税务建议，但如果您的税务专家确定您另外需要特定的信息，请[联系 支持](https://aws.amazon.com/contact-us/)。

# 修改 预留实例
<a name="ri-modifying"></a>

当需求改变时，可以修改标准或可转换预留实例并继续利用账单优势。您可以修改可用区、实例大小（在相同的实例系列和世代中），以及预留实例的范围等属性。

**注意**  
您还可以将可转换预留实例交换为具有不同配置的其他可转换预留实例。有关更多信息，请参阅[交换 可转换预留实例](ri-convertible-exchange.md)。

可以修改全部或部分预留实例。可以将原始 预留实例 分为两个或更多新的 预留实例。例如，如果您在 `us-east-1a` 中有 10 个实例的预留，并决定将其中 5 个实例移至 `us-east-1b`，则修改请求会生成两个新的预留实例 - 一个用于 `us-east-1a` 中的 5 个实例，另一个用于 `us-east-1b` 中的 5 个实例。

还可以将两个或更多 预留实例 *合并* 成单个 Reserved Instance。例如，如果有四个 `t2.small` 均为 预留实例，则可以将其合并以创建单个 `t2.large` Reserved Instance。有关更多信息，请参阅[对于修改实例大小的支持](#ri-modification-instancemove)。

修改之后，预留实例的定价权益仅适用于与新参数匹配的实例。例如，如果您更改预留的可用区，则容量预留和定价优势自动应用到在新可用区中使用的实例。除非您的账户有其他适用的预留，否则将按照按需费率对不再符合新参数的实例收费。

如果您的修改请求成功：
+ 修改的预留会立即生效，并且定价优惠将于进行修改请求时这一小时的开始应用于新实例。例如，如果您在晚上 9:15 成功修改了预留，则定价优惠将在晚上 9:00 转移到新实例。您可以使用 [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) 命令，获取修改后的预留实例的生效日期。
+ 原始预留将停用。其结束日期是新预留的开始日期，而新预留的结束日期与原始Reserved Instance的结束日期相同。如果您修改一个剩余期限为 16 个月的三年期预留，则修改后得到的预留是为期 16 个月的预留，其结束日期与原始预留相同。
+ 已修改的预留将列出 0 美元固定价格，而不是原始预留的固定价格。
+ 已修改的预留实例的固定价格不影响您的账户的折扣定价套餐计算，后者基于原始预留的固定价格。

如果修改请求失败，预留实例会保持其原始配置，并立即对其他修改请求可用。

修改不会产生任何费用，因此您不会收到任何新账单或发票。

您可以根据自己的需要随时修改预留，但是不能在提交之后更改或取消挂起的修改请求。修改成功完成后，如果需要，您可以提交另一个修改请求，以回滚您所做的任何更改。

**Topics**
+ [修改的要求和限制](#ri-modification-limits)
+ [对于修改实例大小的支持](#ri-modification-instancemove)
+ [提交修改请求](#ri-modification-process)
+ [修改请求故障排除](#ri-modification-process-messages)

## 修改的要求和限制
<a name="ri-modification-limits"></a>

您可以按如下方式修改这些属性。


| 可修改的属性 | 支持的平台 | 限制和注意事项 | 
| --- | --- | --- | 
|  在相同区域内更改**可用区**  |  Linux 和 Windows  | - | 
|  将**范围**从可用区更改到区域以及反之  |  Linux 和 Windows  |  可用区预留实例的范围限定为可用区，并在该可用区中预留容量。如果您将范围从可用区更改为区域（即从可用区范围到区域性），则会失去容量预留优势。 区域性预留实例的范围限定为区域。预留实例折扣适用于在该区域任何可用区中运行的实例。此外，预留实例折扣适用于所选实例系列中所有大小的实例用量。如果您将范围从区域更改为可用区（即从区域性到可用区范围），则会失去可用区灵活性和实例大小灵活性（如果适用）。 有关更多信息，请参阅 [如何应用预留实例折扣](apply_ri.md)。 | 
|  更改相同实例系列和世代中的**实例大小**  |  仅限 Linux/UNIX 实例大小灵活性不适用于其他平台上的 预留实例，这些平台包括含有 SQL Server Standard 的 Linux、含有 SQL Server Web 的 Linux、含有 SQL Server Enterprise 的 Linux、Red Hat Enterprise Linux、SUSE Linux、Windows、含有 SQL Standard 的 Windows、含有 SQL Server Enterprise 的 Windows 和含有 SQL Server Web 的 Windows。  |  预留必须使用默认租赁。某些实例系列不受支持，因为没有其他大小可用。有关更多信息，请参阅 [对于修改实例大小的支持](#ri-modification-instancemove)。  | 

**要求**

Amazon EC2 处理您的修改请求的前提是，对于您的新配置（如果适用），有足够的容量，同时满足以下条件：
+ 在您购买 Reserved Instance 时或在此之前，无法对其进行修改
+ Reserved Instance 必须是活动的
+ 不能有待处理的修改请求
+ 预留实例未列在预留实例 Marketplace 中
+ 原始预留的实例大小占用空间必须与新配置匹配。有关更多信息，请参阅[对于修改实例大小的支持](#ri-modification-instancemove)。
+ 原始 预留实例 要么全部是标准 预留实例，要么全部是 可转换预留实例，不能每种类型都有一些
+ 原始 预留实例 如果是标准 预留实例，则必须在相同的时间过期
+ 要修改实例大小，预留实例必须支持实例大小灵活性。关于不支持实例大小灵活性的预留实例列表，请参阅[实例大小灵活性](apply_ri.md#ri-instance-size-flexibility)。

## 对于修改实例大小的支持
<a name="ri-modification-instancemove"></a>

在满足以下要求时可以修改Reserved Instance的实例大小。

**要求**
+ 平台是 Linux/UNIX。
+ 您必须在相同 [实例系列](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html)（用字母表示，例如 T）和 [世代](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html)（用数字指示，例如 2）中选择其他实例大小。

  例如，您可以将预留实例从 `t2.small` 修改为 `t2.large`，因为它们属于同一 T2 系列和世代。但您不能将预留实例从 T2 修改为 M2 或从 T2 修改为 T3，因为在这两个示例中，目标实例系列和世代与原始预留实例不同。
+ 只有在预留实例支持实例大小灵活性时，才可以修改预留实例的实例大小。关于不支持实例大小灵活性的预留实例列表，请参阅[实例大小灵活性](apply_ri.md#ri-instance-size-flexibility)。
+ 您不能修改 `t1.micro` 实例的预留实例的实例大小，因为 `t1.micro` 仅有一个大小。
+ 原始和新 Reserved Instance 必须具有相同的实例大小占用空间。

**Topics**
+ [实例大小占用空间](#ri-modification-instance-size-footprint)
+ [裸机实例的标准化因子](#ri-normalization-factor-bare-metal-2)

### 实例大小占用空间
<a name="ri-modification-instance-size-footprint"></a>

每个Reserved Instance都有*实例大小占用空间*，该空间由预留中实例大小的标准化因子和实例数量决定。修改 Reserved Instance 中的实例大小时，新配置的占用空间必须与原始配置相匹配，否则不会处理修改请求。

要计算Reserved Instance的实例占用空间大小，请将实例数量乘以标准化因子。在 Amazon EC2 控制台中，标准化因子用单位数来度量。下表描述了一个实例系列中实例大小的标准化因子。例如，`t2.medium` 的标准化因子为 2，因此 4 个 `t2.medium` 实例的预留具有 8 个单位的占用空间。


| 实例大小 | 标准化因子 | 
| --- | --- | 
| nano | 0.25 | 
| micro | 0.5 | 
| small | 1 | 
| medium | 2 | 
| large | 4 | 
| xlarge | 8 | 
| 2xlarge | 16 | 
| 3xlarge | 24 | 
| 4xlarge | 32 | 
| 6xlarge | 48 | 
| 8xlarge | 64 | 
| 9xlarge | 72 | 
| 10xlarge | 80 | 
| 12xlarge | 96 | 
| 16xlarge | 128 | 
| 18xlarge | 144 | 
| 24xlarge | 192 | 
| 32xlarge | 256 | 
| 48xlarge | 384 | 
| 56xlarge | 448 | 
| 112xlarge | 896 | 

只要预留的实例大小占用空间保持不变，您就可以将预留分配给相同实例系列中的不同实例大小。例如，您可以将 1 个 `t2.large`（1 个 4 单位）实例的预留划分为 4 个 `t2.small`（4 个 1 单位）实例。同样，您可以将 4 个 `t2.small` 实例的预留合并为 1 个 `t2.large` 实例。但是，您不能将两个 `t2.small` 实例的预留更改为一个 `t2.large` 实例，因为新预留的占用空间（4 个单位）大于原始预留的占用空间（2 个单位）。

在以下示例中，您有 1 个具有 2 个 `t2.micro` 实例（1 个单位）的预留和 1 个具有 1 个 `t2.small` 实例（1 个单位）的预留。如果您将这些预留合并到具有 1 个 `t2.medium` 实例（2 个单位）的单个预留中，则新预留的占用空间等于合并预留的占用空间。

![\[修改预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-modify-merge.png)


您还可以修改预留以将其拆分为多个预留。在以下示例中，您有 1 个具有 `t2.medium` 实例（2 个单位）的预留。您可以将该预留划分为两个预留，其中之一具有 2 个 `t2.nano` 实例（.5 个单位），另一个具有 3 个 `t2.micro` 实例（1.5 个单位）。

![\[修改预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-modify-divide.png)


### 裸机实例的标准化因子
<a name="ri-normalization-factor-bare-metal-2"></a>

您可以使用相同实例系列中的其他大小，通过 `metal` 实例修改预留。同样，您可以使用相同实例系列中的 `metal` 大小，通过裸机实例以外的实例修改预留。通常，裸机实例的大小与相同实例系列中可用的最大实例大小相同。例如，`i3.metal` 实例的大小与 `i3.16xlarge` 实例的大小相同，因此它们具有相同的标准化因子。

下表描述了具有裸机实例的实例系列中裸机实例大小的标准化因子。`metal` 实例的标准化因子取决于实例系列，与其他实例大小不同。


| 实例大小 | 标准化因子 | 
| --- | --- | 
| a1.metal | 32 | 
|  m5zn.metal \$1 x2iezn.metal z1d.metal  | 96 | 
|  c6g.metal \$1 c6gd.metal \$1 i3.metal \$1 m6g.metal \$1 m6gd.metal \$1 r6g.metal \$1 r6gd.metal \$1 x2gd.metal  | 128 | 
| c5n.metal | 144 | 
|  c5.metal \$1 c5d.metal \$1 i3en.metal \$1 m5.metal \$1 m5d.metal \$1 m5dn.metal \$1 m5n.metal \$1 r5.metal \$1 r5b.metal \$1 r5d.metal \$1 r5dn.metal \$1 r5n.metal  | 192 | 
|  c6i.metal \$1 c6id.metal \$1 m6i.metal \$1 m6id.metal \$1 r6d.metal \$1 r6id.metal  | 256 | 
|  u-18tb1.metal \$1 u-24tb1.metal  | 448 | 
|  u-6tb1.metal \$1 u-9tb1.metal \$1 u-12tb1.metal  | 896 | 

例如，`i3.metal` 实例的标准化因子为 128。如果您购买 `i3.metal` 默认租期 Amazon Linux/Unix Reserved Instance，则可以按照如下方式划分预留：
+ `i3.16xlarge` 的大小与 `i3.metal` 实例的大小相同，因此其标准化因子为 128 (128/1)。一个 `i3.metal` 实例的预留可以修改到一个 `i3.16xlarge` 实例中。
+ `i3.8xlarge` 的大小是 `i3.metal` 实例大小的一半，因此其标准化因子为 64 (128/2)。一个 `i3.metal` 实例的预留可以划分到两个 `i3.8xlarge` 实例中。
+ `i3.4xlarge` 的大小是 `i3.metal` 实例大小的四分之一，因此其标准化因子为 32 (128/4)。一个 `i3.metal` 实例的预留可以划分到四个 `i3.4xlarge` 实例中。

## 提交修改请求
<a name="ri-modification-process"></a>

在修改预留实例之前，请确保已阅读适用的[限制](#ri-modification-limits)。在您修改实例大小之前，请计算所要修改的原始预留的总[实例大小占用空间](#ri-modification-instancemove)，并确保该值与新配置的总实例大小占用空间相匹配。

------
#### [ Console ]

**修改预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在 **Reserved Instances (预留实例)** 页面上，选择一个或多个要修改的预留实例，然后依次选择 **Actions (操作)** 和 **Modify Reserved Instances (修改预留实例)**。

   如果 预留实例 不处于活动状态或无法修改，则 **Modify 预留实例 (修改预留实例)** 处于禁用状态。

1. 修改表中的第一个条目显示选定 预留实例 的属性，而且其下方至少有一个目标配置。**Units** 列显示总实例大小占用空间。单击各个新配置的 **Add** 以添加。根据需要修改每个配置的属性。
   + **Scope (范围)**：选择配置是应用于可用区还是整个区域。
   + **Availability Zone**：选择所需的可用区。不适用于区域性预留实例。
   + **实例类型**：选择所需的实例类型。组合配置必须等于原始配置的实例大小占用空间。
   + **Count (数量)**：指定实例数。要将预留实例拆分为多个配置，请减少数量，选择 **Add (添加)**，然后为其他配置指定数量。例如，如果单个配置的数量为 10，则可以将其数量更改为 6，并添加数量为 4 的配置。此过程在激活新的预留实例后会停用原始的Reserved Instance。

1. 选择 **Continue (继续)**。

1. 指定好目标配置之后，要确认您的修改选择，请选择 **Submit modifications (提交修改)**。

1. 您可以在 预留实例 屏幕中通过查看 **State (状态)** 列来确定修改请求的状态。有以下可能状态。
   + **active (活动)*（等待修改）*** — 原始预留实例的转换状态
   + **停用*（等待修改）*** — 创建新预留实例时原始预留实例的转换状态。
   + **停用** — 已成功修改和替换预留实例
   + **活动** — 以下选项之一：
     + 从成功的修改请求创建的新预留实例
     + 修改请求失败后的原始预留实例

------
#### [ AWS CLI ]

**修改预留实例**  
使用 [modify-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-reserved-instances.html) 命令。您可以在 JSON 文件中提供配置详细信息。

```
aws ec2 modify-reserved-instances \
    --reserved-instances-ids b847fa93-e282-4f55-b59a-1342f5bd7c02 \
    --target-configurations file://configuration.json
```

**获取修改请求的状态**  
使用 [describe-reserved-instances-modifications](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-modifications.html) 命令。状态为 `processing`、`fulfilled` 或 `failed`。

```
aws ec2 describe-reserved-instances-modifications \
    --reserved-instances-modification-ids rimod-d3ed4335-b1d3-4de6-ab31-0f13aaf46687 \
    --query ReservedInstancesModifications[].Status
```

------
#### [ PowerShell ]

**修改预留实例**  
使用 [Edit-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ReservedInstance.html) cmdlet。您可以在类型为 `Amazon.EC2.Model.ReservedInstancesConfiguration` 的对象中提供配置详细信息。

```
Edit-EC2ReservedInstance `
    -ReservedInstancesId b847fa93-e282-4f55-b59a-1342f5bd7c02 `
    -TargetConfiguration $configuration
```

**获取修改请求的状态**  
使用 [Get-EC2ReservedInstancesModification](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesModification.html) cmdlet。状态为 `processing`、`fulfilled` 或 `failed`。

```
Get-EC2ReservedInstancesModification `
    -ReservedInstancesModificationId rimod-d3ed4335-b1d3-4de6-ab31-0f13aaf46687 | `
    Select Status
```

------

## 修改请求故障排除
<a name="ri-modification-process-messages"></a>

如果您请求的目标配置设置是唯一的，则您会收到正在处理该请求的消息。此时，Amazon EC2 仅确定了修改请求的参数有效。在处理过程中，您的修改请求仍然可能因无可用容量而失败。

在某些情况下，您可能会收到一个指示修改请求未完成或失败的消息而不是确认。使用此类消息中的信息作为重新提交另一个更改请求的起点。提交请求前，请确保您已阅读适用的[限制](#ri-modification-limits)。

**并非所有选择的预留实例都可以进行修改处理**  
Amazon EC2 会确定并列出无法修改的 预留实例。如果收到与此类似的消息，请转到 Amazon EC2 控制台中的 **Reserved Instances (预留实例)** 页面，查看 预留实例 的信息。

**处理修改请求时出错**  
您提交了一个或多个预留实例进行修改，但无法处理您的任何请求。根据您修改的预留数量，您可以获取不同版本的消息。

Amazon EC2 会显示无法处理请求的原因。举例来说，您可能已经为想要修改的 预留实例 的一个或更多子集指定了相同的目标配置（可用区和平台的组合）。尝试重新提交修改请求，但确保预留的实例详细信息是匹配的，并确保修改的所有子集的目标配置是唯一的。

# 交换 可转换预留实例
<a name="ri-convertible-exchange"></a>

您可以将一个或多个 可转换预留实例 与具有不同配置的其他 可转换预留实例（包括实例系列、操作系统和租期）进行交换。执行交换的次数没有限制，前提是新的可转换预留实例的值等于或高于要交换的可转换预留实例的值。

在交换可转换预留实例时，您当前预留的实例数与新可转换预留实例的配置的实例数（其涵盖的值相等或更高）进行交换。Amazon EC2 计算您可以通过交换获得的预留实例数量。

您不能交换标准 预留实例，但可对其进行修改。有关更多信息，请参阅[修改 预留实例](ri-modifying.md)。

**Topics**
+ [交换可转换预留实例的要求](#riconvertible-exchange-limits)
+ [计算 可转换预留实例 交换](#riconvertible-exchange-cost)
+ [合并 可转换预留实例](#ri-merge-convertible)
+ [交换部分 可转换预留实例](#ri-split-convertible)
+ [提出交换请求](#ri-exchange-process)

## 交换可转换预留实例的要求
<a name="riconvertible-exchange-limits"></a>

如果满足以下条件，Amazon EC2 将处理您的交换请求。您可转换预留实例必须：
+ 处于活动状态
+ 没有以前等待处理的交换请求
+ 距离到期至少还剩 24 小时

以下规则适用：
+ 可转换预留实例必须与当前由 AWS 提供的其他可转换预留实例交换。
+ 可转换预留实例 与特定区域关联，在预留期限内是固定的。您不能将可转换预留实例与其他区域中的可转换预留实例进行交换。
+ 要交换区域可转换预留实例，AWS 必须为该区域中的新实例类型提供足够的容量。
+ 一次只能将一个或多个 可转换预留实例 与一个 可转换预留实例 交换。
+ 要交换部分 可转换预留实例，您可以修改它以将其拆分为两个或更多预留，然后将一个或多个预留与新 可转换预留实例 交换。有关更多信息，请参阅[交换部分 可转换预留实例](#ri-split-convertible)。有关修改 预留实例 的更多信息，请参阅[修改 预留实例](ri-modifying.md)。
+ 预付全费的 可转换预留实例 可用来交换预付部分费用的 可转换预留实例，反之亦然。
**注意**  
如果交换所需的总预付款（调整费用）少于 0.00 USD，AWS会自动向您提供可转换预留实例 中可确保调整费用大于等于 0.00 USD 的实例数。
**注意**  
如果新可转换预留实例的总价值（预付价格 \$1 每小时价格 \$1 剩余小时数）少于交换的可转换预留实例的总价值，AWS会自动向您提供可转换预留实例中可确保总价值大于等于交换的可转换预留实例的总价值的实例数。
+ 要享受更优惠的定价，您可以将无预付费用的 可转换预留实例 交换为预付全费或预付部分费用的 可转换预留实例。
+ 不能将预付全部费用和预付部分费用的可转换预留实例交换为无预付费用的可转换预留实例。
+ 仅当新 可转换预留实例 的每小时价格大于等于交换的 可转换预留实例 的每小时价格时，才能将一个无预付费用的 可转换预留实例 交换为另一个无预付费用的 可转换预留实例。
**注意**  
如果新可转换预留实例的总价值（预付价格 \$1 每小时价格 \$1 剩余小时数）少于交换的可转换预留实例的总价值，AWS会自动向您提供可转换预留实例中可确保总价值大于等于交换的可转换预留实例的总价值的实例数。
+ 如果交换到期日期不同的多个 可转换预留实例，则新 可转换预留实例 的到期日期是将来最晚的日期。
+ 如果您交换了单个 可转换预留实例，则它必须与新 可转换预留实例 具有相同的期限（1 年或 3 年）。如果合并期限不同的多个 可转换预留实例，则新 可转换预留实例 期限为 3 年。有关更多信息，请参阅 [合并 可转换预留实例](#ri-merge-convertible)。
+ 当 Amazon EC2 交换可转换预留实例时，它会停用相关的预留，并将结束日期传输到新预留。交换后，Amazon EC2 会将旧预留的结束日期和新预留的开始日期设置为等于交换日期。例如，如果您交换一个剩余期限为 16 个月的三年期预留，则新预留是为期 16 个月的预留，其结束日期与您交换的可转换预留实例相同。

## 计算 可转换预留实例 交换
<a name="riconvertible-exchange-cost"></a>

交换可转换预留实例是免费的。但是，您可能需要支付调整费用，即您拥有的可转换预留实例与通过交换收到的新可转换预留实例之间差额的按比例预付费用。

每个可转换预留实例都具有标价。此价目表值与您想要的可转换预留实例的价目表值比较，用于确定您可通过交换收到的实例预留数。

例如：您有 1 个 35 美金标价的可转换预留实例，您希望交换为标价为 10 美金的全新实例类型。

```
$35/$10 = 3.5
```

您可以将 可转换预留实例 交换为三个 10 美元的 可转换预留实例。无法购买半预留；因此必须购买额外的可转换预留实例才能涵盖剩余部分：

```
3.5 = 3 whole Convertible Reserved Instances + 1 additional Convertible Reserved Instance
```

第四个可转换预留实例与其他三个具有相同的结束日期。如果要交换部分或全部预付可转换预留实例，则需要支付第四个预留的调整费用。如果 可转换预留实例 的剩余预付费用为 500 USD，新预留通常按比例分摊为 600 USD，则需要支付 100 USD。

```
$600 prorated upfront cost of new reservations - $500 remaining upfront cost of old reservations = $100 difference
```

## 合并 可转换预留实例
<a name="ri-merge-convertible"></a>

如果合并两个或更多可转换预留实例，则新可转换预留实例的期限必须与旧可转换预留实例的期限相同，或者与可转换预留实例中的最高期限相同。新可转换预留实例的到期日期是未来有效时间最长的到期日期。

例如，您的账户中有以下可转换预留实例：


| Reserved Instance ID | 租期 | 到期日期 | 
| --- | --- | --- | 
| aaaa1111 | 1 年 | 2018-12-31 | 
| bbbb2222 | 1 年 | 2018-07-31 | 
| cccc3333 | 3 年 | 2018-06-30 | 
| dddd4444 | 3 年 | 2019-12-31 | 
+ 您可以合并 `aaaa1111` 和 `bbbb2222` 并将它们与 1 年期 可转换预留实例 交换。您无法将它们与 3 年期可转换预留实例交换。新可转换预留实例的到期日期为 2018-12-31。
+ 您可以合并 `bbbb2222` 和 `cccc3333` 并将它们与 3 年期 可转换预留实例 交换。您无法将它们与 1 年期可转换预留实例交换。新可转换预留实例的到期日期为 2018-07-31。
+ 您可以合并 `cccc3333` 和 `dddd4444` 并将它们与 3 年期 可转换预留实例 交换。您无法将它们与 1 年期可转换预留实例交换。新可转换预留实例的到期日期为 2019-12-31。

## 交换部分 可转换预留实例
<a name="ri-split-convertible"></a>

您可以使用修改过程将 可转换预留实例 拆分为较小的预留，然后将一个或多个新预留与新 可转换预留实例 交换。以下示例演示了如何执行此操作。

**Example 示例：包含多个实例的可转换预留实例**  
在本示例中，您有一个在预留中有四个实例的 `t2.micro` 可转换预留实例。将两个 `t2.micro` 实例与一个 `m4.xlarge` 实例交换：  

1. 修改 `t2.micro` 可转换预留实例，方法为将其拆分为两个 `t2.micro` 可转换预留实例，每一个都包含两个实例。

1. 将其中一个新 `t2.micro` 可转换预留实例 与一个 `m4.xlarge` 可转换预留实例 交换。

![\[修改和交换预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-split-cri-multiple.png)


**Example 示例：包含单个实例的可转换预留实例**  
在本示例中，您拥有一个 `t2.large` 可转换预留实例。将其更改为一个较小的 `t2.medium` 实例和一个 `m3.medium` 实例：  

1. 修改 `t2.large` 可转换预留实例，方法为将其拆分为两个 `t2.medium` 可转换预留实例。单个 `t2.large` 实例具有两个 `t2.medium` 实例相同的实例大小占用空间。

1. 将其中一个新 `t2.medium` 可转换预留实例 与一个 `m3.medium` 可转换预留实例 交换。

![\[修改和交换预留实例。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-split-cri-single.png)

有关更多信息，请参阅[对于修改实例大小的支持](ri-modifying.md#ri-modification-instancemove)和[提出交换请求](#ri-exchange-process)。

## 提出交换请求
<a name="ri-exchange-process"></a>

您可以交换可转换预留实例。交换的预留实例已停用。

------
#### [ Console ]

**交换可转换预留实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择 **Reserved Instances (预留实例)**，选择要交换的 可转换预留实例，然后依次选择 **Actions (操作)** 和 **Exchange Reserved Instance (交换预留实例)**。

1. 选择所需配置的属性，然后选择 **Find offering (查找产品)**。

1. 选择一个新的 可转换预留实例。在屏幕底部，您可以查看通过交换收到的 预留实例 数和任何额外费用。

1. 当您选择了符合需求的 可转换预留实例 时，请选择 **Review (审核)**。

1. 选择 **Exchange (交换)**，然后选择 ** Close (关闭)**。

------
#### [ AWS CLI ]

**交换可转换预留实例**

1. 使用 [describe-reserved-instances-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances-offerings.html) 命令查找符合需求的新可转换预留实例。

1. 使用 [get-reserved-instances-exchange-quote](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-reserved-instances-exchange-quote.html) 命令获取交换的报价。这包括通过交换获得的预留实例数以及交换的调整费用：

1. 使用 [accept-reserved-instances-exchange-quote](https://docs.aws.amazon.com/cli/latest/reference/ec2/accept-reserved-instances-exchange-quote.html) 命令执行交换。

------
#### [ PowerShell ]

**交换可转换预留实例**

1. 使用 [Get-EC2ReservedInstancesOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesOffering.html) cmdlet 查找符合需求的新可转换预留实例。

1. 使用 [GetEC2-ReservedInstancesExchangeQuote](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstancesExchangeQuote.html) cmdlet 获取交换的报价。这包括通过交换获得的预留实例数以及交换的调整费用：

1. 使用 [Approve-EC2ReservedInstancesExchangeQuote](https://docs.aws.amazon.com/powershell/latest/reference/items/Approve-EC2ReservedInstancesExchangeQuote.html) cmdlet 进行交换

------

# 预留实例限额
<a name="ri-limits"></a>

您可以每月购买新的预留实例。您每月可购买的新预留实例数由每月配额决定，如下所示：


****  

| 配额描述 | 默认配额 | 
| --- | --- | 
|  新的[区域性](apply_ri.md#apply-regional-ri)预留实例  | 每个区域每月 20 个 | 
|  新的[可用区](apply_ri.md#apply-zonal-ri)预留实例  | 每个可用区每月 20 个 | 

例如，在带有三个可用区的区域中，默认配额为每月 80 个新预留实例，计算方法如下：
+ 该区域有 20 个区域预留实例
+ 加 60 个可用区预留实例（三个可用区各有 20 个）

处于 `running` 状态的实例将计入您的限额。处于 `pending`、`stopping`、`stopped` 和 `hibernated` 状态的实例不会计入您的限额。

## 查看您已购买的预留实例数量
<a name="view-number-of-purchased-reserved-instances"></a>

您购买的预留实例数量通过 **Instance count**（实例计数）字段（控制台）或 `InstanceCount` 参数（AWS CLI）表示。当您购买新的预留实例时，配额会根据实例总数进行衡量。例如，如果您购买了实例数量为 10 的单个预留实例配置，则计入配额的购买数量为 10，而不是 1。

您可以使用 Amazon EC2 或 AWS CLI 查看已购买的预留实例数量。

------
#### [ Console ]

**查看您已购买的预留实例数量**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Reserved Instances**。

1. 从表中选择预留实例配置，然后查看 **Instance count**（实例计数）字段。

   在下列屏幕截图中，选定的行表示 `t3.micro` 实例类型的单个预留实例配置。表视图中的 **Instance count**（实例计数）列和详细信息视图中的 **Instance count**（实例计数）字段（在屏幕截图中划出）表示此配置有 10 个预留实例。  
![\[此图显示 Amazon EC2 控制台中的 Reserved Instances（预留实例）屏幕。屏幕截图中划出了 Instance count（实例计数）字段。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ri-instance-count.png)

------
#### [ AWS CLI ]

**查看您已购买的预留实例数量**  
使用 [describe-reserved-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-reserved-instances.html) 命令并指定预留实例配置的 ID。

```
aws ec2 describe-reserved-instances \
    --reserved-instances-ids a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
    --output table
```

下面是示例输出。`InstanceCount` 字段表示此配置有 10 个预留实例。

```
-------------------------------------------------------------------
|                    DescribeReservedInstances                    |
+-----------------------------------------------------------------+
||                       ReservedInstances                       ||
|+----------------------+----------------------------------------+|
||  CurrencyCode        |  USD                                   ||
||  Duration            |  31536000                              ||
||  End                 |  2023-08-27T13:29:44+00:00             ||
||  FixedPrice          |  59.0                                  ||
||  InstanceCount       |  10                                    ||
||  InstanceTenancy     |  default                               ||
||  InstanceType        |  t3.micro                              ||
||  OfferingClass       |  standard                              ||
||  OfferingType        |  All Upfront                           ||
||  ProductDescription  |  Linux/UNIX                            ||
||  ReservedInstancesId |  a1b2c3d4-5678-90ab-cdef-EXAMPLE11111  ||
||  Scope               |  Region                                ||
||  Start               |  2022-08-27T13:29:45.938000+00:00      ||
||  State               |  active                                ||
||  UsagePrice          |  0.0                                   ||
|+----------------------+----------------------------------------+|
|||                      RecurringCharges                       |||
||+----------------------------------+--------------------------+||
|||  Amount                          |  0.0                     |||
|||  Frequency                       |  Hourly                  |||
||+----------------------------------+--------------------------+||
```

------
#### [ PowerShell ]

**查看您已购买的预留实例数量**  
使用 [Get-EC2ReservedInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ReservedInstance.html) Cmdlet 并指定预留实例配置的 ID。

```
Get-EC2ReservedInstance -ReservedInstancesId a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

下面是示例输出。`InstanceCount` 字段表示此配置有 10 个预留实例。

```
AvailabilityZone    : 
CurrencyCode        : USD
Duration            : 31536000
End                 : 1/12/2017 8:57:08 PM
FixedPrice          : 0
InstanceCount       : 10
InstanceTenancy     : default
InstanceType        : t3.medium
OfferingClass       : standard
OfferingType        : All Upfront
ProductDescription  : Windows
RecurringCharges    : {}
ReservedInstancesId : a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
Scope               : Region
Start               : 10/12/2016 4:00:00 PM
State               : active
Tags                : {}
UsagePrice          : 0
```

------

## 注意事项
<a name="ri-quota-considerations"></a>

区域性预留实例账单折扣适用于正在运行的按需型实例。默认按需型实例 限制为 20。购买区域性预留实例时，不能超出正在运行的按需型实例限制。例如，如果您已有 20 个正在运行的按需型实例，并且购买了 20 个区域性预留实例，则使用 20 个区域性预留实例将折扣应用于 20 个正在运行的按需型实例。即使您购买了更多的区域性预留实例，也无法启动更多的实例，因为已达到按需型实例限制。

在购买区域性预留实例 之前，请确保 个按需型实例 限制匹配或超出您打算拥有的区域性预留实例 的数量。如果需要，请确保在购买更多区域性 预留实例 *之前*，请求增加 个按需实例 限制。

可用区预留实例（为特定可用区域购买的预留实例）提供容量预留以及折扣。购买地区性 预留实例 时，*可以超出* 正在运行的 个按需实例 限制。例如，如果您已有 20 个正在运行的 按需型实例，并且购买了 20 个地区性 预留实例，则可以启动另外的 20 个 按需型实例，以区配地区性 预留实例 为您提供总共 40 个正在运行的实例的规范。

## 查看您的预留实例配额并请求增加配额
<a name="view-ri-quotas"></a>

Amazon EC2 控制台提供了配额信息。您也可以请求增加配额。有关更多信息，请参阅[查看当前限额](ec2-resource-limits.md#view-limits)和[请求提高](ec2-resource-limits.md#request-increase)。

# Spot Instances
<a name="using-spot-instances"></a>

竞价型实例是一种使用备用 EC2 容量的实例，以低于按需价格提供。由于竞价型实例允许您以极低的折扣请求未使用的 EC2 实例，这可能会显著降低您的 Amazon EC2 成本。竞价型实例的每小时价格称为 Spot 价格。每个可用区中的每种实例类型的 Spot 价格是由 Amazon EC2 设置的，并根据竞价型实例的长期供求趋势逐步调整。您的竞价型实例在容量可用时运行。

如果能灵活控制应用程序的运行时间并且应用程序可以中断，竞价型实例就是经济实惠之选。例如，竞价型实例非常适合数据分析、批处理作业、后台处理和可选的任务。有关更多信息，请参阅 [Amazon EC2 Spot 实例](https://aws.amazon.com/ec2/spot/)。

有关 EC2 实例不同购买选项的比较，请参阅 [Amazon EC2 账单和购买选项](instance-purchasing-options.md)。

## 概念
<a name="spot-features"></a>

在开始使用竞价型实例之前，应该熟悉以下概念：
+ *Spot 容量池* – 一组具有相同实例类型（如 `m5.large`）和可用区的未使用 EC2 实例。
+ *Spot 价格* – Spot 实例的当前每小时价格。
+ *Spot 实例请求* – 请求 Spot 实例。当有容量可用时，Amazon EC2 将满足您的请求。Spot 实例请求是*一次性*或者*持续性*请求。在与请求关联的竞价型实例中断之后，Amazon EC2 会自动重新提交持续性竞价型实例请求。
+ *EC2 实例再平衡建议* – Amazon EC2 发出实例再平衡建议信号，以通知您竞价型实例处于中断高风险。此信号使您有机会在现有或新的竞价型实例间主动再平衡工作负载，而无需等待两分钟的竞价型实例中断通知。
+ *竞价型实例中断* – 如果 Amazon EC2 需要回收容量，Amazon EC2 会将您的竞价型实例停止、停止或休眠。Amazon EC2 将提供竞价型实例中断通知，这会在实例中断之前为其提供两分钟的警告。

## 竞价型实例与按需型实例的区别
<a name="key-differences-spot-on-demand"></a>

下表列出了竞价型实例与[按需型实例](ec2-on-demand-instances.md)之间的主要区别。


|  | 竞价型实例 | On-Demand Instances | 
| --- | --- | --- | 
|  启动时间  |  只有竞价型实例请求处于活动状态并且有可用容量时才能立即启动。  |  只有发出手动启动请求并且有可用容量时才能立即启动。  | 
|  可用容量  |  如果没有可用容量，则竞价型实例请求会继续自动发起启动请求，直到有可用容量为止。  |  如果在发出启动请求时没有可用容量，您会收到容量不足错误 (ICE)。  | 
|  每小时价格  |  竞价型实例的每小时价格根据长期的供需情况而有所调整。  |  按需型实例的每小时价格是静态的。  | 
| 再平衡建议 | 当实例处于较高的中断风险时，Amazon EC2 为正在运行的竞价型实例发出信号。 | 您可以决定何时中断个按需型实例（停止、休眠或终止）。 | 
|  实例中断  |  您可以停止和启动由 Amazon EBS 支持的竞价型实例。此外，如果容量不再可用，Amazon EC2 可能会[中断](spot-interruptions.md)单个竞价型实例。  |  您可以决定何时中断个按需型实例（停止、休眠或终止）。  | 

## 定价和节省
<a name="spot-pricing"></a>

您可以为竞价型实例支付 Spot 价格，该价格由 Amazon EC2 设置，并根据竞价型实例的长期供求趋势逐步进行调整。您的竞价型实例将持续运行，直到您将其终止、容量不再可用或您的 Amazon EC2 Auto Scaling 组在[横向缩减](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in)期间将其终止为止。

如果您或 Amazon EC2 中断正在运行的竞价型实例，您将按使用的秒数或整个小时付费，或者您不收取任何费用，具体取决于所使用的操作系统以及竞价型实例的中断方。有关更多信息，请参阅 [中断的竞价型实例的计费](billing-for-interrupted-spot-instances.md)。

节省计划不涵盖竞价型实例。如果您使用了节省计划，那么除了使用竞价型实例已经节省的费用外，此计划不会节省额外的费用。此外，您在竞价型实例上的支出并不适用于计算类节省计划中的承诺。

### 查看价格
<a name="spot-pricing-view-prices"></a>

要查看各个 AWS 区域和实例类型的当前最低竞价型实例价格（每 5 分钟更新一次），请参阅 [Amazon EC2 竞价型实例定价](https://aws.amazon.com/ec2/spot/pricing/) 页面。

要查看过去三个月竞价型实例价格的历史记录，请使用 Amazon EC2 控制台或 [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html) 命令。有关更多信息，请参阅 [查看竞价型实例定价历史记录](using-spot-instances-history.md)。

我们将可用区独立地映射到每个 AWS 账户的代码。因此，不同账户的相同可用区代码 (如 `us-west-2a`) 可能会返回不同的结果。

### 查看节省
<a name="spot-pricing-view-savings"></a>

您可以查看使用单个 [竞价型实例集](Fleets.md) 或所有竞价型实例时通过使用竞价型实例所节省的成本。您可以查看过去一小时或过去三天的节省，还可以查看每 vCPU 小时和每内存 (GiB) 小时的平均费用。节省是估算的，因为未算入您使用期间的计费调整，所以可能与实际的节省有所差异。有关查看节省信息的更多信息，请参阅[通过购买竞价型实例实现节省](spot-savings.md)。

### 查看账单
<a name="spot-pricing-view-billing"></a>

您的账单提供了服务使用量的详细信息。有关更多信息，请参阅 *AWS Billing 用户指南*中的[查看您的账单](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html)。

# Amazon EC2 竞价型实例的最佳实践
<a name="spot-best-practices"></a>

Amazon EC2 通过竞价型实例提供 AWS 云 中的备用 EC2 计算容量，与按需型实例价格相比，这种实例最高可以节省 90% 的成本。按需型实例和竞价型实例之间的唯一区别是，当 Amazon EC2 需要回收容量时，Amazon EC2 可以中断竞价型实例并提前两分钟发出通知。要确保在使用竞价型实例时获得最佳体验，必须了解并运用最佳使用实践。

竞价型实例建议用于无状态、容错且灵活的应用程序。例如，竞价型实例非常适合大数据、容器化工作负载、CI/CD、无状态 Web 服务器、高性能计算 (HPC) 和渲染工作负载。

在运行时，竞价型实例与按需型实例完全相同。不过，Spot 不能保证您可以将运行的实例保持足够长的时间以完成工作负载。Spot 也不能保证您可以立即使用查找的实例，或者不能保证您始终可以获得请求的总容量。此外，竞价型实例中断和容量可能会随着时间的推移而发生变化，因为竞价型实例可用性根据供需关系而发生变化，过去的性能并不能保证将来的结果。

竞价型实例不适用于不灵活、有状态、非容错或在实例节点之间紧密耦合的工作负载。对于不能容忍整个目标容量偶尔不完全可用的工作负载，也不建议使用竞价型实例。虽然遵循竞价型最佳实践来灵活处理实例类型和可用区可以实现高可用性，但这不能保证始终有可用的容量，因为对按需型实例的需求激增可能会中断竞价型实例上的工作负载。

强烈建议不要在这些工作负载中使用竞价型实例，也不要尝试失效转移到按需型实例，来处理中断或一段时间内不可用的问题。失效转移到按需型实例可能会无意中导致其他竞价型实例发生中断。此外，如果实例类型和可用区组合的竞价型实例发生中断，可能会很难获得具有相同组合的按需型实例。

无论您是经验丰富的 Spot 用户还是竞价型实例新用户，如果您当前遇到竞价型实例中断或可用性问题，我们建议您按照以下最佳实践以获得使用 Spot 服务的最佳体验。

**Topics**
+ [准备各个实例以处理中断](#prep-instances-for-interruptions)
+ [灵活地选择实例类型和可用区](#be-instance-type-flexible)
+ [使用基于属性的实例类型选择](#use-attribute-based-instance-type-selection)
+ [使用竞价放置分数来确定最佳区域和可用区](#use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones)
+ [使用 EC2 自动扩缩组或 EC2 实例集管理总容量](#use-sf-asg-for-aggregate-capacity)
+ [使用价格和容量优化分配策略](#use-capacity-optimized-allocation-strategy)
+ [使用集成的 AWS 服务以管理竞价型实例](#use-integrated-aws-services)
+ [使用哪种竞价型请求方法最好？](#which-spot-request-method-to-use)

## 准备各个实例以处理中断
<a name="prep-instances-for-interruptions"></a>

正常处理竞价型实例中断的最佳方法是，设计应用程序以提供容错能力。为此，您可以利用 EC2 实例再平衡建议和竞价型实例中断通知。

EC2 实例再平衡建议是一个信号，可在竞价型实例处于较高的中断风险时通知您。该信号使您有机会在两分钟的竞价型实例中断通知之前主动管理竞价型实例。您可以决定将工作负载再平衡到不处于较高中断风险的新的或现有的竞价型实例。借助自动扩缩组和 EC2 实例集中的容量再平衡功能，您可以轻松使用这个新信号。

竞价型实例中断通知是在 Amazon EC2 中断竞价型实例之前的两分钟发出的警告。如果工作负载为“时间灵活型”负载，您可以将竞价型实例配置为在中断时停止或休眠，而不是终止。Amazon EC2 在中断时使竞价型实例自动停止或休眠，并在我们具有可用容量时自动恢复这些实例。

我们建议您在 [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/index.html) 中创建一个规则以捕获再平衡建议和中断通知，然后触发工作负载进度的检查点或正常处理中断。有关更多信息，请参阅[监控再平衡建议信号](rebalance-recommendations.md#monitor-rebalance-recommendations)。有关指导您如何创建和使用事件规则的详细示例，请参阅[利用 Amazon EC2 Spot 实例中断通知](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/)。

有关更多信息，请参阅[EC2 实例再平衡建议](rebalance-recommendations.md) 和 [竞价型实例中断](spot-interruptions.md)。

## 灵活地选择实例类型和可用区
<a name="be-instance-type-flexible"></a>

竞价型容量池是具有相同实例类型（如 `m5.large`）和可用区（如 us-east-1a）的未使用 EC2 实例的集合。您应该灵活地选择请求哪些实例类型，以及可以在哪些可用区中部署工作负载。这为 Spot 提供了更好的机会以查找和分配所需数量的计算容量。例如，如果您希望使用 c4、m5 和 m4 系列中的大型实例，则不要仅请求 `c5.large`。

根据您的特定需求，您可以评估可灵活地选择哪些实例类型以满足您的计算要求。如果可以纵向扩展工作负载，您应该在请求中包括更大的实例类型（更多的 vCPU 和内存）。如果您只能横向扩展，您应该包括较旧一代的实例类型，因为按需客户很少需要使用它们。

一条很好的经验法则是，对于每种工作负载，灵活地在至少 10 种实例类型之间进行选择。此外，还要确保所有可用区配置为在 VPC 中使用，并为工作负载选择了这些可用区。

## 使用基于属性的实例类型选择
<a name="use-attribute-based-instance-type-selection"></a>

使用基于属性的实例类型选择后，可以为要运行的工作负载指定实例属性，例如 vCPU、内存和存储。之后，EC2 Auto Scaling 或 EC2 实例集会自动识别并启动与指定属性匹配的实例。这省去了手动选择特定实例类型所需的工作，免于深入了解每种实例类型的产品。

此外，基于属性的实例类型选择支持在新发布的实例类型可用时自动使用这些实例类型。此举可确保无缝访问范围越来越广泛的竞价型实例容量。

基于属性的实例类型选择适用于可以灵活确定所运行实例类型的工作负载和框架，例如高性能计算（HPC）和大数据工作负载。

有关更多信息，请参阅《Amazon EC2 Auto Scaling User Guide》**中的 [Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html)，以及本指南中的[指定 EC2 实例集或竞价型实例集的实例类型选择属性](ec2-fleet-attribute-based-instance-type-selection.md)。

## 使用竞价放置分数来确定最佳区域和可用区
<a name="use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones"></a>

竞价型实例属于未使用的 EC2 容量，此类容量会因 EC2 的供需情况产生波动。因此，想在特定时间于特定地点获得所需的确切竞价型容量，并不总是可行。您可以使用竞价放置分数功能来应对这种不可预测性。此功能为更有可能拥有足够容量来满足竞价型容量需求的区域或可用区提供建议，不要求先在这些位置启动竞价型实例。

竞价放置分数适用于可以灵活确定实例类型及其可使用的区域或可用区的工作负载。您要做的就是指定所需的竞价型容量、实例类型要求，以及是否需要针对区域或可用区的建议。随后，每个区域或可用区会获得 1 到 10 的分数，表明在该位置成功预置请求的竞价型容量的可能性。10 分数表示竞价请求极有可能成功。

务必注意，竞价放置分数属于时间点建议，因为容量可能会随时间发生变化。其既不能保证可用容量，也不能预测中断风险。

您可以通过 Amazon EC2 控制台、AWS CLI 或软件开发工具包使用竞价放置分数功能。有关更多信息，请参阅 [竞价放置分数](spot-placement-score.md)。

## 使用 EC2 自动扩缩组或 EC2 实例集管理总容量
<a name="use-sf-asg-for-aggregate-capacity"></a>

Spot 允许您考虑总容量（包括 vCPU、内存、存储或网络吞吐量），而不是考虑单个实例。通过使用自动扩缩组和 EC2 实例集，您可以启动和维持目标容量，自动请求资源以替换任何中断或手动终止的资源。在配置自动扩缩组或 EC2 实例集时，您仅需要根据应用程序需求指定实例类型和目标容量。有关更多信息，请参阅 *Amazon EC2 Auto Scaling 用户指南* 中的 [Auto Scaling 组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)和本用户指南中的[创建 EC2 实例集](create-ec2-fleet.md)。

## 使用价格和容量优化分配策略
<a name="use-capacity-optimized-allocation-strategy"></a>

Auto Scaling 组中的分配策略可以帮助您预置目标容量，而无需手动查找具有备用容量的 Spot 容量池。我们建议使用 `price-capacity-optimized` ‎‏‏‏‎策略，因为该策略自动从可用性最佳的竞价型容量池中预置实例，同时也具有最低价格。您也可以在 EC2 实例集中利用 `price-capacity-optimized` 分配策略。由于竞价型实例容量来自于具有最佳容量的池，因此，这会降低回收竞价型实例的可能性。有关更多信息，请参阅《Amazon EC2 Auto Scaling User Guide》**中的 [Allocation strategies for multiple instance types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html) 和本用户指南中的[当工作负载拥有较高中断成本时](ec2-fleet-allocation-strategy.md#ec2-fleet-strategy-capacity-optimized)。

## 使用集成的 AWS 服务以管理竞价型实例
<a name="use-integrated-aws-services"></a>

其他 AWS 服务与 Spot 集成在一起以降低总体计算成本，而无需管理各个实例或队列。我们建议您为适用的工作负载考虑以下解决方案：Amazon EMR、Amazon Elastic Container Service、AWS Batch、Amazon Elastic Kubernetes Service、Amazon SageMaker AI、AWS Elastic Beanstalk 和 Amazon GameLift Servers。要了解这些服务的 Spot 最佳实践的更多信息，请参阅 [Amazon EC2 竞价型实例 Workshops 网站](https://ec2spotworkshops.com/)。

## 使用哪种竞价型请求方法最好？
<a name="which-spot-request-method-to-use"></a>

使用下表确定在请求竞价型实例时使用哪个 API。


****  

| API | 何时使用？ | 使用案例 | 我应该使用这个 API 吗？ | 
| --- | --- | --- | --- | 
|  [CreateAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  创建一个 Auto Scaling 组，以管理实例的生命周期，同时保持所需的实例数量。支持在指定的最小和最大限值之间的水平扩展（添加更多实例）。  | 是 | 
| [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  在单个请求中创建一个由按需型实例和竞价型实例组成的实例集，并具有多个因实例类型、AMI、可用区或子网而异的启动规范。竞价型实例分配策略默认为每单位 `lowest-price`，但您可以将其更改为 `price-capacity-optimized`、`capacity-optimized` 或 `diversified`。  |  是 - 如果不需要弹性伸缩，则在 `instant` 模式下  | 
| [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  使用 AMI 和一个实例类型启动指定数量的实例。  |  否 - 因为 RunInstances 不允许在单个请求中混合多个实例类型  | 
| [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  请勿使用。RequestSpotFleet 是不具有计划投资的旧式 API。  | 否 | 
| [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  请勿使用。RequestSpotInstances 是不具有计划投资的旧式 API。  | 否 | 

# 竞价型实例的工作原理
<a name="how-spot-instances-work"></a>

要启动 Spot 实例，您可以创建 *Spot 实例请求*，或者 Amazon EC2 代表您创建 Spot 实例请求。竞价型实例在满足竞价型实例请求时启动。

您可以使用多种不同的服务启动竞价型实例。有关更多信息，请参阅 [Amazon EC2 Spot 实例入门](https://aws.amazon.com/ec2/spot/getting-started/)。在本用户指南中，我们介绍了以下使用 EC2 启动竞价型实例的方法：
+ 您可以使用 Amazon EC2 控制台中的[启动实例向导](ec2-launch-instance-wizard.md)或 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令创建竞价型实例请求。有关更多信息，请参阅 [管理您的竞价型实例](using-spot-instances-request.md)。
+ 您可以创建 EC2 实例集，在其中指定所需数量的竞价型实例。Amazon EC2 代表您为 EC2 实例集中指定的每个竞价型实例创建一个竞价型实例请求。有关更多信息，请参阅[创建 EC2 实例集](create-ec2-fleet.md)。
+ 您可以创建竞价型实例集请求，在其中指定所需数量的竞价型实例。Amazon EC2 代表您为竞价型实例集中指定的每个竞价型实例创建一个竞价型实例请求。有关更多信息，请参阅 [创建 Spot 队列](create-spot-fleet.md)。

如果有可用容量，则您的竞价型实例将启动。您的 Spot 实例会一直运行，直到您停止或终止它，或者 Amazon EC2 中断它（称为* Spot 实例中断*）。Amazon EC2 可以在中断竞价型实例时使实例停止、终止或休眠。

当您使用竞价型实例时，您必须为中断做好准备。在竞价型实例需求增加或供应减少时，Amazon EC2 可能会中断您的竞价型实例。在 Amazon EC2 中断竞价型实例时，将提供竞价型实例中断通知，这会在 Amazon EC2 终止该实例之前为其提供两分钟的警告。无法为竞价型实例启用终止保护。有关更多信息，请参阅 [竞价型实例中断](spot-interruptions.md)。

**Topics**
+ [竞价型实例请求状态](#creating-spot-request-status)
+ [在启动组中启动竞价型实例](#spot-launch-group)
+ [在可用区组中启动竞价型实例](#spot-az-group)
+ [在 VPC 中启动竞价型实例](#concepts-spot-instances-vpcs)
+ [启动可突增性能实例](#burstable-spot-instances)
+ [在单租户硬件上启动](#spot-instance-tenancy)

## 竞价型实例请求状态
<a name="creating-spot-request-status"></a>

竞价型实例请求可以处于以下某种状态：
+ `open` – 请求正在等待执行。
+ `active` – 请求已执行并有关联的竞价型实例。
+ `failed` – 请求的一个或多个参数错误。
+ `closed` – 竞价型实例被中断或终止。
+ `disabled` – 您停止了竞价型实例。
+ `cancelled` – 您取消了请求或请求已过期。

以下显示了请求状态之间的转换。请注意，转换取决于请求类型 (一次性还是持久性)。

![\[竞价型实例请求的状态。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/spot_request_states.png)


一次性竞价型实例请求在 Amazon EC2 启动竞价型实例、请求过期前或者您取消请求前保持有效。当没有容量可用时，将终止您的竞价型实例并关闭竞价型实例请求。

持久性竞价型实例请求在过期或您取消它之前保持有效，即使该请求已完成也如此。当没有容量可用时，您的竞价型实例将会中断。在您的实例中断后，在再次具有可用的容量时，将会启动竞价型实例（如果已停止）或将其恢复（如果已休眠）。您可以停止竞价型实例，然后在有容量可用是重新启动实例。如果竞价型实例终止（无论竞价型实例处于停止状态还是正在运行状态），则会重新打开竞价型实例请求，并且 Amazon EC2 启动一个新的竞价型实例。有关更多信息，请参阅[停止竞价型实例](using-spot-instances-request.md#stopping-a-spot-instance)、[启动竞价型实例](using-spot-instances-request.md#starting-a-spot-instance)和[终止竞价型实例](using-spot-instances-request.md#terminating-a-spot-instance)。

您可以跟踪竞价型实例请求的状态以及通过该状态启动的竞价型实例的状态。有关更多信息，请参阅 [获取竞价型实例请求的状态](spot-request-status.md)。

## 在启动组中启动竞价型实例
<a name="spot-launch-group"></a>

在竞价型实例请求中指定启动组，可以通知 Amazon EC2 只有在可以全部启动一组竞价型实例时才启动该组。此外，如果 Spot 服务必须终止启动组中的某个实例，它必须终止所有实例。不过，如果由您终止启动组中的一个或多个实例，Amazon EC2 不会终止该启动组中的剩余实例。

尽管此选项有用处，但是添加此约束会减少完成竞价型实例请求的几率并且增加竞价型实例被终止的几率。例如，启动组包括多个可用区中的实例。如果其中一个可用区中的容量减少且不再可用，则 Amazon EC2 会终止启动组的所有实例。

如果您创建了另一个成功的竞价型实例请求并指定与之前成功请求相同（现有）的启动组，则新实例将添加到该启动组中。以后，在该启动组的一个实例终止时，启动组中的所有实例均会终止，这包括第一次请求和第二次请求启动的实例。

## 在可用区组中启动竞价型实例
<a name="spot-az-group"></a>

在竞价型实例请求中指定可用区组，可以通知 Amazon EC2 在同一可用区中启动一组竞价型实例。Amazon EC2 无需同时中断可用区组中的所有实例。如果 Amazon EC2 必须中断可用区组中的某个实例，剩余的实例仍保持运行。

虽然此选项非常有用，但添加此约束会减少完成您的竞价型实例请求的几率。

如果您指定了可用区组，但未在竞价型实例请求中指定可用区，则具体结果将取决于您所指定的网络。

**默认 VPC**  
Amazon EC2 使用指定子网的可用区。如果您未指定子网，它会为您选择一个可用区及其默认子网，但不一定是价格最低的可用区。如果您删除了可用区的默认子网，则必须指定其他子网。

**非默认 VPC**  
Amazon EC2 使用指定子网的可用区。

## 在 VPC 中启动竞价型实例
<a name="concepts-spot-instances-vpcs"></a>

按照为按需型实例指定子网的相同方法，为您的竞价型实例指定子网。
+ [默认 VPC] 如果希望在特定的低价格可用区中启动您的竞价型实例，您必须在竞价型实例请求中指定对应的子网。如果您没有指定子网，则 Amazon EC2 将为您选择一个子网，而该子网的可用区中的 Spot 价格不一定是最低的。
+ [非默认 VPC] 您必须为您的竞价型实例指定子网。

## 启动可突增性能实例
<a name="burstable-spot-instances"></a>

T 实例类型是[可突增性能实例](burstable-performance-instances.md)。如果您使用可突增性能的实例类型启动竞价型实例，并计划立即短时间使用可突增性能的竞价型实例，且没有空闲时间来累积 CPU 积分，建议您以[标准模式](burstable-performance-instances-standard-mode.md)启动实例，以避免支付更高的费用。如果您以[无限模式](burstable-performance-instances-unlimited-mode.md)启动可突增性能的 Spot 实例并立即突增 CPU，您将会为突增花费超额积分。如果使用实例的时间很短，使得实例没有时间积累 CPU 积分来支付超额积分，则您将在终止实例时为超额积分付费。

仅当实例的运行时间较长，足以积累进行突增的 CPU 积分时，针对可突增性能的竞价型实例的无限模式才适用。否则，支付剩余积分会使可突增性能的竞价型实例比使用其他实例更加昂贵。有关更多信息，请参阅 [何时使用无限模式与固定 CPU](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode)。

以[标准模式](burstable-performance-instances-standard-mode.md)配置的 T2 实例可获得[启动积分](burstable-performance-instances-standard-mode-concepts.md#launch-credits)。T2 实例是唯一可获得启动积分的可突增性能实例。通过提供足够的计算资源来配置实例，启动积分旨在为 T2 实例提供有成效的初始启动体验。不允许重复启动 T2 实例以访问新的启动积分。如果您需要持续的 CPU，您可以赚取积分（通过空转一段时间），将[无限模式](burstable-performance-instances-unlimited-mode.md)用于 T2 Spot 实例，或将实例类型和专用 CPU 一起使用。

## 在单租户硬件上启动
<a name="spot-instance-tenancy"></a>

您可以在单租户硬件上运行竞价型实例。专用竞价型实例与属于其他 AWS 账户的实例物理隔离。有关更多信息，请参阅 [Amazon EC2 专用实例](dedicated-instance.md)和 [Amazon EC2 专用实例](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。

要运行专用竞价型实例，请执行以下操作之一：
+ 在创建竞价型实例请求时，请指定租期 `dedicated`。有关更多信息，请参阅[管理您的竞价型实例](using-spot-instances-request.md)。
+ 在 VPC 中请求实例租期为 `dedicated` 的竞价型实例。有关更多信息，请参阅 [在具有默认租赁的 VPC 中启动专用实例](dedicatedinstancesintovpc.md)。如果您在 VPC 中请求实例租赁为 `dedicated` 的竞价型实例，则无法请求租赁为 `default` 的竞价型实例。

所有实例系列都支持除 T 实例外的专用竞价型实例。对于每个受支持的实例系列，只有最大的实例或设备支持专用竞价型实例。

# 查看竞价型实例定价历史记录
<a name="using-spot-instances-history"></a>

竞价型实例的价格由 Amazon EC2 设置，并根据竞价型实例容量的长期供求趋势逐步调整。

当您的 Spot 请求得到满足时，您的竞价型实例将以当前 Spot 价格启动，并且不超过按需价格。您可以查看最近 90 天的 Spot 价格历史记录，并按照实例类型、操作系统和可用区筛选。

要查看*当前* Spot 实例价格，请参阅 [Amazon EC2 Spot 实例定价](https://aws.amazon.com/ec2/spot/pricing/)。

------
#### [ Console ]

**查看竞价型实例价格历史记录**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择**定价历史记录**。

1. 对于 **Graph (图表)**，选择按 **Availability Zones (可用区)** 或 **Instance Types (实例类型)** 来比较价格历史记录。
   + 如果选择**可用区**，则选择**实例类型**、操作系统（**平台**）以及要查看价格历史记录的**日期范围**。
   + 如果选择**实例类型**，则最多选择五个**实例类型**、**可用区**、操作系统（**平台**）以及要查看价格历史记录的**日期范围**。

   以下屏幕截图显示了不同实例类型的价格比较。  
![\[Amazon EC2 控制台中的 Spot Instance pricing history (Spot 实例定价历史记录) 工具。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/spot-instance-pricing-history.png)

1. 将指针移动到图形上并悬停，可显示选定日期范围内的特定时间的价格。价格显示在图表上方的信息块中。顶行中显示的价格显示了特定日期的价格。第二行中显示的价格显示了选定日期范围内的平均价格。

1. 要显示每个 vCPU 的价格，请开启 **Display normalized prices (显示标准化价格)**。要显示实例类型的价格，请关闭 **Display normalized prices (显示标准化价格)**。

------
#### [ AWS CLI ]

**查看竞价型实例价格历史记录**  
使用以下 [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html) 命令。

```
aws ec2 describe-spot-price-history \
    --instance-types c6i.xlarge \
    --product-descriptions "Linux/UNIX" \
    --start-time 2025-04-01T00:00:00 \
    --end-time 2025-04-02T00:00:0
```

------
#### [ PowerShell ]

**查看竞价型实例价格历史记录**  
使用 [Get-EC2SpotPriceHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotPriceHistory.html) cmdlet。

```
Get-EC2SpotPriceHistory `
    -InstanceType c6i.xlarge `
    -ProductDescription "Linux/UNIX" `
    -UtcStartTime 2025-04-01T00:00:00 `
    -UtcEndTime 2025-04-02T00:00:0
```

------

# 通过购买竞价型实例实现节省
<a name="spot-savings"></a>

您可以在每个队列级别或针对所有正在运行的竞价型实例，查看竞价型实例的用量和节省信息。在每个队列级别，用量和节省信息包括该队列启动和终止的所有实例。您可以查看过去一小时或过去三天的此信息。

来自 **Savings (节省成本)** 部分的以下屏幕截图显示了 Spot 实例集的 Spot 用量和节省信息。

![\[Spot Fleet details (Spot 队列详细信息) 页面的 Savings (节省成本) 部分。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/spot-savings.png)


您可查看以下用量和节省信息：
+ **Spot Instances (Spot 实例)** – Spot 实例集启动和终止的 Spot 实例数量。在查看节省摘要时，该数字表示您的所有正在运行的竞价型实例。
+ **vCPU-hours (vCPU 小时数)** – 在所选时间范围内所有 Spot 实例 使用的 vCPU 小时数。
+ **Mem(GiB)-hours (内存 (GiB) 小时数)** – 在所选时间范围内所有 Spot 实例 使用的 GiB 小时数。
+ **On-Demand total (按需总额)** – 您在将这些实例作为 按需实例 启动后，在所选时间范围内支付的总额。
+ **Spot total (Spot 总额)** – 您在所选时间范围内支付的总额。
+ **Savings (节省)** – 您通过未支付按需价格而节省的百分比。
+ **Average cost per vCPU-hour (每 vCPU 小时的平均费用)** – 在所选时间范围内所有 Spot 实例 使用 vCPU 的平均小时费用，其计算方式如下：**每 vCPU 小时的平均费用** = **Spot 总额** / **vCPU 小时数**。
+ **Average cost per mem(GiB)-hour (每内存 (GiB) 小时的平均费用)** – 在所选时间范围内所有 Spot 实例 使用 GiB 的平均小时费用，其计算方式如下：**每内存 (GiB) 小时的平均费用** = **Spot 总额** / **内存 (GiB) 小时数**。
+ **Details (详细信息)** 表 – 构成 Spot 实例集的各种实例类型（每个实例类型的实例数括在圆括号中）。在查看节省摘要时，这些数字涵盖了您的所有正在运行的竞价型实例。

节省信息只能使用 Amazon EC2 控制台查看。

**查看竞价型实例集的节省信息**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择 Spot 队列请求的 ID，然后滚动到 **Savings (节省成本)** 部分。

   或者，选中竞价型实例集请求 ID 旁边的复选框，然后选择**节省成本**选项卡。

1. 默认情况下，该页面显示过去三天的用量和节省信息。您可以选择 **last hour (过去一小时)** 或 **last three days (过去三天)**。对于不到一小时之前启动的 Spot 队列，该页面显示这一小时的预计节省。

**查看所有正在运行的竞价型实例的节省信息**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择 **Savings Summary (节省成本摘要)**。

# 创建竞价型实例请求
<a name="spot-requests"></a>

要使用竞价型实例，您需要创建竞价型实例请求，其中包括所需实例数量、实例类型以及可用区。当有容量可用时，Amazon EC2 将立即满足您的请求。否则，Amazon EC2 将等待直至可以完成您的请求，或者直至您取消请求。

您可以使用 Amazon EC2 控制台中的[启动实例向导](ec2-launch-instance-wizard.md)或 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令以与启动按需型实例相同的方式请求竞价型实例。建议使用此方法的原因如下：
+ 您已经在使用[启动实例向导](ec2-launch-instance-wizard.md)或 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令启动按需型实例，而且只想通过更改单个参数来更改为启动竞价型实例。
+ 您不需要多个实例类型不同的实例。

通常不建议使用此方法来启动竞价型实例，因为您无法指定多种实例类型，也无法在同一请求中启动竞价型实例和按需型实例。有关启动竞价型实例的首选方法（包括启动*实例集*，其中包含具有多种实例类型的竞价型实例和按需型实例类型），请参阅 [使用哪种竞价型请求方法最好？](spot-best-practices.md#which-spot-request-method-to-use)

如果您一次请求了多个竞价型实例，Amazon EC2 将创建单独的竞价型实例，这样您可以分别跟踪各个请求的状态。有关跟踪竞价型实例请求的更多信息，请参阅 [获取竞价型实例请求的状态](spot-request-status.md)。

------
#### [ Console ]<a name="create-spot-instance-request-console-procedure"></a>

**创建竞价型实例请求**

步骤 1-9 与启动按需型实例时使用的步骤相同。在步骤 10 中，您配置竞价型实例请求。

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在屏幕顶部的导航栏中，选择一个区域。

1. 从 Amazon EC2 控制台控制面板中，选择**启动实例**。

1. （可选）在**Name and tags**（名称和标签）下，您可以为实例命名，并为竞价型实例请求、实例、卷和弹性图形添加标签。有关标签的信息，请参阅 [标记 Amazon EC2 资源](Using_Tags.md)。

   1. 对于 **Name**（名称），为您的实例输入一个描述性名称。

      实例名称是一个标签，其中密钥为**名称**，而值为您指定的名称。如果您没有指定名称，则可以通过其 ID 标识实例，该 ID 将在您启动实例时自动生成。

   1. 要为竞价型实例请求、实例、卷和弹性图形添加标签，请选择 **Add additional tags**（添加其他标签）。选择**添加标签**，然后输入密钥和值，然后选择要标记的资源类型。为每个要添加的其它标签选择**添加标签**。

1. 在**应用程序和操作系统镜像（亚马逊机器映像）**下，为您的实例选择操作系统（OS），然后选择 AMI。有关更多信息，请参阅 [应用程序和操作系统映像（亚马逊机器映像）](ec2-instance-launch-parameters.md#liw-ami)。

1. 在 **Instance type**（实例类型）下，请选择符合您对实例硬件配置和大小要求的实例类型。有关更多信息，请参阅 [实例类型](ec2-instance-launch-parameters.md#liw-instance-type)。

1. 在 **Key pair（login）**（密钥对（登录））下，选择一个现有密钥对，或选择 **Create new key pair**（创建新密钥对）来新建一个密钥对。有关更多信息，请参阅 [Amazon EC2 密钥对和 Amazon EC2 实例](ec2-key-pairs.md)。
**重要**  
如果您选择 **Proceed without key pair (Not recommended)**（在没有密钥对的情况下继续（不推荐））选项，则将无法连接到此实例，除非您选择配置为允许用户以其它方式登录的 AMI。

1. 在 **Network settings**（网络设置）下，使用默认设置，或选择 **Edit**（编辑）根据需要配置网络设置。

   安全组构成了网络设置的一部分，并为实例定义防火墙规则。这些规则指定哪些传入的网络流量可传输到您的实例。

   有关更多信息，请参阅 [网络设置](ec2-instance-launch-parameters.md#liw-network-settings)。

1. 您选择的 AMI 包含一个或多个存储卷，包括根设备卷。在 **Configure storage**（配置存储）下，您可以选择 **Add new volume**（添加新卷）来指定要附加到实例的其他卷。有关更多信息，请参阅 [配置存储](ec2-instance-launch-parameters.md#liw-storage)。

1. 在 **Advanced details**（高级详细信息）下，按如下方式配置竞价型实例请求：

   1. 在**购买选项**下，选择**请求竞价型实例**复选框。

   1. 您可以保留竞价型实例请求的默认配置，也可以选择（位于右侧的） **Customize**（自定义）为竞价型实例请求指定自定义设置。

      选择 **Customize**（自定义）后，将显示以下字段。

      1. **Maximum price**（最高价）：您可以以 Spot 价格请求竞价型实例，上限为按需价格，也可以指定您愿意支付的最高金额。
**警告**  
如果您指定了某个最高价，则实例被中断的频率将比您选择 **No maximum price**（无最高价）时更高。  
如果您指定最高价格，则该价格必须高于 0.001 美元。指定低于 0.001 美元的值将导致启动失败。
         + **No maximum price**（无最高价）：您的竞价型实例将以当前的 Spot 价格启动。价格永远不会超过按需价格。（建议）
         + **Set your maximum price (per instance/hour)**（设置最高价（每实例/小时））：您可以指定愿意支付的最高金额。
           + 如果您指定的最高价低于 Spot 价格，则不会启动您的竞价型实例。
           + 如果您指定的最高价高于当前 Spot 价格，则您的竞价型实例将按当前 Spot 价格启动和计费。竞价型实例运行后，如果 Spot 价格上涨到超过您的最高价格，Amazon EC2 将中断您的竞价型实例。
           + 无论您指定哪种最高价，都将始终按当前的 Spot 价格向您收取费用。

           要查看 Spot 价格趋势，请参阅 [查看竞价型实例定价历史记录](using-spot-instances-history.md)。

      1. **Request type**（请求类型）：您选择的竞价型实例请求类型决定了竞价型实例中断时会发生什么。
         + **One-time**（一次性）：Amazon EC2 为您的竞价型实例发出一次性请求。如果您的竞价型实例被中断，不会重新提交请求。
         + **Persistent request**（持久性请求）：Amazon EC2 对您的竞价型实例发出持久请求。如果您的竞价型实例中断，则将重新提交请求以补充中断的竞价型实例。

         如果您未指定值，则默认值为一次性请求。

      1. **Valid to**（有效截止时间）：*持久性*竞价型实例请求的到期日期。

         一次性请求不支持此字段。*一次性*请求在请求中的所有实例启动或者您取消请求前保持有效。
         + **No request expiry date**（没有请求到期日期）：请求在您将其取消之前保持有效。
         + **Set your request expiry date**（设置请求到期日期）：持久性请求将保持活动状态，直到您指定的日期或取消该请求为止。

      1. **Interruption behavior**（中断行为）：您选择的行为决定了竞价型实例中断时会发生什么。
         + 对于持久性请求，有效值为 **Stop**（停止）和 **Hibernate**（休眠）。实例停止后，将收取 EBS 卷存储费用。
**注意**  
竞价型实例现在使用与按需型实例相同的休眠功能。要启用休眠，您可以在此处选择**休眠**，也可以在启动实例向导下方显示的**停止 - 休眠行为**字段中选择**启用**。有关休眠的先决条件，请参阅 [EC2 实例休眠的先决条件](hibernating-prerequisites.md)。
         + 对于一次性请求，只有 **Terminate**（终止）有效。

         如果您未指定值，则默认值为 **Terminate**（终止），这对持久性竞价型实例请求无效。如果您保持默认设置并尝试启动持久性竞价型实例请求，则会收到错误消息。

         有关更多信息，请参阅 [竞价型实例中断行为](interruption-behavior.md)。

1. 在存储库的 **Summary**（摘要）面板，对于 **Number of instances**（实例数量），输入要启动的实例数量。
**注意**  
Amazon EC2 为每个竞价型实例创建一个单独的请求。

1. 在 **Summary**（摘要）面板，查看实例的详细信息并进行必要的更改。在提交竞价型实例请求后，您无法更改该请求的参数。您可以在 **Summary**（摘要）面板选择启动实例向导中某部分的链接以直接导航到该部分。有关更多信息，请参阅 [摘要](ec2-instance-launch-parameters.md#liw-summary)。

1. 当您准备好启动您的实例时，请选择 **Launch instance**（启动实例）。

   如果实例无法启动或状态立即转至 `terminated` 而非 `running`，请参阅 [排查 Amazon EC2 实例启动问题](troubleshooting-launch.md)。

------
#### [ AWS CLI ]

**使用 run-instances 创建竞价型实例请求**  
按如下所示，使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令并在 `--instance-market-options` 参数中指定竞价型实例选项。

```
--instance-market-options file://spot-options.json
```

以下是要在 JSON 文件中指定的数据结构。您还可以指定 `ValidUntil` 和 `InstanceInterruptionBehavior`。如果未在数据结构中指定字段，则将使用默认值。

以下示例将创建一个 `persistent` 请求。

```
{
  "MarketType": "spot",
  "SpotOptions": {
    "SpotInstanceType": "persistent"
  }
}
```

**使用 request-spot-instances 创建竞价型实例请求**

**注意**  
我们强烈反对使用 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令来请求竞价型实例，因为它是不具有计划投资的旧式 API。有关更多信息，请参阅 [使用哪种竞价型请求方法最好？](spot-best-practices.md#which-spot-request-method-to-use)

使用 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令可创建一次性请求。

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "one-time" \
    --launch-specification file://specification.json
```

使用 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令可创建持久性请求。

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "persistent" \
    --launch-specification file://specification.json
```

有关要用于这些命令的启动规范文件的示例，请参阅[竞价型实例请求示例启动规范](spot-request-examples.md)。如果您从竞价型请求控制台下载启动规范文件，必须改为使用 [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) 命令（竞价型请求控制台使用竞价型实例集指定竞价型实例请求）。

------
#### [ PowerShell ]

**创建竞价型实例请求**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 并使用 `-InstanceMarketOption` 参数指定竞价型实例选项。

```
-InstanceMarketOptions $marketOptions
```

按如下所示创建竞价型实例选项的数据结构。

```
$spotOptions = New-Object Amazon.EC2.Model.SpotMarketOptions
$spotOptions.SpotInstanceType="persistent"
$marketOptions = New-Object Amazon.EC2.Model.InstanceMarketOptionsRequest
$marketOptions.MarketType = "spot"
$marketOptions.SpotOptions = $spotOptions
```

------

# 竞价型实例请求示例启动规范
<a name="spot-request-examples"></a>

以下示例显示了可与 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令结合使用来创建 Spot 实例请求的启动配置。有关更多信息，请参阅 [管理您的竞价型实例](using-spot-instances-request.md)。

**重要**  
我们强烈反对使用 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令来请求竞价型实例，因为它是不具有计划投资的旧式 API。有关更多信息，请参阅 [使用哪种竞价型请求方法最好？](spot-best-practices.md#which-spot-request-method-to-use)

**Topics**
+ [示例 1：启动竞价型实例](#spot-launch-specification1)
+ [示例 2：在指定的可用区中启动竞价型实例](#spot-launch-specification2)
+ [示例 3：在指定的子网中启动竞价型实例](#spot-launch-specification3)
+ [示例 4：启动专用竞价型实例](#spot-launch-specification4)

## 示例 1：启动竞价型实例
<a name="spot-launch-specification1"></a>

以下示例不包含可用区或子网。Amazon EC2 会为您选择可用区。Amazon EC2 会在所选可用区的默认子网中启动实例。

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## 示例 2：在指定的可用区中启动竞价型实例
<a name="spot-launch-specification2"></a>

以下示例包括一个可用区。Amazon EC2 会在指定可用区的默认子网中启动实例。

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "Placement": {
    "AvailabilityZone": "us-west-2a"
  },
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## 示例 3：在指定的子网中启动竞价型实例
<a name="spot-launch-specification3"></a>

以下示例包括子网。Amazon EC2 会在指定子网中启动实例。如果 VPC 是一个非默认 VPC，则默认情况下，该实例不会收到公有 IPv4 地址。

```
{
  "ImageId": "ami-0abcdef1234567890",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "SubnetId": "subnet-1a2b3c4d",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

要将公有 IPv4 地址分配给非默认 VPC 中的实例，请指定 `AssociatePublicIpAddress` 字段，如以下示例所示。指定网络接口时，您必须包含使用网络接口 (而不是使用之前的代码块中所示的 `SubnetId` 和 `SecurityGroupIds` 字段) 的子网 ID 和安全组 ID。

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "InstanceType": "m5.medium",
  "NetworkInterfaces": [
    {
      "DeviceIndex": 0,
      "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
      "Groups": [ "sg-1a2b3c4d5e6f7g8h9" ],
      "AssociatePublicIpAddress": true
    }
  ],
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## 示例 4：启动专用竞价型实例
<a name="spot-launch-specification4"></a>

以下示例请求租期为 `dedicated` 的竞价型实例。专用竞价型实例必须在 VPC 中启动。

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "c5.8xlarge",
  "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
  "Placement": {
    "Tenancy": "dedicated"
  }
}
```

# 获取竞价型实例请求的状态
<a name="spot-request-status"></a>

要帮助跟踪您的竞价型实例请求和规划您对竞价型实例的使用，请使用 Amazon EC2 提供的请求状态。例如，请求状态可以提供尚未完成 Spot 请求的原因，或者列出妨碍完成 Spot 请求的限制。

在此过程（也称为 Spot 请求*生命周期*）中的每一步，都有特定事件确定连续的请求状态。

以下演示了竞价型实例请求的运行方式。请注意，请求类型（一次性或持久性）确定在 Amazon EC2 中断竞价型实例时或者在您停止竞价型实例时是否重新打开请求。如果请求是持久性请求，则在中断竞价型实例之后将重新打开请求。如果请求是持久性的，并且您停止了竞价型实例，则请求仅在您启动竞价型实例后打开。

![\[竞价型实例请求的工作原理。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/spot_lifecycle.png)


**Topics**
+ [获取请求状态信息](#get-spot-instance-request-status)
+ [Spot 请求状态代码](#spot-instance-request-status-understand)
+ [EC2 竞价型实例请求履行事件](#spot-request-fulfillment-event)
+ [Spot 请求的状态更改](spot-instances-request-status-lifecycle.md)

## 获取请求状态信息
<a name="get-spot-instance-request-status"></a>

您可以获取竞价型实例的状态信息。

------
#### [ Console ]

**获取请求状态信息**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests (Spot 请求)**，然后选择所需的 Spot 请求。

1. 要检查状态，请在 **Description (描述)** 选项卡上检查 **Status (状态)** 字段。

------
#### [ AWS CLI ]

**获取请求状态信息**  
使用以下 [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) 命令。

```
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

------
#### [ PowerShell ]

**获取请求状态信息**  
使用 [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) cmdlet。

```
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

## Spot 请求状态代码
<a name="spot-instance-request-status-understand"></a>

Spot 请求状态信息包含状态代码、更新时间以及状态消息。这些信息帮助您确定如何处理 Spot 请求。

下面是 Spot 请求状态代码：

`az-group-constraint`  
Amazon EC2 无法在同一可用区中启动您请求的所有实例。

`bad-parameters`  
您的 Spot 请求的一个或多个参数无效 (例如，您指定的 AMI 不存在)。状态消息指示哪个参数无效。

`canceled-before-fulfillment`  
在完成前，用户取消了竞价请求。

`capacity-not-available`  
您请求的实例没有足够的容量可用。

`constraint-not-fulfillable`  
由于一个或多个限制无效 (例如，可用区不存在)，Spot 请求无法完成。状态消息指示哪个限制无效。

`fulfilled`  
Spot 请求处于 `active` 状态，Amazon EC2 正在启动您的 Spot 实例。

`instance-stopped-by-price`  
您的实例已停止，因为 Spot 价格超出了您的最高价格。

`instance-stopped-by-user`  
由于用户停止了实例或从实例运行了 shutdown 命令，您的实例已停止。

`instance-stopped-no-capacity`  
由于 EC2 容量管理需要，您的实例已停止。

`instance-terminated-by-price`  
您的实例已终止，因为 Spot 价格超出了您的最高价格。如果您的请求是持久性的，该过程将重新开始，因此，您的请求将等待进行评估。

`instance-terminated-by-schedule`  
您的竞价型实例在其计划持续时间结束时终止。

`instance-terminated-by-service`  
您的实例从停止状态终止。

`instance-terminated-by-user` 或者 `spot-instance-terminated-by-user`\$1\$1  
您终止了已完成的竞价型实例，因此，请求状态为（`closed`除非这是持久性请求），实例状态为 `terminated`。

`instance-terminated-launch-group-constraint`  
您的启动组中的一个或多个实例已终止，因此不再满足启动组的限制。

`instance-terminated-no-capacity`  
由于标准容量管理流程，您的实例已终止。

`launch-group-constraint`  
Amazon EC2 无法同时启动您请求的所有实例。启动组内的所有实例都一起启动和终止。

`limit-exceeded`  
超过了 EBS 卷数量或总卷存储的限制。有关更多信息，请参阅《Amazon EBS User Guide》**中的 [Quotas for Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html)。

`marked-for-stop`  
竞价型实例被标记为停止。

`marked-for-termination`  
竞价型实例被标记为终止。

`not-scheduled-yet`  
您的 Spot 请求在指定日期之前不会被评估。

`pending-evaluation`  
当您提交竞价型实例请求之后，该请求会进入 `pending-evaluation` 状态，同时系统会评估您的请求中的参数。

`pending-fulfillment`  
Amazon EC2 正尝试预置竞价型实例。

`placement-group-constraint`  
因为竞价型实例目前不能添加到置放群组中，因此尚无法完成 Spot 请求。

`price-too-low`  
由于您的最高价低于 Spot 价格，无法完成请求。在这种情况下，不会启动任何实例，并且您的请求保持 `open` 状态。

`request-canceled-and-instance-running`  
在竞价型实例仍在运行时，您取消了 Spot 请求。请求为 `cancelled`，但是，实例保持为 `running`。

`schedule-expired`  
由于没有在指定日期前完成，Spot 请求已过期。

`system-error`  
出现意外系统错误。如果这是反复出现的问题，请联系 AWS 支持 以获取帮助。

## EC2 竞价型实例请求履行事件
<a name="spot-request-fulfillment-event"></a>

当竞价型实例请求履行后，Amazon EC2 会向 Amazon EventBridge 发送一个 EC2 竞价型实例请求履行事件。您可以创建一条规则，以在此事件发生时执行操作，例如调用某个 Lambda 函数或通知某个 Amazon SNS 主题。

以下是此事件的示例数据。

```
{
    "version": "0",
    "id": "01234567-1234-0123-1234-012345678901",
    "detail-type": "EC2 Spot Instance Request Fulfillment",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
        "instance-id": "i-1234567890abcdef0"
    }
}
```

有关更多信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

# Spot 请求的状态更改
<a name="spot-instances-request-status-lifecycle"></a>

以下图表显示您的 Spot 请求在其整个生命周期 (从提交到终止) 所遵循的路径。每个步骤用节点表示，每个节点状态代码描述您的 Spot 请求和竞价型实例的状态。

![\[竞价型实例请求的生命周期。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/spot-request-status-diagram.png)


**待评估**  
当您创建竞价型实例请求之后，除非一个或多个请求参数无效（`bad-parameters`），否则该请求就会进入 `pending-evaluation` 状态。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
| pending-evaluation | open | 不适用 | 
| bad-parameters | closed | 不适用 | 

**暂停**  
如果一个或多个请求限制有效但目前无法满足，或者如果没有足够的容量，那么请求将进入暂挂状态，等待满足限制。请求选项影响请求完成的可能性。例如，如果没有容量可用，您的请求将会保持暂挂状态，直到有容量可用为止。如果您指定了可用区组，则该请求将保持为暂挂状态，直至满足可用区的限制。

如果其中一个可用区中断，则可能会影响其他可用区中可用于竞价型实例请求的备用 EC2 容量。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
| capacity-not-available | open |  不适用  | 
| price-too-low | open |  不适用  | 
| not-scheduled-yet | open |  不适用  | 
| launch-group-constraint | open |  不适用  | 
| az-group-constraint | open |  不适用  | 
|  placement-group-constraint  |  open  |  不适用  | 
|  constraint-not-fulfillable  |  open  |  不适用  | 

**等待评估/最终执行**  
如果您创建的请求仅在特定时段内有效，但该时段在您的请求到达等待执行阶段之前过期，则您的竞价型实例请求可能会进入 `terminal` 状态。如果您取消请求，或者出现系统错误，请求也可能会进入该状态。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
|  schedule-expired  |  cancelled  |  不适用  | 
|  canceled-before-fulfillment¹  |  cancelled  |  不适用  | 
|  bad-parameters  |  failed  |  不适用  | 
|  system-error  |  closed  |  不适用  | 

¹ 如果您取消请求。

**等待履行**  
如果满足指定的限制（如有），您的 Spot 请求将会进入 `pending-fulfillment` 状态。

此时，Amazon EC2 已经准备好为您预置您请求的实例。如果该过程在此时停止，则可能是因为用户在启动竞价型实例之前取消了请求。也可能是因为出现了意外的系统错误。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
|  pending-fulfillment  |  open  |  不适用  | 

**已完成**  
当您的竞价型实例的所有规范都得到满足时，您的竞价型实例就会执行。Amazon EC2 会启动竞价型实例，这可能需要几分钟的时间。如果竞价型实例在中断时休眠或停止，它将保持该状态，直到可以再次完成该请求或取消该请求。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
|  fulfilled  |  active  |  pending → running  | 
|  fulfilled  |  active  |  stopped → running  | 

如果您停止竞价型实例，则 Spot 请求将进入 `marked-for-stop` 或 `instance-stopped-by-user` 状态，直到竞价型实例可以重新启动或者取消了请求。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
|  marked-for-stop  | active |  stopping  | 
|  instance-stopped-by-user¹  |  disabled 或 cancelled ²  |  stopped  | 

¹ 如果您停止实例或从实例运行 shutdown 命令，则竞价型实例将进入 `instance-stopped-by-user` 状态。停止实例后，您可以重新启动它。重新启动时，竞价型实例请求将返回 `pending-evaluation` 状态，然后 Amazon EC2 在满足约束时启动一个新的竞价型实例。

² 如果您停止竞价型实例但不取消请求，则 Spot 请求状态为 `disabled`。如果您的竞价型实例已停止并且请求已过期，则请求状态为 `cancelled`。

**执行的最终**  
只要实例类型具有可用的容量，并且您未终止竞价型实例，这些实例就会继续运行。如果 Amazon EC2 必须终止竞价型实例，竞价型请求将会进入终止状态。如果取消 Spot 请求或终止竞价型实例，请求也将进入终止状态。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
|  request-canceled-and-instance-running  |  cancelled  |  running  | 
|  marked-for-stop  |  active  |  running  | 
|  marked-for-termination  |  active  |  running  | 
|  instance-stopped-by-price  |  disabled  |  stopped  | 
|  instance-stopped-by-user  |  disabled  |  stopped  | 
|  instance-stopped-no-capacity  |  disabled  |  stopped  | 
|  instance-terminated-by-price  |  closed（一次性），open（持久性）  |  terminated  | 
|  instance-terminated-by-schedule  |  closed  |  terminated  | 
|  instance-terminated-by-service  |  cancelled  |  terminated  | 
|  instance-terminated-by-user  |  closed 或 cancelled ¹  |  terminated  | 
|  instance-terminated-no-capacity  |  closed（一次性），open（持久性）  |  running †  | 
|  instance-terminated-no-capacity  |  closed（一次性），open（持久性）  |  terminated  | 
|  instance-terminated-launch-group-constraint  |  closed（一次性），open（持久性）  |  terminated  | 

¹ 如果您终止实例但未取消请求，则请求状态为 `closed`。如果您终止实例并取消请求，则请求状态为 `cancelled`。即使您在取消实例请求之前终止了竞价型实例，Amazon EC2 检测您的竞价型实例已终止的过程可能会有延迟。在这种情况下，请求状态可能是 `closed` 或 `cancelled`。

† Amazon EC2 中断竞价型实例时（如果其需要恢复容量*且*该实例配置为在中断时*终止*），状态将立即设置为 `instance-terminated-no-capacity`（如果未设置为 `marked-for-termination`）。但是，实例会保持 2 分钟 `running` 状态，以反映实例收到竞价型实例中断通知的 2 分钟时间段。2 分钟后，实例状态设置为 `terminated`。

**中断实验**  
您可以使用 AWS Fault Injection Service 启动竞价型实例中断，从而测试竞价型实例上的应用程序如何响应中断。如果 AWS FIS 停止竞价型实例，则竞价型实例请求会先进入 `marked-for-stop-by-experiment` 状态，然后进入 `instance-stopped-by-experiment` 状态。如果 AWS FIS 终止竞价型实例，则竞价型实例请求会进入 `instance-terminated-by-experiment` 状态。有关更多信息，请参阅 [启动竞价型实例中断](initiate-a-spot-instance-interruption.md)。


| 状态代码 | 请求状态 | 实例状态 | 
| --- | --- | --- | 
| marked-for-stop-by-experiment | active | running | 
| instance-stopped-by-experiment | disabled | stopped | 
| instance-terminated-by-experiment | closed | terminated | 

**持久性请求：**  
当您的竞价型实例终止（由您或由 Amazon EC2）时，如果 Spot 请求为持久性请求，则该请求返回 `pending-evaluation` 状态，并且在满足约束时，Amazon EC2 可以启动新的竞价型实例。

# 标记竞价型实例请求
<a name="concepts-spot-instances-request-tags"></a>

要对您的竞价型实例请求进行分类和管理，您可使用自定义元数据标记它们。您可以在创建竞价型实例请求时或之后为其分配标签。您可以使用 Amazon EC2 控制台或命令行工具分配标签。

在标记竞价型实例请求时，不会自动标记由竞价型实例请求启动的实例和卷。您需要明确标记由竞价型实例请求启动的实例和卷。您可以在启动期间或之后为竞价型实例和卷分配标签。

有关标签的工作原理的更多信息，请参阅[标记 Amazon EC2 资源](Using_Tags.md)。

**Topics**
+ [前提条件](#tag-spot-request-prereqs)
+ [标记新的竞价型实例请求](#tag-new-spot-instance-request)
+ [标记现有竞价型实例请求](#tag-existing-spot-instance-request)
+ [查看竞价型实例请求标记](#view-spot-instance-request-tags)

## 前提条件
<a name="tag-spot-request-prereqs"></a>

授予用户标记资源的权限。有关 IAM policies 和示例策略的更多信息，请参阅[示例：标记资源](ExamplePolicies_EC2.md#iam-example-taggingresources)。

您创建的 IAM policy 由您用于创建竞价型实例请求的方法决定。
+ 如果您使用启动实例向导或 `run-instances` 请求 Spot 实例，请参阅[To grant a user the permission to tag resources when using the launch instance wizard or run-instances](#iam-run-instances)。
+ 如果您使用 `request-spot-instances` 命令请求竞价型实例，请参阅 [To grant a user the permission to tag resources when using request-spot-instances](#iam-request-spot-instances)。

**在使用启动实例向导或 run-instances 时向用户授予资源标记权限**  
创建包含以下内容的 IAM policy：
+ `ec2:RunInstances` 操作。这将授予用户授予启动实例的权限。
+ 对于 `Resource`，请指定 `spot-instances-request`。这允许用户创建竞价型实例请求，以请求竞价型实例。
+ `ec2:CreateTags` 操作。这将授予用户创建标签的权限。
+ 对于 `Resource`，请指定 `*`。这将允许用户标记在实例启动期间创建的所有资源。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowLaunchInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagSpotInstanceRequests",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

使用 RunInstances 操作创建竞价型实例请求，并在创建时标记竞价型实例请求时，您需要了解 Amazon EC2 如何评估 RunInstances 语句（在 IAM 策略中评估）中的 `spot-instances-request` 资源，如下所示：
+ 如果您在创建时未标记竞价型实例请求，则 Amazon EC2 不会在 RunInstances 语句中评估 `spot-instances-request` 资源。
+ 如果您在创建时标记竞价型实例请求，则 Amazon EC2 会在 RunInstances 语句中评估 `spot-instances-request` 资源。

因此，对于 `spot-instances-request` 资源，以下规则适用于 IAM 策略：
+ 如果您使用 RunInstances 创建竞价型实例请求，并且您不打算在创建时标记竞价型实例请求，则无需明确允许 `spot-instances-request` 资源；调用将成功。
+ 如果您使用 RunInstances 创建竞价型实例请求并打算在创建时标记竞价型实例请求，则必须在 RunInstances 允许语句中包含 `spot-instances-request` 资源，否则调用将失败。
+ 如果您使用 RunInstances 创建竞价型实例请求并打算在创建时标记竞价型实例请求，则必须在 CreateTags 允许语句中指定 `spot-instances-request` 资源或包括 `*` 通配符，否则调用将失败。

有关示例 IAM policy（包括竞价型实例请求不支持的策略），请参阅 [使用竞价型实例](ExamplePolicies_EC2.md#iam-example-spot-instances)。

**在使用 request-spot-instances 时向用户授予资源标记权限**  
创建包含以下内容的 IAM policy：
+ `ec2:RequestSpotInstances` 操作。这将授予用户创建竞价型实例请求的权限。
+ `ec2:CreateTags` 操作。这将授予用户创建标签的权限。
+ 对于 `Resource`，请指定 `spot-instances-request`。这将允许用户仅标记竞价型实例请求。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagSpotInstanceRequest",
            "Effect": "Allow",
            "Action": [
                "ec2:RequestSpotInstances",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-instances-request/*"
        }
    ]
}
```

------

## 标记新的竞价型实例请求
<a name="tag-new-spot-instance-request"></a>

在 AWS CLI 和 PowerShell 示例中，按如下方式配置竞价型实例请求：
+ 对于 `ResourceType`，请指定 `spot-instances-request`。如果指定其他值，则竞价型实例请求将失败。
+ 对于 `Tags`，请指定键值对。您可以指定多个键值对。

------
#### [ Console ]

**标记新竞价型实例请求**

1. 按照[管理您的竞价型实例](using-spot-instances-request.md)过程操作。

1. 要添加标签，请在**添加标签**页上，选择**添加标签**，然后输入标签的键和值。为每个附加标签选择**添加其他标签**。

   对于每个标签，您可以使用相同标签来标记竞价型实例请求、竞价型实例和卷。要标记所有这三个项，请确保已选定 **Instances (实例)**、**Volumes (卷)**和 **Spot Instance Requests (Spot 实例请求)**。要仅标记其中的一个或两个项，请确保已选定要标记的资源，并清除其他资源。

1. 填写必填字段以创建 Spot 实例请求，然后选择 **Launch (启动)**。有关更多信息，请参阅 [管理您的竞价型实例](using-spot-instances-request.md)。

------
#### [ AWS CLI ]

**标记新竞价型实例请求**  
使用 [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) 命令和 `--tag-specification` 选项。

标签规范向竞价型实例请求添加两个标签：`Environment=Production` 和 `Cost-Center=123`。

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "one-time" \
    --launch-specification file://specification.json \
    --tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment,Value=Production},{Key=Cost-Center,Value=123}]'
```

------
#### [ PowerShell ]

**标记新竞价型实例请求**  
使用 [Request-EC2SpotInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotInstance.html) cmdlet 和 `-TagSpecification` 参数。

```
-TagSpecification $tagspec
```

标签规范定义如下。它向竞价型实例请求添加两个标签：`Environment=Production` 和 `Cost-Center=123`。

```
$tag1 = @{Key="Environment"; Value="Production"}
$tag2 = @{Key="Cost-Center"; Value="123"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "spot-instances-request"
$tagspec.Tags = @($tag1,$tag2)
```

------

## 标记现有竞价型实例请求
<a name="tag-existing-spot-instance-request"></a>

------
#### [ Console ]

**标记现有竞价型实例请求**

创建竞价型实例请求后，您可以使用控制台向竞价型实例请求添加标签。

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择您的竞价型实例请求。

1. 选择 **Tags (标签)** 选项卡，然后选择 **Create Tag (创建标签)**。

**使用控制台标记现有的竞价型实例**  
在竞价型实例请求启动竞价型实例后，您可以使用控制台向实例添加标签。有关更多信息，请参阅 [使用控制台添加标签](Using_Tags_Console.md#adding-or-deleting-tags)。

------
#### [ AWS CLI ]

**标记现有的竞价型实例请求或竞价型实例**  
使用 [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 命令标记现有的资源。在以下示例中，使用 `purpose=test` 标记现有竞价型实例请求和竞价型实例。

```
aws ec2 create-tags \
    --resources sir-0e54a519c9EXAMPLE i-1234567890abcdef0 \
    --tags Key=purpose,Value=test
```

------
#### [ PowerShell ]

**标记现有的竞价型实例请求或竞价型实例**  
使用 [New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html) cmdlet。以下示例将标签 `purpose=test` 添加到现有竞价型实例请求和竞价型实例。

```
New-EC2Tag `
    -Resource sir-0e54a519c9EXAMPLE, i-1234567890abcdef0 `
    -Tag @{Key="purpose"; Value="test"}
```

------

## 查看竞价型实例请求标记
<a name="view-spot-instance-request-tags"></a>

------
#### [ Console ]

**查看竞价型实例请求标签**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择您的 Spot 实例请求并选择 **Tags (标签)** 选项卡。

------
#### [ AWS CLI ]

**描述竞价型实例请求标记**  
使用 [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) 命令可查看指定的 Spot 实例请求的配置，其中包括为请求指定的任何标签。

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].Tags"
```

下面是示例输出。

```
[
    [
        {
            "Key": "Environment",
            "Value": "Production"
        },
        {
            "Key": "Department",
            "Value": "101"
        }
    ]
]
```

------
#### [ PowerShell ]

**描述竞价型实例请求标记**  
使用 [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) cmdlet。

```
(Get-EC2SpotInstanceRequest `
    -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).Tags
```

下面是示例输出。

```
Key         Value
---         -----
Environment Production
Department  101
```

------

# 取消竞价型实例请求
<a name="using-spot-instances-cancel"></a>

如果您不再需要竞价型实例请求，您可以将其取消。您只能取消 `open`、`active` 或 `disabled` 的竞价型实例请求。
+ 当您的请求未执行，且实例没有启动时，您的竞价型实例请求处于 `open` 状态。
+ 当您的请求完成且竞价型实例因此已启动时，您的竞价型实例请求处于 `active` 状态。
+ 当您停止竞价型实例时，您的竞价型实例请求处于 `disabled` 状态。

如果您的竞价型实例请求处于 `active` 状态，且关联的竞价型实例正在运行，那么取消请求不会终止该实例。有关终止竞价型实例的更多信息，请参阅 [终止竞价型实例](using-spot-instances-request.md#terminating-a-spot-instance)。

------
#### [ Console ]

**取消竞价型实例请求**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择竞价型实例请求。

1. 依次选择**操作**和**取消请求**。

1. (可选) 如果不再使用关联的竞价型实例，可以将其终止。在**取消竞价请求**对话框中，选择**终止实例**，然后选择**确认**。

------
#### [ AWS CLI ]

**取消竞价型实例请求**  
使用以下 [cancel-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-instance-requests.html) 命令。

```
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

------
#### [ PowerShell ]

**取消竞价型实例请求**  
使用 [Stop-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotInstanceRequest.html) cmdlet。

```
Stop-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

# 管理您的竞价型实例
<a name="using-spot-instances-request"></a>

当有容量可用时，Amazon EC2 会启动竞价型实例。竞价型实例将一直运行，直到该实例中断，或者您自行终止该实例。

**Topics**
+ [查找竞价型实例](#using-spot-instances-running)
+ [查找由特定请求启动的实例](#find-request-spot-instances)
+ [停止竞价型实例](#stopping-a-spot-instance)
+ [启动竞价型实例](#starting-a-spot-instance)
+ [终止竞价型实例](#terminating-a-spot-instance)

## 查找竞价型实例
<a name="using-spot-instances-running"></a>

竞价型实例与按需型实例一起显示在控制台的**实例**页面中。使用以下过程查找竞价型实例。

------
#### [ Console ]

**查找竞价型实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 要查找所有竞价型实例，请在搜索窗格中选择**实例生命周期 = 竞价型**。

1. 要验证实例是否为竞价型实例，请选择该实例，选择**详细信息**选项卡，然后查看**生命周期**的值。竞价型实例的值为 `spot`，按需型实例的值为 `normal`。

------
#### [ AWS CLI ]

**查找竞价型实例**  
使用以下 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。

```
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
```

**确定实例是否为竞价型实例**  
使用以下 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[*].InstanceLifecycle" \
    --output text
```

如果值为 `spot`，则表示实例是竞价型实例。如果没有输出，则表示实例是按需型实例。

------
#### [ PowerShell ]

**查找竞价型实例**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
Get-EC2Instance -Filter @{Name="instance-lifecycle"; Values="spot"}
```

**确定实例是否为竞价型实例**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.InstanceLifecycle
```

如果值为 `Spot`，则表示实例是竞价型实例。如果没有输出，则表示实例是按需型实例。

------

## 查找由特定请求启动的实例
<a name="find-request-spot-instances"></a>

使用以下过程查找通过特定竞价型实例或竞价型实例集请求启动的竞价型实例。

------
#### [ Console ]

**查找请求的竞价型实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。列表包含了竞价型实例请求和竞价型实例集请求。

1. 如果竞价型实例请求已执行，那么**容量**就是竞价型实例的 ID。对于 Spot 实例集，**Capacity (容量)** 表示已执行的请求容量。要查看 Spot 实例集中的实例的 ID，请选择扩展箭头，或者选择队列，然后选择 **Instances (实例)**。

1. 对于竞价型实例集，**容量**表示已执行的请求容量。要查看竞价型实例集中的实例 ID，请选择实例集 ID 打开其详细信息页面，然后找到**实例**窗格。

------
#### [ AWS CLI ]

**查找请求的竞价型实例**  
使用以下 [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) 命令。

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].{ID:InstanceId}"
```

下面是示例输出：

```
[
    {
        "ID": "i-1234567890abcdef0"
    },
    {
        "ID": "i-0598c7d356eba48d7"
    }
]
```

------
#### [ PowerShell ]

**查找请求的竞价型实例**  
使用 [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html) cmdlet。

```
(Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).InstanceId
```

------

## 停止竞价型实例
<a name="stopping-a-spot-instance"></a>

如果现在不需要您的竞价型实例，但希望能够在以后将其重启且不丢失在 Amazon EBS 卷中持久保留的数据，则可以将其停止。停止竞价型实例的步骤与停止按需型实例的步骤类似。

**注意**  
在停止竞价型实例后，您可以修改其部分实例属性，但不能修改实例类型。  
我们不会对已停止的竞价型实例收费，也不会收取数据传输费，但我们会对所有 Amazon EBS 卷的存储收费。

**限制**
+ 只有当竞价型实例是从 `persistent` 竞价型实例请求启动时，您才能停止竞价型实例。
+ 如果关联的竞价型实例请求被取消，则无法停止竞价型实例。当竞价型实例请求被取消后，您只能终止竞价型实例。
+ 如果竞价型实例是某个队列或启动组或可用区组的一部分，则无法停止它。

------
#### [ Console ]

**停止竞价型实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择竞价型实例。如果您没有保存竞价型实例的实例 ID，请参阅[查找竞价型实例](#using-spot-instances-running)。

1. 依次选择**实例状态**、**停止实例**。

1. 当系统提示您确认时，选择 **Stop**。

------
#### [ AWS CLI ]

**停止竞价型实例**  
使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令手动停止竞价型实例。

```
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**停止竞价型实例**  
使用 [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet。

```
Stop-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## 启动竞价型实例
<a name="starting-a-spot-instance"></a>

您可以启动以前停止的竞价型实例。

**先决条件**

您只能在以下情况下启动竞价型实例：
+ 您手动停止了竞价型实例。
+ 竞价型实例是 EBS 支持的实例。
+ 竞价型实例容量可用。
+ Spot 价格低于您的最高价格。

**限制**
+ 如果竞价型实例是某个队列或启动组或可用区组的一部分，则无法启动它。

启动竞价型实例的步骤与启动按需型实例的步骤类似。

------
#### [ Console ]

**启动竞价型实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择竞价型实例。如果您没有保存竞价型实例的实例 ID，请参阅[查找竞价型实例](#using-spot-instances-running)。

1. 依次选择**实例状态**、**启动实例**。

------
#### [ AWS CLI ]

**启动竞价型实例**  
使用 [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) 命令手动启动竞价型实例\$1。

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**启动竞价型实例**  
使用 [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) cmdlet。

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## 终止竞价型实例
<a name="terminating-a-spot-instance"></a>

**警告**  
**终止实例是永久且不可逆转的。**  
终止一个实例后，您将无法再连接到该实例，而且也无法对其进行恢复操作。被配置为在终止后删除的所有连接的 Amazon EBS 卷也将被永久删除并且无法恢复。实例存储卷中存储的所有数据将永久丢失。有关更多信息，请参阅 [实例终止的工作原理](how-ec2-instance-termination-works.md)。  
在终止实例之前，请务必确保已将需要在终止后保留的所有数据备份到持久存储中。

如果您终止的运行中或已停止竞价型实例是由持久性竞价型实例请求启动的，则竞价型实例请求会转换为 `open` 状态，这样就可以启动新的竞价型实例。要确保没有启动新的竞价型实例，您必须首先取消该竞价型实例请求。

如果您取消含有正在运行的竞价型实例的 `active` 竞价型实例请求，则正在运行的竞价型实例不会自动终止；您必须手动终止该竞价型实例。

如果您取消含有已停止的竞价型实例的 `disabled` 竞价型实例请求，则 Amazon EC2 Spot 服务将自动终止已停止的竞价型实例。取消竞价型实例请求与 Spot 服务终止竞价型实例之间可能存在短暂的滞后。

有关更多信息，请参阅 [取消竞价型实例请求](using-spot-instances-cancel.md)。

------
#### [ Console ]

**手动终止竞价型实例**

1. 在终止实例前，请确认您是否会丢失任何数据，方法是确认您的 Amazon EBS 卷是否会在终止时被删除，以及您是否已将所需数据从实例存储卷复制到持久性存储，例如 Amazon EBS 或 Amazon S3。

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择竞价型实例。如果您没有保存竞价型实例的实例 ID，请参阅[查找竞价型实例](#using-spot-instances-running)。

1. 依次选择**实例状态**、**终止（删除）实例**。

1. 当系统提示您确认时，选择**终止（删除）**。

------
#### [ AWS CLI ]

**手动终止竞价型实例**  
使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令可手动终止竞价型实例。

```
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7
```

------
#### [ PowerShell ]

**手动终止竞价型实例**  
使用 [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) cmdlet。

```
Remove-EC2Instance -InstanceId i-1234567890abcdef0
```

------

# 竞价型实例中断
<a name="spot-interruptions"></a>

您可以在空闲的 EC2 容量上启动竞价型实例，以便在 Amazon EC2 需要收回这些容量时，就返还实例获得大幅折扣。我们将 Amazon EC2 回收 Spot 实例的情况称为 *Spot 实例中断*。

对竞价型实例的需求可能因时间不同而有显著的差异，竞价型实例 的可用性也会因为有多少未使用 EC2 实例可用而差别巨大。竞价型实例可能会中断。下面列出了 Amazon EC2 中断您的竞价型实例的可能原因：

**容量**  
Amazon EC2 可以在需要收回时中断 Spot 实例。EC2 回收您的实例主要是为了重新调整容量用途，但也可能出于其他原因，如主机维护或硬件停用。

**价格**  
Spot 价格高于您的最高价格。  
您可以在竞价型请求中指定最高价格。但如果您指定了某个最高价，则实例被中断的频率将比您未指定时更高。

**约束**  
如果您的竞价型请求包含约束（如启动组或可用区组），则当不再满足约束时，这些竞价型实例将成组终止。

当 Amazon EC2 中断竞价型实例时，它会终止、停止或休眠实例，具体取决于您在创建 Spot 请求时指定的中断行为。

**Topics**
+ [中断行为](interruption-behavior.md)
+ [准备中断](prepare-for-interruptions.md)
+ [启动中断](initiate-a-spot-instance-interruption.md)
+ [竞价型实例中断通知](spot-instance-termination-notices.md)
+ [查找中断的竞价型实例](finding-an-interrupted-Spot-Instance.md)
+ [确定 Amazon EC2 是否终止了竞价型实例](BidEvictedEvent.md)
+ [计费](billing-for-interrupted-spot-instances.md)

# 竞价型实例中断行为
<a name="interruption-behavior"></a>

您可以在创建 Spot 请求时指定中断行为。以下是可能的中断行为：
+ [停止](#stop-spot-instances)
+ [Hibernate](#hibernate-spot-instances)
+ [终止](#terminate-interrupted-spot-instances)

默认行为是 Amazon EC2 在竞价型实例中断时终止这些实例。

## 停止中断的竞价型实例
<a name="stop-spot-instances"></a>

您可以指定 Amazon EC2 在竞价型实例中断时将其停止。竞价型实例请求类型必须为 `persistent`。您不能在竞价型实例请求中指定启动组。对于 EC2 实例集或竞价型实例集，请求类型必须为 `maintain`。

**注意事项**
+ 只有 Amazon EC2 才能重新启动已停止的竞价型实例。
+ 对于由 `persistent` 竞价型实例请求启动的竞价型实例：Amazon EC2 会在容量在同一可用区中可用且适用于已停止的实例的同一实例类型（必须使用相同的启动规范）时重新启动已停止的实例。
+ 在停止竞价型实例后，您可以修改其部分实例属性，但不能修改实例类型。如果您分离或删除一个 EBS 卷，则在启动竞价型实例时不会附加该卷。如果您分离根卷并且 Amazon EC2 尝试启动竞价型实例，则该实例将无法启动，Amazon EC2 将终止已停止的实例。
+ 当竞价型实例停止时，您可以将其终止。
+ 如果取消竞价型实例请求、EC2 机群或竞价型实例集，Amazon EC2 将终止任何停止的关联竞价型实例。
+ 在中断的竞价型实例停止后，您只需为保留的 EBS 卷付费。对于 EC2 实例集和 Spot 实例集，如果具有很多停止的实例，则可能会超出您的账户的 EBS 卷数限制。有关竞价型实例中断时如何收费的更多信息，请参阅 [中断的竞价型实例的计费](billing-for-interrupted-spot-instances.md)。
+ 确保您熟知停止实例的影响。有关实例停止可能会发生情况的更多信息，请参阅 [实例状态之间的区别](ec2-instance-lifecycle.md#lifecycle-differences)。

## 休眠中断的竞价型实例
<a name="hibernate-spot-instances"></a>

您可以指定 Amazon EC2 在竞价型实例中断时将其休眠。有关更多信息，请参阅 [将您的 Amazon EC2 实例休眠](Hibernate.md)。

Amazon EC2 现在为竞价型实例提供了与当前按需型实例相同的休眠体验。它提供了更广泛的支持，竞价型实例休眠现在支持：
+ [更多支持的 AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)
+ [更多支持的实例系列](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)
+ [用户启动的休眠](hibernating-instances.md)

## 终止中断的竞价型实例
<a name="terminate-interrupted-spot-instances"></a>

当 Amazon EC2 中断竞价型实例时，默认情况下会终止该实例，除非您指定了其他中断行为，例如停止或休眠。有关更多信息，请参阅 [终止 Amazon EC2 实例](terminating-instances.md)。

# 为测试竞价型实例中断做好准备
<a name="prepare-for-interruptions"></a>

对竞价型实例的需求可能因时间不同而有显著的差异，竞价型实例 的可用性也会因为有多少未使用 EC2 实例可用而差别巨大。竞价型实例可能会中断。因此，必须确保应用程序针对竞价型实例中断做好准备。

我们建议您遵循以下最佳实践，以便您为竞价型实例中断做好准备。
+ 使用 Auto Scaling 组创建竞价型请求。如果您的竞价型实例被中断，Auto Scaling 组将自动启动替换实例。有关更多信息，请参阅《Amazon EC2 Auto Scaling 用户指南》**中的[具有多个实例类型和购买选项的自动扩缩组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html)。
+ 使用包含所需软件配置的亚马逊机器映像（AMI），确保您的实例在请求完成时随时可以启动。您还可以使用用户数据在启动时运行命令。
+ 停止或终止实例后，实例存储卷上的数据将丢失。将实例存储卷上的所有重要数据备份到持久性存储，例如 Amazon S3、Amazon EBS 或 Amazon DynamoDB。
+ 在不会受竞价型实例终止影响的位置例行存储重要数据。例如，您可以使用 Amazon S3、Amazon EBS 或 DynamoDB。
+ 将工作拆分为小的任务 (使用网格、Hadoop 或基于队列的架构) 或者使用检查点，以便您经常保存工作。
+ 当实例处于较高的中断风险时，Amazon EC2 会向竞价型实例发出再平衡建议信号。您可以依靠再平衡建议来主动管理竞价型实例中断，而无需等待两分钟的竞价型实例中断通知。有关更多信息，请参阅[EC2 实例再平衡建议](rebalance-recommendations.md)。
+ 使用两分钟的竞价型实例中断通知监控您的竞价型实例的状态。有关更多信息，请参阅[竞价型实例中断通知](spot-instance-termination-notices.md)。
+ 虽然我们尽一切努力尽快提供这些警告，但您的竞价型实例可能会在我们提供此警告之前被中断。测试您的应用程序，确保它很好地处理了意外的实例终止，即使您正在监控再平衡建议信号和中断通知。您可以使用按需型实例来运行应用程序，然后自行终止该按需型实例，以便确认这一点。
+ 使用 AWS Fault Injection Service 运行受控的故障注入实验，以测试在竞价型实例中断时应用程序如何响应。有关更多信息，请参阅 *AWS Fault Injection Service 用户指南*中的[教程，使用 AWS FIS 测试竞价型实例中断](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html)。

# 启动竞价型实例中断
<a name="initiate-a-spot-instance-interruption"></a>

您可以在 Amazon EC2 控制台中选择一个竞价型实例请求或竞价型实例集请求并启动竞价型实例中断，从而测试竞价型实例上的应用程序将如何处理中断。当您启动竞价型实例中断时，Amazon EC2 会向您发送通知，提示您的竞价型实例将在两分钟后中断，然后将在两分钟后中断该实例。

执行竞价型实例中断的底层服务是 AWS Fault Injection Service（AWS FIS）。有关 AWS FIS 的信息，请参阅 [AWS Fault Injection Service](https://aws.amazon.com/fis/)。

**注意**  
中断行为包括 `terminate`、`stop` 和 `hibernate`。如果您将中断行为设置为 `hibernate`，则当您启动竞价型实例中断时，将会立即开始休眠过程。

除亚太地区（雅加达）、亚太地区（大阪）、中国（北京）、中国（宁夏）和中东地区（阿联酋）外，所有 AWS 区域均支持启动竞价型实例中断。

**Topics**
+ [启动竞价型实例中断](#initiate-interruption)
+ [验证竞价型实例中断](#spot-interruptions-verify-result)
+ [配额](#fis-quota-for-spot-instance-interruption)

## 启动竞价型实例中断
<a name="initiate-interruption"></a>

您可以使用 EC2 控制台快速启动竞价型实例中断。选择竞价型实例请求时，您可以启动一个竞价型实例的中断。选择竞价型实例集请求时，您可以同时启动多个竞价型实例的中断。

要进行更高级的实验来测试竞价型实例中断情况，您可以使用 AWS FIS 控制台创建自己的实验。

**使用 EC2 控制台启动竞价型实例请求中一个竞价型实例的中断**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**（竞价型实例请求）。

1. 选择一个竞价型实例请求，然后依次选择 **Actions**（操作）、**Initiate interruption**（启动中断）。不能选择多个竞价型实例请求来启动中断。

1. 在 **Initiate Spot Instance interruption**（启动竞价型实例中断）对话框的 **Service access**（服务访问权限）下，您可以使用默认角色，也可以选择一个现有的角色。要选择现有角色，请选择**使用现有的服务角色**，然后对于 **IAM 角色**，选择要使用的角色。

1. 准备好启动竞价型实例中断后，选择 **Initiate interruption**（启动中断）。

**使用 EC2 控制台启动竞价型实例集请求中的一个或多个竞价型实例的中断**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**（竞价型实例请求）。

1. 选择一个竞价型实例集请求，然后依次选择**操作**、**启动中断**。您不能选择多个竞价型实例集请求来启动中断。

1. 在**指定竞价型实例数量**对话框中，对于**要中断的实例数**，输入要中断的竞价型实例数量，然后选择**确认**。
**注意**  
该数量不能超过实例集中竞价型实例的数量或每个实验 AWS FIS 可以中断的竞价型实例数量的[配额](#fis-quota-for-spot-instance-interruption)。

1. 在 **Initiate Spot Instance interruption**（启动竞价型实例中断）对话框的 **Service access**（服务访问权限）下，您可以使用默认角色，也可以选择一个现有的角色。要选择现有角色，请选择**使用现有的服务角色**，然后对于 **IAM 角色**，选择要使用的角色。

1. 准备好启动竞价型实例中断后，选择 **Initiate interruption**（启动中断）。

**使用 AWS FIS 控制台创建更高级的实验来测试竞价型实例中断**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**（竞价型实例请求）。

1. 依次选择 **Actions**（操作）、**Create advanced experiments**（创建高级实验）。

   AWS FIS 控制台将打开。有关更多信息，请参阅《AWS Fault Injection Service User Guide》**中的 [Tutorial: Test Spot Instance interruptions using AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html)。

## 验证竞价型实例中断
<a name="spot-interruptions-verify-result"></a>

启动中断后，将会发生以下情况：
+ 竞价型实例收到一个 [实例再平衡建议](rebalance-recommendations.md)。
+ 在 AWS FIS 中断实例之前两分钟发出[竞价型实例中断通知](spot-instance-termination-notices.md)。
+ 两分钟后，竞价型实例将会中断。
+ 已被 AWS FIS 停止的竞价型实例将在您将其重新启动之前一直处于停止状态。

**验证实例在您启动中断后是否已中断**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 从导航窗格中，在单独的浏览器选项卡或窗口中打开 **Spot Requests**（竞价型实例请求）和 **Instances**（实例）。

1. 对于**竞价型请求**，请选择竞价型实例请求或竞价型实例集请求。初始状态为 `fulfilled`。实例中断后，状态会根据中断行为出现以下变化：
   + `terminate` – 状态变为 `instance-terminated-by-experiment`。
   + `stop` – 实例的状态首先变为 `marked-for-stop-by-experiment`，然后变为 `instance-stopped-by-experiment`。

1. 对于 **Instances**（实例），选择该竞价型实例。初始状态为 `Running`。在收到竞价型实例中断通知后两分钟，状态会根据中断行为出现以下变化：
   + `stop` – 实例的状态首先变为 `Stopping`，然后变为 `Stopped`。
   + `terminate` – 实例的状态首先变为 `Shutting-down`，然后变为 `Terminated`。

## 配额
<a name="fis-quota-for-spot-instance-interruption"></a>

对于每个实验 AWS FIS 可以中断的竞价型实例数量，您的 AWS 账户 具有如下默认配额。


| 名称 | 默认值 | 可调整 | 说明 | 
| --- | --- | --- | --- | 
|  aws:ec2:send-spot-instance-interruptions 的目标竞价型实例  |  每个受支持的区域：5 个  | 是 |  在每个实验中，当您使用标签标识目标时 aws:ec2:send-spot-instance-interruptions 可以确定为目标的最大竞价型实例数量。  | 

您可以请求提高配额。有关更多信息，请参阅《服务配额用户指南》**中的 [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

要查看 AWS FIS 的所有限额，请打开[服务限额控制台](https://console.aws.amazon.com/servicequotas/home)。在导航窗格中，选择 **AWS services**（ 服务），然后选择 **AWS Fault Injection Service**。您还可以在*AWS Fault Injection Service用户指南AWS Fault Injection Service*中查看的所有[配额](https://docs.aws.amazon.com/fis/latest/userguide/fis-quotas.html)。

# 竞价型实例中断通知
<a name="spot-instance-termination-notices"></a>

*竞价型实例中断通知*是在 Amazon EC2 停止或终止竞价型实例之前的两分钟发出的警告。如果您将休眠指定为中断行为，则会收到中断通知，但由于休眠过程立即开始，因此您不会提前两分钟收到警告。

正常处理竞价型实例中断的最佳方法是，设计应用程序以提供容错能力。为此，您可以利用竞价型实例中断通知。我们建议您每 5 秒检查一次这些中断通知。

中断通知将以 EventBridge 事件以及竞价型实例上的[实例元数据](ec2-instance-metadata.md)项的形式提供。将尽最大努力发出中断通知。

## EC2 Spot Instance Interruption Warning 事件
<a name="ec2-spot-instance-interruption-warning-event"></a>

当 Amazon EC2 将要中断竞价型实例时，它在实际中断之前的两分钟发出一个事件（休眠除外，此时会收到中断通知，但不会提前两分钟，因为休眠是立即开始的）。Amazon EventBridge 可以检测该事件。有关 EventBridge 事件的更多信息，请参阅《Amazon EventBridge 用户指南》[https://docs.aws.amazon.com/eventbridge/latest/userguide/](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。有关指导您如何创建和使用事件规则的详细示例，请参阅[利用 Amazon EC2 Spot 实例中断通知](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/)。

以下是竞价型实例中断事件的示例。`instance-action` 的可能值为 `hibernate`、`stop` 或 `terminate`。

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Spot Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0",
        "instance-action": "action"
    }
}
```

**注意**  
竞价型实例中断事件的 ARN 格式为 `arn:aws:ec2:availability-zone:instance/instance-id`。此格式不同于 [EC2 资源的 ARN 格式](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies)。

## instance-action
<a name="instance-action-metadata"></a>

`instance-action` 项目指定操作及其大致执行时间 (采用 UTC 格式)。

如果竞价型实例标记为由 Amazon EC2 停止或终止，将在您的[实例元数据](ec2-instance-metadata.md)中包含 `instance-action` 项。如果没有，则不显示。可以使用实例元数据服务版本 2（IMDSv2）检索 `instance-action`，如下所示。

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action
```

------

 以下示例输出指示将停止此实例的时间。

```
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
```

以下示例输出指示将终止此实例的时间。

```
{"action": "terminate", "time": "2017-09-18T08:22:00Z"}
```

如果 Amazon EC2 没有准备停止或终止该实例，或者如果您自己终止了该实例，则实例元数据中不存在 `instance-action`，并且在尝试检索它时出现 HTTP 404 错误。

## termination-time
<a name="termination-time-metadata"></a>

`termination-time` 项目指定实例将收到关闭信号的大致时间（用 UTC 表示）。

**注意**  
为向后兼容而保留此项目；您应改为使用 `instance-action`。

如果您的竞价型实例被 Amazon EC2 标记为终止（由于中断行为设置为 `terminate` 的竞价型实例中断，或由于永久竞价型实例请求取消），则 `termination-time` 项目将出现在您的[实例元数据](ec2-instance-metadata.md)中。如果没有，则不显示。可以使用 IMDSv2 检索 `termination-time`，如下所示。

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time
```

------

下面是示例输出。

```
2015-01-05T18:02:00Z
```

如果 Amazon EC2 未准备终止实例（因为没有竞价型实例中断，或因为您的中断行为设置为 `stop` 或 `hibernate`），或者如果您自己终止了竞价型实例，则 `termination-time` 项目或者不存在于实例元数据中（这样您会收到 HTTP 404 错误），或者包含并非时间值的值。

如果 Amazon EC2 无法终止实例，请求状态将设置为 `fulfilled`。`termination-time` 值会将实例元数据保持原始大致时间（现已成为过去时间）。

# 查找中断的竞价型实例
<a name="finding-an-interrupted-Spot-Instance"></a>

在描述您的 EC2 实例时，结果将包括您的竞价型实例。竞价型实例的实例生命周期为 `spot`。竞价型实例的实例状态为 `stopped` 或 `terminated`，具体取决于您配置的中断行为。对于休眠的竞价型实例，实例状态为 `stopped`。

有关中断原因的更多详细信息，请查看 Spot 请求状态代码。有关更多信息，请参阅 [获取竞价型实例请求的状态](spot-request-status.md)。

------
#### [ Console ]

**查找已中断的竞价型实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 应用以下筛选条件：**实例生命周期 = 竞价型**。

1. 应用**实例状态 = 已停止**或**实例状态 = 已终止**筛选条件，具体取决于您配置的中断行为。

1. 对于每个竞价型实例，在**详细信息**选项卡的**实例详细信息**下，找到**状态转换消息**。以下代码表明竞价型实例已中断。
   + `Server.SpotInstanceShutdown`
   + `Server.SpotInstanceTermination`

------
#### [ AWS CLI ]

**查找中断的竞价型实例**  
将 `--filters` 选项与 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令结合使用。要仅在输出中列出实例 ID，请包括 `--query` 选项。

如果中断行为是终止竞价型实例，请使用以下示例：

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=terminated \
              Name=state-reason-code,Values=Server.SpotInstanceTermination \
    --query "Reservations[*].Instances[*].InstanceId"
```

如果中断行为是停止竞价型实例，请使用以下示例：

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=stopped \
              Name=state-reason-code,Values=Server.SpotInstanceShutdown \
    --query "Reservations[*].Instances[*].InstanceId"
```

------
#### [ PowerShell ]

**查找中断的竞价型实例**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

如果中断行为是终止竞价型实例，请使用以下示例：

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="terminated"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

如果中断行为是停止竞价型实例，请使用以下示例：

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="stopped"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

------

# 确定 Amazon EC2 是否终止了竞价型实例
<a name="BidEvictedEvent"></a>

竞价型实例将一直运行，直到 Amazon EC2 因竞价型实例中断而将其终止，或者直到您自行终止该竞价型实例。有关更多信息，请参阅 [竞价型实例中断行为](interruption-behavior.md)。

竞价型实例终止后，您可以使用 AWS CloudTrail 查看 Amazon EC2 是否终止了该实例。如果 CloudTrail 日志包含 `BidEvictedEvent`，则表示 Amazon EC2 终止了竞价型实例。相反，如果您看到一个 `TerminateInstances` 事件，则表示用户终止了竞价型实例。

或者，如果您想收到 Amazon EC2 将中断您的竞价型实例的通知，请使用 Amazon EventBridge 来响应 [EC2 竞价型实例中断警告事件](spot-instance-termination-notices.md#ec2-spot-instance-interruption-warning-event)。

**在 CloudTrail 中查看 BidEvictedEvent 事件**

1. 访问 [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/)，打开 CloudTrail 控制台。

1. 在导航窗格中，选择**事件历史记录**。

1. 从筛选器列表中，选择**事件名称**，然后在右侧的筛选字段中，输入 **BidEvictedEvent**。

1. （可选）选择一个时间范围。

1. 如果列表不为空，请从生成的条目中选择 **BidEvictedEvent** 以打开其详细信息页面。您可以在**事件记录**窗格中找到有关竞价型实例的信息，包括竞价型实例的 ID。以下是事件记录的示例。

   ```
   {
       "eventVersion": "1.05",
       "userIdentity": {
           "accountId": "123456789012",
           "invokedBy": "ec2.amazonaws.com"
       },
       "eventTime": "2016-08-16T22:30:00Z",
       "eventSource": "ec2.amazonaws.com",
       "userAgent": "ec2.amazonaws.com",
       "sourceIPAddress": "ec2.amazonaws.com",
       "eventName": "BidEvictedEvent",
       "awsRegion": "us-east-2",
       "eventID": "d27a6096-807b-4bd0-8c20-a33a83375054",
       "eventType": "AwsServiceEvent",
       "recipientAccountId": "123456789012",
       "RequestParameters": null,
       "ResponseElements": null,
       "serviceEventDetails": {
           "instanceIdSet": [
             "i-1eb2ac8eEXAMPLE"
           ]
       }
   }
   ```

1. 如果您没有找到 `BidEvictedEvent` 事件的条目，请输入 **TerminateInstances** 作为事件名称。有关 `TerminateInstances` 事件记录的更多信息，请参阅[Amazon EC2 API 事件示例](monitor-with-cloudtrail.md#cloudtrail-event-examples)。

# 中断的竞价型实例的计费
<a name="billing-for-interrupted-spot-instances"></a>

当竞价型实例被中断时，将向您收取实例和 EBS 卷使用的费用，并且可能产生其他费用，如下所示。

## 实例使用情况
<a name="billing-for-interrupted-spot-instances-instance-usage"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/billing-for-interrupted-spot-instances.html)

## EBS 卷使用情况
<a name="billing-for-interrupted-spot-instances-ebs-usage"></a>

在中断的竞价型实例停止后，您只需为保留的 EBS 卷付费。

对于 EC2 实例集和 Spot 实例集，如果具有很多停止的实例，则可能会超出您的账户的 EBS 卷数限制。

# EC2 实例再平衡建议
<a name="rebalance-recommendations"></a>

EC2 实例*再平衡建议*是一个信号，可在竞价型实例处于较高的中断风险时通知您。信号可能比该[两分钟的 Spot 实例中断通知](spot-instance-termination-notices.md)更早到达，从而让您有机会主动管理 Spot 实例。您可以决定将工作负载再平衡到不处于较高中断风险的新的或现有的竞价型实例。

Amazon EC2 并不总能在两分钟的竞价型实例中断通知之前发送再平衡建议信号。因此，再平衡建议信号可能会随两分钟的中断通知一起到达。

再平衡建议是作为 EventBridge 事件以及竞价型实例上的[实例元数据](ec2-instance-metadata.md)中的项目提供的。尽最大努力发出事件。

**注意**  
再平衡建议仅支持 2020 年 11 月 5 日 00:00 UTC 之后推出的竞价型实例。

**Topics**
+ [您可以采取的再平衡操作](#rebalancing-actions)
+ [监控再平衡建议信号](#monitor-rebalance-recommendations)
+ [使用再平衡建议信号的服务](#services-using-rebalance-rec-signal)

## 您可以采取的再平衡操作
<a name="rebalancing-actions"></a>

以下是您可以采取的一些可能的再平衡操作：

正常关闭  
当您收到竞价型实例的再平衡建议信号时，您可以启动实例关闭过程，其中可能包括确保在停止进程之前完成它们。例如，您可以将系统或应用程序日志上传到 Amazon Simple Storage Service (Amazon S3)、关闭 Amazon SQS 工作程序或从域名系统 (DNS) 中完成注销。您还可以将工作保存在外部存储器中，稍后再恢复工作。

防止计划新工作  
当您收到竞价型实例的再平衡建议信号时，您可以阻止在实例上计划新工作，同时继续使用实例直到计划的工作完成。

主动启动新的替换实例  
您可以配置 Auto Scaling 组、EC2 实例集或竞价型实例集，以在系统发出再平衡建议信号时自动启动替换竞价型实例集。有关更多信息，请参阅《Amazon EC2 Auto Scaling User Guide》**中的 [Use Capacity Rebalancing to handle Amazon EC2 Spot interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html)，以及本用户指南中的[在 EC2 实例集和竞价型实例集中使用“容量再平衡”功能来替换存在风险的竞价型实例](ec2-fleet-capacity-rebalance.md)。

## 监控再平衡建议信号
<a name="monitor-rebalance-recommendations"></a>

您可以监控再平衡建议信号，以便在发出该信号时，可以执行上一节中指定的操作。再平衡建议信号作为发送到 Amazon EventBridge（以前称为 Amazon CloudWatch Events）的事件和竞价型实例上的实例元数据提供。

**Topics**
+ [使用 Amazon EventBridge](#cp-eventbridge)
+ [使用实例元数据](#cp-instance-metadata)

### 使用 Amazon EventBridge
<a name="cp-eventbridge"></a>

当发出竞价型实例的再平衡建议信号时，该信号的事件将被发送到 Amazon EventBridge。如果 EventBridge 检测到与规则中定义的模式匹配的事件模式，则 EventBridge 调用规则中指定的一个或多个目标。

以下是再平衡建议信号的示例事件。

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Instance Rebalance Recommendation",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0"
    }
}
```

下列字段构成规则中定义的事件模式：

`"detail-type": "EC2 Instance Rebalance Recommendation"`  
确定该事件是再平衡建议事件

`"source": "aws.ec2"`  
识别来自 Amazon EC2 的事件

#### 创建 EventBridge 规则
<a name="cp-eventbridge-rule"></a>

当事件模式与规则匹配时，您可以编写 EventBridge 规则并自动执行要采取的操作。

下面的示例可创建 EventBridge 规则，以便在 Amazon EC2 每次发出再平衡建议信号时发送电子邮件、短信或移动推送通知。信号作为 `EC2 Instance Rebalance Recommendation` 事件发出，这将触发规则定义的操作。

创建 EventBridge 规则之前，您必须为电子邮件、短信或移动推送通知创建 Amazon SNS 主题。

**要为再平衡建议事件创建 EventBridge 规则**

1. 打开位于 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 的 Amazon EventBridge 控制台。

1. 选择 **Create rule**（创建规则）。

1. 对于**定义规则详细信息**，请执行以下操作：

   1. 输入规则的 **Name (名称)** 和“Description (描述)”（可选）。

      规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。

   1. 对于 **Event bus**（事件总线），选择 **default**（默认）。当您账户中的某个 AWS 服务生成一个事件时，它始终会发送到您账户的默认事件总线。

   1. 对于 **Rule type**（规则类型），选择 **Rule with an event pattern**（具有事件模式的规则）。

   1. 选择**下一步**。

1. 对于 **Build event pattern**（构建事件模式），执行以下操作：

   1. 对于 **Event source**（事件源），选择 **AWS 事件或 EventBridge 合作伙伴事件**。

   1. 对于 **Event pattern**（事件模式），在此示例中，您将指定以下事件模式以匹配 `EC2 Instance Rebalance Recommendation` 事件，然后选择 **Save**（保存）。

      ```
      {
       "source": ["aws.ec2"],
       "detail-type": ["EC2 Instance Rebalance Recommendation"]
      }
      ```

      要添加事件模式，您可以通过选择 **Event pattern form**（事件模式表）使用模板，或者通过选择 **Custom pattern (JSON editor)**（自定义模式（JSON 编辑器））指定您自己的模式，如下所示：

      1. 要使用模板创建事件模式，请执行以下操作：

         1. 选择 **Event pattern form**（事件模式表）。

         1. 对于 **Event source**（事件源），选择 **AWS services**（服务）。

         1. 对于 **AWS 服务**，选择 **EC2 竞价型实例集**。

         1. 对于 **Event type**（事件类型），选择 **EC2 Instance Rebalance Recommendation**（EC2 实例再平衡建议）。

         1. 要自定义模板，请选择 **Edit pattern**（编辑模式），然后进行更改以匹配示例事件模式。

      1. （可选）要指定自定义事件模式，请执行以下操作：

         1. 选择 **Custom pattern (JSON editor)**（自定义模式（JSON 编辑器））。

         1. 在 **Event pattern**（事件模式）框中，为此示例添加事件模式。

   1. 选择**下一步**。

1. 对于 **Select target(s)**（选择目标），请执行以下操作：

   1. 对于 **Target types**（目标类型），选择 **AWS service**（服务）。

   1. 对于 **Select a target**（选择目标），选择 **SNS topic**（SNS 主题）以在事件发生时发送电子邮件、短信或移动推送通知。

   1. 对于 **Topic**（主题），选择现有主题。您首先需要使用 Amazon SNS 控制台创建 Amazon SNS 主题。有关更多信息，请参阅*Amazon Simple Notification Service 开发人员指南*中的[使用 Amazon SNS 进行应用程序对人 (A2P) 消息传送](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html)。

   1. （可选）在 **Additional settings**（其他设置）下，您可以选择配置其他设置。有关更多信息，请参阅《Amazon EventBridge User Guide》**中的 [Creating Amazon EventBridge rules that react to events](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)（步骤 16）。

   1. 选择**下一步**。

1. （可选）对于 **Tags**（标签），您可以选择向规则分配一个或多个标签，然后选择 **Next**（下一步）。

1. 对于 **Review and create**（查看与创建），执行以下操作：

   1. 查看规则的详细信息并根据需要对其进行修改。

   1. 选择 **Create rule**（创建规则）。

有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的 [Amazon EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)和 [Amazon EventBridge 事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

### 使用实例元数据
<a name="cp-instance-metadata"></a>

实例元数据类别 `events/recommendations/rebalance` 提供为 Spot 实例发出再平衡建议信号的大致时间 (UTC)。

我们建议您每 5 秒检查一次再平衡建议信号，这样您就不会错过对再平衡建议采取行动的机会。

如果竞价型实例收到再平衡建议，则信号发出的时间将显示在实例元数据中。您可以按如下方式检索信号发出的时间。

------
#### [ IMDSv2 ]

**Linux**  
在 Linux 实例上运行以下命令。

**IMDSv2**

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
在 Windows 实例上运行以下 cmdlet

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------
#### [ IMDSv1 ]

**Linux**  
在 Linux 实例上运行以下命令。

```
curl http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
在 Windows 实例上运行以下 cmdlet。

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------

以下是示例输出，表示为竞价型实例发出的再平衡建议信号时间 (UTC)。

```
{"noticeTime": "2020-10-27T08:22:00Z"}
```

如果尚未为实例发出信号，则 `events/recommendations/rebalance` 不存在，您将在尝试检索该信号时收到 HTTP 404 错误。

## 使用再平衡建议信号的服务
<a name="services-using-rebalance-rec-signal"></a>

Amazon EC2 Auto Scaling、EC2 实例集和竞价型实例集使用再平衡建议信号让您可以轻松地在运行中的实例收到两分钟的竞价型实例中断通知之前，主动使用新的竞价型实例扩展您的队列，从而帮助您维护工作负载的可用性。您可以让这些服务监控和主动响应影响您的竞价型实例可用性的更改。有关更多信息，请参阅下列内容：
+ 《Amazon EC2 Auto Scaling User Guide》中的 [Use Capacity Rebalancing to handle Amazon EC2 Spot interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html)**
+ 本用户指南中 EC2 实例集和竞价型实例集主题中的[在 EC2 实例集和竞价型实例集中使用“容量再平衡”功能来替换存在风险的竞价型实例](ec2-fleet-capacity-rebalance.md)

# 竞价放置分数
<a name="spot-placement-score"></a>

竞价放置分数功能可以根据您的竞价容量需求推荐一个AWS区域或可用区。竞价型容量会发生波动，所以您无法确保始终获得所需的容量。竞价放置分数表示竞价请求在某个区域或可用区中获得成功的可能性。

**注意**  
竞价放置分数不能提供在可用容量或中断风险方面的任何保证。竞价放置分数仅可作为建议使用。

**使用案例**

您可以使用竞价放置分数功能完成以下操作：
+ 根据需要将竞价型计算容量重新定位和扩展到不同区域，以应对当前区域内的容量需求增加或可用容量减少。
+ 确定在其中运行单个可用区工作负载的最佳可用区。
+ 模拟未来的竞价型容量需求，以便您可以选择一个最佳区域来扩展基于竞价的工作负载。
+ 确定实例类型的最佳组合以满足竞价容量需求。

**Topics**
+ [限制](#sps-limitations)
+ [成本](#sps-costs)
+ [竞价放置分数的工作原理](how-sps-works.md)
+ [Spot 置放分数所需的权限](sps-iam-permission.md)
+ [计算 Spot 置放分数](work-with-spot-placement-score.md)

## 限制
<a name="sps-limitations"></a>
+ **目标容量限制** – 您的竞价放置分数目标容量限制取决于您最近的竞价用量，并同时考虑潜在的使用量增长。如果您最近没有产生竞价用量，那么我们会为您提供一个较低的默认限制，这个默认限制与您的竞价请求限制一致。
+ **请求配置限制** – 如果我们检测到与竞价放置分数功能的预期用途无关的模式，则我们可以限制 24 小时内的新请求配置的数量。如果达到限制，则可以重试曾使用过的请求配置，但在下一个 24 小时期间之前，您无法指定新的请求配置。
+ **实例类型的最小数量** – 如果您指定实例类型，则必须指定至少三种不同的实例类型，否则 Amazon EC2 将返回较低的竞价放置分数。同样，如果您指定实例属性，则其必须解析为至少三种不同的实例类型。如果实例类型的名称不同，则被视为不同的实例类型。例如，m5.8xlarge、m5a.8xlarge 和 m5.12xlarge 都会被视作不同的实例类型。

## 成本
<a name="sps-costs"></a>

使用竞价放置分数功能不会收取任何额外费用。

# 竞价放置分数的工作原理
<a name="how-sps-works"></a>

在使用竞价放置分数功能时，您先指定竞价型实例的计算要求，然后 Amazon EC2 会返回竞价请求可能成功的前 10 个区域或可用区。每个区域或可用区的评分范围为 1 到 10，其中 10 表示竞价请求的成功性较高，1 则表示竞价请求的成功性较低。

**Topics**
+ [步骤 1：指定竞价需求](#sps-specify-requirements)
+ [步骤 2：筛选竞价放置分数响应](#get-sps)
+ [步骤 3：审查建议](#sps-recommendations)
+ [步骤 4：采纳建议](#sps-use-recommendations)

## 步骤 1：指定竞价需求
<a name="sps-specify-requirements"></a>

首先，请指定所需的目标竞价容量和计算要求，如下所示：

1. **指定目标竞价容量，也可以选择目标容量单位。**

   您可以根据实例数或 vCPU 数，或者根据以 MiB 为单位的内存量来指定所需的目标竞价容量。若根据 vCPU 数或内存量来指定目标容量，则必须将目标容量单位指定为 `vcpu` 或 `memory-mib`。否则即默认为实例数。

   若根据 vCPU 数或内存量指定目标容量，则您可以在计算总容量时使用这些单位。例如，若要混合使用不同大小的实例，则可以将目标容量指定为 vCPU 的总数。然后竞价放置分数功能会根据 vCPU 数来考虑请求中的每种实例类型，并计算 vCPU 总数，而不是在合计目标容量时计算实例总数。

   例如，假设您指定的总目标容量为 30 个 vCPU，并且您的实例类型列表中包括 c5.xlarge（4 个 vCPU）、m5.2xlarge（8 个 vCPU）和 r5.large（2 个 vCPU）。若要实现总计 30 个 vCPU，则您可以获得 2 个 c5.xlarge（2\$14 vCPU）、2 个 m5.2xlarge（2\$18 个 vCPU）和 3 个 r5.large（3\$12 个 vCPU）的组成。

1. **指定实例类型或实例属性。**

   您可以指定所用的实例类型，也可以指定计算要求所需的实例属性，然后由 Amazon EC2 来确定具有这些属性的实例类型。这称为基于属性的实例类型选择。

   您无法在同一竞价放置分数请求中同时指定实例类型和实例属性。

   如果您指定实例类型，则必须至少指定三种不同的实例类型，否则 Amazon EC2 将返回较低的竞价放置分数。同样，如果您指定实例属性，则其必须解析为至少三种不同的实例类型。

有关指定竞价需求的不同方法的示例，请参阅 [示例配置](work-with-spot-placement-score.md#sps-example-configs)。

## 步骤 2：筛选竞价放置分数响应
<a name="get-sps"></a>

Amazon EC2 计算每个区域或可用区的竞价放置分数，并返回您的竞价请求可能成功的前 10 个区域或前 10 个可用区。默认为返回已评分区域的列表。如果您计划在单个可用区中启动所有竞价容量，那么请求一个已评分的可用区列表会非常有帮助。

您可以指定一个区域筛选器，以缩小将在响应中返回的区域。

您可以将区域筛选条件和已计分的可用区域的请求结合使用。通过这种方式，已评分的可用区就会被限制为已筛选的区域之中。若要查找某个区域中得分最高的可用区，请仅指定该区域，则响应将返回该区域中所有可用区的评分列表。

## 步骤 3：审查建议
<a name="sps-recommendations"></a>

每个区域或可用区的竞价放置分数是根据目标容量、实例类型的组成、历史和当前竞价使用趋势以及请求的时间来计算的。由于竞价容量不断波动，因此在不同时间计算同一竞价放置分数请求时，可能会产生不同的分数。

区域和可用区的评分范围为 1 至 10。分数为 10 表示您的竞价请求具有较高的成功性（但不能保证）。分数为 1 则表示您的竞价请求几乎没有成功的可能。即使是不同的区域或可用区，也可能会返回相同的分数。

如果返回的分数较低，则您可以编辑计算要求并重新计算分数。您还可以在一天中的不同时间为同一个计算要求请求竞价放置分数建议。

## 步骤 4：采纳建议
<a name="sps-use-recommendations"></a>

只有在竞价请求具有与竞价放置分数配置（目标容量、目标容量单位和实例类型或实例属性）完全相同的配置时，竞价放置分数才是相关的，并且被配置为使用 `capacity-optimized` 分配策略。否则，获得可用竞价型容量的可能性将与分数不一致。

尽管竞价放置分数可作为指导，但无法保证完全或部分满足您的竞价请求，所以您可以使用以下信息来获得最佳结果：
+ **使用相同的配置** – 仅当 Auto Scaling 组、EC2 机群或竞价型实例集中的竞价请求配置（目标容量、目标容量单位、实例类型或实例属性）与您为了获取竞价放置分数而输入的配置相同时，竞价放置分数才是相关的。

  如果您在竞价放置分数请求中使用了基于属性的实例类型选择，就可以使用基于属性的实例类型选择来配置 Auto Scaling 组、EC2 机群或竞价型实例集。有关更多信息，请参阅 [使用基于属性的实例类型选择创建一个混合实例组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) 和 [指定 EC2 实例集或竞价型实例集的实例类型选择属性](ec2-fleet-attribute-based-instance-type-selection.md)。
**注意**  
如果您根据 vCPU 数或内存量指定了目标容量，并且在竞价放置分数配置中指定了实例类型，那么请注意，您当前无法在 Auto Scaling 组、EC2 机群或竞价型实例集中创建此配置。相反，您必须使用 `WeightedCapacity` 参数来手动设置实例权重。
+ **使用 `capacity-optimized` 分配策略** – 任何分数都假定您的实例集请求将被配置为使用所有可用区（用于跨区域请求容量）或单个可用区（若在一个可用区中请求容量）和用于成功请求竞价容量的 `capacity-optimized` 竞价型分配策略。如果您使用其它分配策略，例如 `lowest-price`，则获得竞价容量的可能性会与分数不一致。
+ **立即根据分数采取行动** – 竞价放置分数建议反映了请求时的可用竞价容量，由于竞价容量会发生波动，所以在不同时间计算相同的配置可能会得到不同的分数。尽管 10 分意味着竞价型容量请求具有较高的成功性，但不能保证成功，所以为了获得最佳效果，我们建议您立即根据分数采取行动。我们还建议您在每次尝试请求容量时都获取新的分数。

# Spot 置放分数所需的权限
<a name="sps-iam-permission"></a>

默认情况下，IAM 身份（用户、角色或组）不具备使用 [竞价放置分数](spot-placement-score.md)的权限。要允许 IAM 身份使用 Spot 置放分数，则您必须创建一个 IAM 策略，以授予其使用 `ec2:GetSpotPlacementScores` EC2 API 操作的权限。然后，将策略附加到需要此权限的 IAM 身份。

以下为授予使用 `ec2:GetSpotPlacementScores` EC2 API 操作权限的 IAM policy 的示例。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:GetSpotPlacementScores",
            "Resource": "*"
        }
    ]
}
```

------

有关编辑 IAM policy 的信息，请参阅 *IAM 用户指南*中的[编辑 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)。

要提供访问权限，请为您的用户、组或角色添加权限：
+ AWS IAM Identity Center 中的用户和群组：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

# 计算 Spot 置放分数
<a name="work-with-spot-placement-score"></a>

您可以根据目标容量和计算要求计算 Spot 置放分数。有关更多信息，请参阅 [竞价放置分数的工作原理](how-sps-works.md)。

**所需的权限**  
确保拥有所需的权限。有关更多信息，请参阅 [Spot 置放分数所需的权限](sps-iam-permission.md)。

**Topics**
+ [使用实例属性计算](#sps-specify-instance-attributes-console)
+ [使用实例类型计算](#sps-specify-instance-types-console)
+ [使用 AWS CLI 计算](#calculate-sps-cli)

**需要一种自动化的解决方案？** 无需按照本用户指南中的手动步骤操作，只需构建一个竞价置放分数跟踪器控制面板，自动捕获分数并将其存储在 Amazon CloudWatch 中即可。有关更多信息，请参阅[有关如何在 AWS 上构建竞价置放评分跟踪器控制面板的指南](https://aws.amazon.com/solutions/guidance/building-a-spot-placement-score-tracker-dashboard-on-aws/)。

## 使用实例属性计算
<a name="sps-specify-instance-attributes-console"></a>

**如需通过指定实例属性来计算竞价放置分数**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择**请求竞价型实例**旁边的向下箭头，然后选择**计算竞价放置分数**。

1. 选择 **Enter requirements**（输入要求）。

1. 对于 **Target capacity**（目标容量），请根据 **instances**（实例）或 **vCPUs** (vCPU) 的数量或者根据 **memory (MiB)**（内存 (MiB)）的数量来输入所需的容量。

1. 对于 **Instance type requirements**（实例类型要求），如需指定您的计算要求并使 Amazon EC2 识别符合这些要求的最佳实例类型，请选择 **Specify instance attributes that match your compute requirements**（指定符合计算要求的实例属性）。

1. 对于 **vCPU**，输入所需的最小和最大 vCPU 数。要指定没有限制，请选择 **No minimum**（没有最小值）和/或 **No maximum**（没有最大值）。

1. 对于 **Memory (GiB)**（内存 (GiB)），输入所需的最小和最大内存量。要指定没有限制，请选择 **No minimum**（没有最小值）和/或 **No maximum**（没有最大值）。

1. 对于 **CPU architecture**（CPU 架构），选择所需的实例架构。

1. （可选）对于 **Additional instance attributes**（其它实例属性），您可以选择指定一个或多个属性以更详细地表达计算要求。每个额外属性都会进一步增加对您的请求的限制。您可以省略其它属性；如果省略，则使用默认值。有关每个属性及其默认值的描述，请参阅 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)。

1. （可选）要查看具有指定属性的实例类型，请展开 **Preview matching instance types**（预览匹配的实例类型）。要排除在安置性评量中使用的实例类型，请选择实例，然后选择 **Exclude selected instance types**（排除选定的实例类型）。

1. 选择 **Load placement scores**（加载放置分数），并审查结果。

1. （可选）要显示特定区域的竞价放置分数，请对于 **Regions to evaluate**（要评估的区域），选择要评估的区域，然后选择 **Calculate placement scores**（计算放置分数）。

1. （可选）要在显示的区域中显示可用区的 Spot 置放分数，请选择**提供每个可用区的置放分数**复选框。如果您希望在单个可用区中启动所有竞价容量，那么一个已评分的可用区列表会非常有帮助。

1. （可选）如需编辑计算要求并获得新的放置分数，请选择 **Edit**（编辑）以进行必要的调整，然后选择 **Calculate placement scores**（计算放置分数）。

## 使用实例类型计算
<a name="sps-specify-instance-types-console"></a>

**如需通过指定实例类型来计算竞价放置分数**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，请选择 **Spot Requests**。

1. 选择**请求竞价型实例**旁边的向下箭头，然后选择**计算竞价放置分数**。

1. 选择 **Enter requirements**（输入要求）。

1. 对于 **Target capacity**（目标容量），请根据 **instances**（实例）或 **vCPUs** (vCPU) 的数量或者根据 **memory (MiB)**（内存 (MiB)）的数量来输入所需的容量。

1. 对于 **Instance type requirements**（实例类型要求），如需指定要使用的实例类型，请选择 **Manually select instance types**（手动选择实例类型）。

1. 选择 **Select instance types**（选择实例类型），选择要使用的实例类型，然后选择 **Select**（选择）。如需快速查找实例类型，您可以使用筛选条件来按不同属性筛选实例类型。

1. 选择 **Load placement scores**（加载放置分数），并审查结果。

1. （可选）要显示特定区域的竞价放置分数，请对于 **Regions to evaluate**（要评估的区域），选择要评估的区域，然后选择 **Calculate placement scores**（计算放置分数）。

1. （可选）要在显示的区域中显示可用区的 Spot 置放分数，请选择**提供每个可用区的置放分数**复选框。如果您希望在单个可用区中启动所有竞价容量，那么一个已评分的可用区列表会非常有帮助。

1. （可选）如需编辑实例类型列表并获得新的放置分数，请选择 **Edit**（编辑）以进行必要的调整，然后选择 **Calculate placement scores**（计算放置分数）。

## 使用 AWS CLI 计算
<a name="calculate-sps-cli"></a>

**如需计算竞价放置分数**

1. （可选）如需生成所有可以指定为竞价放置分数配置参数，请使用 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) 命令和 `--generate-cli-skeleton` 参数。

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --generate-cli-skeleton
   ```

   下面是示例输出。

   ```
   {
       "InstanceTypes": [
           ""
       ],
       "TargetCapacity": 0,
       "TargetCapacityUnitType": "vcpu",
       "SingleAvailabilityZone": true,
       "RegionNames": [
           ""
       ],
       "InstanceRequirementsWithMetadata": {
           "ArchitectureTypes": [
               "x86_64_mac"
           ],
           "VirtualizationTypes": [
               "hvm"
           ],
           "InstanceRequirements": {
               "VCpuCount": {
                   "Min": 0,
                   "Max": 0
               },
               "MemoryMiB": {
                   "Min": 0,
                   "Max": 0
               },
               "CpuManufacturers": [
                   "amd"
               ],
               "MemoryGiBPerVCpu": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "ExcludedInstanceTypes": [
                   ""
               ],
               "InstanceGenerations": [
                   "previous"
               ],
               "SpotMaxPricePercentageOverLowestPrice": 0,
               "OnDemandMaxPricePercentageOverLowestPrice": 0,
               "BareMetal": "excluded",
               "BurstablePerformance": "excluded",
               "RequireHibernateSupport": true,
               "NetworkInterfaceCount": {
                   "Min": 0,
                   "Max": 0
               },
               "LocalStorage": "included",
               "LocalStorageTypes": [
                   "hdd"
               ],
               "TotalLocalStorageGB": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "BaselineEbsBandwidthMbps": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorTypes": [
                   "fpga"
               ],
               "AcceleratorCount": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorManufacturers": [
                   "amd"
               ],
               "AcceleratorNames": [
                   "vu9p"
               ],
               "AcceleratorTotalMemoryMiB": {
                   "Min": 0,
                   "Max": 0
               }
           }
       },
       "DryRun": true,
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. 使用上一步的输出创建 JSON 配置文件，然后按如下方式进行配置：

   1. 对于 `TargetCapacity`（目标容量），请根据 instances（实例）或 vCPUs (vCPU) 的数量或者根据 memory (MiB)（内存 (MiB)）的数量来输入所需的容量。

   1. 对于 `TargetCapacityUnitType`，请输入目标容量的单位。如果省略此参数，则默认为 `units`。

      有效值：`units`（转换为实例数）\$1 `vcpu` \$1 `memory-mib`

   1. 对于 `SingleAvailabilityZone`（单个可用区），请指定 `true` 以获得返回已评分的可用区列表的响应。如果您希望在单个可用区中启动所有竞价容量，那么一个已评分的可用区列表会非常有帮助。如果省略此参数，则默认为 `false`，然后响应会返回一个已评分区域的列表。

   1. （可选）对于 `RegionNames`，请指定要用作筛选条件的区域。此处必须指定区域代码，例如 `us-east-1`。

      使用区域筛选条件后，响应将仅返回您指定的区域。若将 `SingleAvailabilityZone` 指定为 `true`，则响应仅返回指定区域中的可用区。

   1. 配置中可以包括 `InstanceTypes`（实例类型）或 `InstanceRequirements`（实例要求），但两者不可同时包含于同一配置中。

      在 JSON 配置中指定以下之一：
      + 如需指定实例类型列表，请指定 `InstanceTypes` 参数中的实例类型。指定至少三种不同的实例类型。若只指定了一种或两种实例类型，则竞价放置分数将返回一个较低的分数。有关实例类型的列表，请参阅 [Amazon EC2 实例类型](https://aws.amazon.com/ec2/instance-types/)。
      + 如需指定实例属性以便 Amazon EC2 识别与这些属性匹配的实例类型，请指定位于 `InstanceRequirements`（实例要求）结构中的属性。

        必须提供 `VCpuCount`、`MemoryMiB` 和 `CpuManufacturers` 的值。您可以省略其它属性；如果省略，则使用默认值。有关每个属性及其默认值的描述，请参阅 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)。

      有关示例配置，请参阅 [示例配置](#sps-example-configs)。

1. 若要获取您在 JSON 文件中指定的要求的竞价放置分数，请使用 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) 命令，然后使用 `--cli-input-json` 参数为 JSON 文件指定名称和路径。

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --cli-input-json file://file_name.json
   ```

   如果 `SingleAvailabilityZone` 被设置为 `false` 或省略（省略即默认为 `false`）时的输出示例：返回区域的评分列表。

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "Score": 7
       },
       {
           "Region": "us-west-1",
           "Score": 5
       },  
      ...
   ```

   如果 `SingleAvailabilityZone` 被设置为 `true` 时的输出示例：返回可用区的评分列表。

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "use1-az1",
           "Score": 8
       },
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "usw2-az3",
           "Score": 6
       },
      ...
   ```

### 示例配置
<a name="sps-example-configs"></a>

使用 AWS CLI，您可以使用以下示例配置。

**Topics**
+ [示例：指定实例类型和目标容量](#example-config-instance-type-override)
+ [示例：根据内存指定实例类型和目标容量](#example-config-instance-type-memory-unit-override)
+ [示例：为基于属性的实例类型选择指定属性](#example-config-attribute-based-instance-type-selection)
+ [示例：为基于属性的实例类型选择指定属性并返回可用区的评分列表](#example-config-sps-singleAZ)

#### 示例：指定实例类型和目标容量
<a name="example-config-instance-type-override"></a>

以下示例配置指定了三种不同的实例类型和 500 个竞价型实例的目标竞价容量。

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500
}
```

#### 示例：根据内存指定实例类型和目标容量
<a name="example-config-instance-type-memory-unit-override"></a>

以下示例配置指定了三种不同的实例类型和 500000MiB 内存的目标竞价容量，其中要启动的竞价型实例数必须能够提供总计 500000MiB 的内存。

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500000,
    "TargetCapacityUnitType": "memory-mib"
}
```

#### 示例：为基于属性的实例类型选择指定属性
<a name="example-config-attribute-based-instance-type-selection"></a>

以下示例配置是针对基于属性的实例类型选择而进行的配置，以及该示例配置的文本说明。

```
{
    "TargetCapacity": 5000,
    "TargetCapacityUnitType": "vcpu",
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

****`InstanceRequirementsWithMetadata`****  
要使用基于属性的实例类型选择，您必须在配置中包括 `InstanceRequirementsWithMetadata` 结构，并为竞价型实例指定所需的属性。

在上述示例中，指定了以下必要实例属性：
+ `ArchitectureTypes` – 实例类型的架构类型必须为 `arm64`。
+ `VirtualizationTypes` – 实例类型的虚拟化类型必须为 `hvm`。
+ `VCpuCount` – 实例类型的 vCPU 数量必须最少为 1 个，最多为 12 个。
+ `MemoryMiB` – 实例类型的最小内存必须为 512MiB。若省略 `Max` 参数，则表示没有最大限制。

请注意，您可以指定其它几个可选属性。有关属性列表，请参阅 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html)。

**`TargetCapacityUnitType`**  
`TargetCapacityUnitType` 参数为目标容量指定单位。在该示例中，目标容量是 `5000`，目标容量单位类型是 `vcpu`，它们共同指定了所需的 5000 个 vCPU 目标容量，其中要启动的竞价型实例数必须能够提供总计 5000 个 vCPU。

#### 示例：为基于属性的实例类型选择指定属性并返回可用区的评分列表
<a name="example-config-sps-singleAZ"></a>

以下示例配置是针对基于属性的实例类型选择而进行的配置。若指定 `"SingleAvailabilityZone": true`，则响应将返回已评分的可用区列表。

```
{
    "TargetCapacity": 1000,
    "TargetCapacityUnitType": "vcpu",
    "SingleAvailabilityZone": true,
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

# 使用竞价型实例数据源，跟踪您的竞价型实例费用
<a name="spot-data-feeds"></a>

为了帮助您了解竞价型实例的费用情况，Amazon EC2 通过提供的数据源说明竞价型实例使用情况和定价。此数据源会发送到您在订阅数据源时指定的 Amazon S3 存储桶。

数据源文件通常一小时到达存储桶一次。如果在特定小时中没有竞价型实例运行，则您不会收到该小时的数据源文件。

每小时竞价型实例的使用情况通常包含在一个数据文件中。这些文件在传送到您的存储桶前要进行压缩 (gzip)。当文件很大时（例如，当一小时的文件内容在压缩前超过 50 MB 时），Amazon EC2 可以将给定小时的使用情况写入多个文件。

**注意**  
您只能为每个 AWS 账户 创建一个竞价型实例数据源。

在所有 AWS 区域中，Spot 实例数据源均支持除中国 (北京)、中国 (宁夏)、AWS GovCloud (US) 和[预设情况下禁用的区域](using-regions-availability-zones.md#concepts-available-regions)。

**Topics**
+ [数据源文件名和格式](#using-spot-instances-format)
+ [Amazon S3 存储桶要求](#using-spot-instances-dfs3)
+ [订阅竞价型实例数据源](#using-spot-instances-datafeed-all)
+ [查看数据源中的数据](#using-spot-instances-datafeed-view-data)
+ [描述您的竞价型实例数据源](#using-spot-instances-datafeed-delete)

## 数据源文件名和格式
<a name="using-spot-instances-format"></a>

竞价型实例数据源的文件名采用以下格式 (用 UTC 日期和时间)：

```
bucket-name.s3.amazonaws.com/optional-prefix/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz
```

例如，如果您的存储桶名称为 **amzn-s3-demo-bucket** 并且前缀为 **my-prefix**，则您的文件名类似如下：

```
amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz
```

有关存储桶名称的更多信息，请参阅《Amazon S3 用户指南》**中的[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

竞价型实例数据源文件采用制表符分隔格式。数据文件的每一行都对应一小时实例使用时间，并且包含在下表中列出的字段。


|  字段  |  描述  | 
| --- | --- | 
|   `Timestamp`   |  时间戳，其用于确定针对此实例使用收取的费用。  | 
|   `UsageType`   |  指示使用类型和被收取费用的实例类型。对于 `m1.small` Spot 实例，此字段设置为 `SpotUsage`。对于所有其他实例类型，此字段设置为 `SpotUsage:`\$1*instance-type*\$1。例如：`SpotUsage:c1.medium`。  | 
|   `Operation`   |  指示被收取费用的产品。对于 Linux 竞价型实例，此字段设置为 `RunInstances`。对于 Windows 竞价型实例，此字段设置为 `RunInstances:0002`。Spot 使用情况按照可用区分组。  | 
|   `InstanceID`   |  生成此实例使用的竞价型实例的 ID。  | 
|   `MyBidID`   |  生成此实例使用的竞价型实例请求的 ID。  | 
|   `MyMaxPrice`   |  为此竞价型请求指定的最高价。  | 
|   `MarketPrice`   |  在 `Timestamp` 字段中指定的时刻的 Spot 价格。  | 
|   `Charge`   |  针对此实例使用收取的费用。  | 
|   `Version`   |  数据源版本。1.0为可行的版本。  | 

## Amazon S3 存储桶要求
<a name="using-spot-instances-dfs3"></a>

在您订阅数据源时，必须指定 Amazon S3 存储桶来存储数据源文件。

在为数据源选择 Amazon S3 存储桶之前，请考虑以下内容：
+ 必须拥有对存储桶的 `FULL_CONTROL` 权限。如果您是存储桶拥有者，根据默认情况，您有此权限。否则，存储桶拥有者必须向您的 AWS 账户 授予此权限。
+ 在您订阅数据源时，这些权限用于更新存储桶 ACL，以向 AWS 数据源账户提供 `FULL_CONTROL` 权限。AWS 数据源账户会将数据源文件写入存储桶。如果您的账户没有所需权限，则数据源文件无法写入存储桶。有关的更多信息，请参阅《Amazon CloudWatch Logs 用户指南》中的 [发送到 Amazon S3 的日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)**。

  如果您更新 ACL 并删除 AWS 数据源账户的权限，则数据源文件无法写入存储桶。您必须重新订阅数据源以接收数据源文件。
+ 每一个数据源文件都有其自己的 ACL (不同于存储桶的 ACL)。存储桶拥有者具有数据文件的 `FULL_CONTROL` 权限。AWS 数据源账户具有读取和写入权限。
+ 如果您删除您的数据源订阅，Amazon EC2 不会撤销AWS数据源账户在存储桶或数据文件上的读取和写入权限。您必须自行撤销这些权限。
+ 如果您使用 AWS Key Management Service（SSE-KMS）中存储的 AWS KMS 密钥通过服务器端加密来加密 Amazon S3 存储桶，您必须使用客户自主管理型密钥。有关更多信息，请参阅 *Amazon CloudWatch Logs 用户指南*中的 [Amazon S3 存储桶服务器端加密](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3)。

## 订阅竞价型实例数据源
<a name="using-spot-instances-datafeed-all"></a>

您可以随时订阅竞价型实例数据源。您无法使用 Amazon EC2 控制台完成此任务。

如果您收到存储桶权限不足的错误，请参阅以下文章以获取故障排除信息：[Troubleshoot the data feed for Spot Instances](https://repost.aws/knowledge-center/s3-data-feed-ec2-spot-instances)。

------
#### [ AWS CLI ]

**订阅数据源**  
使用 [create-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-spot-datafeed-subscription.html) 命令。

要指定带前缀的存储桶，请使用以下示例：

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket \
    --prefix my-prefix
```

要指定不带前缀的存储桶，请使用以下示例：

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket
```

------
#### [ PowerShell ]

**订阅数据源**  
使用 [New-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SpotDatafeedSubscription.html) cmdlet。

要指定带前缀的存储桶，请使用以下示例：

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket `
    -Prefix my-prefix
```

要指定不带前缀的存储桶，请使用以下示例：

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket
```

------

## 查看数据源中的数据
<a name="using-spot-instances-datafeed-view-data"></a>

在 AWS 管理控制台 中，打开 AWS CloudShell。使用以下 [s3 sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) 命令从 S3 存储桶中获取数据源的 .gz 文件，并将文件存储到指定的文件夹。

```
aws s3 sync s3://amzn-s3-demo-bucket ./data-feed
```

要显示 .gz 文件的内容，请切换到存储 S3 存储桶内容的文件夹。

```
cd data-feed
```

使用 **ls** 命令查看文件名称。使用带有文件名的 **zcat** 命令来显示压缩文件的内容。示例命令如下。

```
zcat  111122223333.2023-12-09-07.001.b959dbc6.gz
```

下面是示例输出。

```
#Version: 1.0
#Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version
2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium       RunInstances:SV050      i-0c3e0c0b046e050df     sir-pwq6nmfp    0.0510000000 USD        0.0142000000 USD        0.0142000000 USD        1
```

## 描述您的竞价型实例数据源
<a name="using-spot-instances-datafeed-delete"></a>

用完竞价型实例数据源后，可以将其删除。

------
#### [ AWS CLI ]

**删除数据源**  
使用 [delete-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-spot-datafeed-subscription.html) 命令。

```
aws ec2 delete-spot-datafeed-subscription
```

------
#### [ PowerShell ]

**删除数据源**  
使用 [Remove-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SpotDatafeedSubscription.html) cmdlet。

```
Remove-EC2SpotDatafeedSubscription
```

------

# 竞价型实例请求的服务相关角色
<a name="service-linked-roles-spot-instance-requests"></a>

Amazon EC2 使用服务相关角色获取代表您调用其他AWS服务所需的权限。服务相关角色是一种独特类型的 IAM 角色，它与 AWS 服务 直接相关。服务相关角色提供了一种将权限委托给 AWS 服务 的安全方式，因为只有相关服务才能担任服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。

Amazon EC2 使用名为 **Amazon Web Services ServiceRoleForEC2Spot** 的服务相关角色代表您启动和管理 Spot 实例。

## AWSServiceRoleForEC2Spot 授予的权限
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2Spot"></a>

Amazon EC2 使用 **Amazon Web Services ServiceRoleForEC2Spot** 完成以下操作：
+ `ec2:DescribeInstances` – 描述竞价型实例
+ `ec2:StopInstances` – 停止竞价型实例
+ `ec2:StartInstances` – 启动竞价型实例

## 创建服务相关角色
<a name="service-linked-role-creating-for-spot"></a>

在大多数情况下，无需手动创建服务相关角色。Amazon EC2 在您首次使用控制台请求 Spot 实例时创建 **Amazon Web Services ServiceRoleForEC2Spot** 服务相关角色。

如果在 2017 年 10 月之前具有活动Spot 实例请求（此时 Amazon EC2 开始支持该服务相关角色），则 Amazon EC2 在您的AWS账户中创建 **Amazon Web Services ServiceRoleForEC2Spot** 角色。有关更多信息，请参阅*IAM 用户指南*中的[我的账户中出现新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

如果您使用 AWS CLI 或 API 来请求竞价型实例，则必须确保此角色存在。

**要使用控制台创建 **Amazon Web Services ServiceRoleForEC2Spot****

1. 通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择 **Roles**（角色）。

1. 选择**创建角色**。

1. 在 **Select type of trusted entity (选择受信任实体的类型)** 页面上，依次选择 **EC2**、**EC2 - Spot Instances (EC2 - Spot 实例)** 和 **Next: Permissions (下一步: 权限)**。

1. 在下一页上，选择 **Next:Review（下一步：审核）**。

1. 在 **Review (审核)** 页面上，选择 **Create role (创建角色)**。

**要使用 AWS CLI 创建 **Amazon Web Services ServiceRoleForEC2Spot****  
如下所示使用 [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) 命令。

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```

如果您不再需要使用 Spot 实例，我们建议您删除 **Amazon Web Services ServiceRoleForEC2Spot** 角色。从账户中删除该角色后，如果您请求竞价型实例，Amazon EC2 将再次创建该角色。

## 授予对用于加密的 AMI 和 EBS 快照的客户托管密钥的访问权限
<a name="spot-instance-service-linked-roles-access-to-cmks"></a>

如果为竞价型实例指定[加密的 AMI](AMIEncryption.md) 或加密的 Amazon EBS 快照，并且您使用客户托管密钥进行加密，则必须为 **AWSServiceRoleForEC2Spot** 角色授予使用客户托管密钥的权限，以便 Amazon EC2 可以代表您启动竞价型实例。为此，您必须在客户托管密钥中添加授权，如以下过程中所示。

在提供权限时，授权是密钥策略的替代方法。有关更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的[使用授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)和[在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**为 **Amazon Web Services ServiceRoleForEC2Spot** 角色授予使用客户托管密钥的权限**
+ 使用 [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) 命令在客户托管密钥中添加授权，并指定授予权限的委托人（**Amazon Web Services ServiceRoleForEC2Spot** 服务相关角色），以执行授权允许的操作。客户托管密钥由 `key-id` 参数和客户托管密钥的 ARN 指定。委托人是由 `grantee-principal` 参数和 **Amazon Web Services ServiceRoleForEC2Spot** 服务相关角色的 ARN 指定的。

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

# 竞价型实例限额
<a name="using-spot-limits"></a>

每个 AWS 账户 可在每个区域运行和待处理的竞价型实例数量存在限额。待处理竞价型实例请求完成后，该请求将不再计入限额，因为正在运行的实例将计入限额。

竞价型实例限额根据您正在运行的竞价型实例为了完成待处理的竞价型实例请求而正在使用或将会使用的*虚拟中央处理器（vCPU）数*进行管理。如果您终止了竞价型实例但未取消竞价型实例请求，则这些请求将会计入您的竞价型实例 vCPU 限额，直到 Amazon EC2 检测到竞价型实例已经终止并关闭请求为止。

我们为竞价型实例提供以下限额类型。


| 名称 | 默认值 | 可调整 | 
| --- | --- | --- | 
| 所有 DL 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-85EED4F7) | 
| 所有 F 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-88CF9481) | 
| 所有 G 和 VT 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-3819A6DF) | 
| 所有 Inf 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-B5D1601B) | 
| 所有 P 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-7212CCBC) | 
| 所有标准（A、C、D、H、I、M、R、T、Z）竞价型实例请求 | 5 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) | 
| 所有 Trn 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-6B0D517C) | 
| 所有 X 竞价型实例请求 | 0 | [是](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-E3A00192) | 

尽管 Amazon EC2 会根据您的使用情况自动调整竞价型实例限额，您仍可以在必要时请求提高限额。例如，假设您计划启动超过当前限额允许数量的竞价型实例，则可以请求提高限额。如果您提交竞价型实例请求并收到 `Max spot instance count exceeded` 错误，则也可以请求提高限额。要请求提高限额，请根据 [Amazon EC2 Service Quotas](ec2-resource-limits.md) 中的描述使用服务限额控制台。

您可以启动任意实例类型组合以满足您不断变化的应用程序需求。例如，对于 256 个 vCPU 的全标准竞价型实例请求限额，您可以请求 32 个 `m5.2xlarge` 竞价型实例（32 x 8 vCPU）或 16 个 `c5.4xlarge` 竞价型实例（16 x 16 vCPU）。

借助 Amazon CloudWatch 指标集成，您可以根据限额监控 EC2 使用情况。您还可以配置警报以在即将达到限额时发出警告。有关更多信息，请参阅《服务限额用户指南》中的 [服务限额与 Amazon CloudWatch 警报](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html)**。

# Amazon EC2 专属主机
<a name="dedicated-hosts-overview"></a>

Amazon EC2 专属主机是一种专供您使用的物理服务器。您可以选择与其他 AWS 账户共享实例容量。有关更多信息，请参阅[跨账户 Amazon EC2 专属主机共享](dh-sharing.md)。

专属主机提供对实例置放的可见性和控制力，并且支持主机关联性。这意味着您可以在特定主机上启动和运行实例，并确保实例仅在特定主机上运行。有关更多信息，请参阅 [Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

专属主机提供全面的自带许可(BYOL)支持。它们允许您使用按插槽、按内核或按虚拟机授权的现有软件许可证，包括 Windows Server、SQL Server、SUSE Linux Enterprise Server、Red Hat Enterprise Linux，或其他绑定到虚拟机、插槽或物理内核的软件许可证(取决于您的许可证条款)。

如果您需要在专用硬件上运行实例，但不需要查看或控制实例的置放，也不需要使用按插槽或按内核授权的软件许可证，则可以考虑改用专用实例。专用实例和专属主机均可用于在专用物理服务器上启动 Amazon EC2 实例。专用实例与专属主机上的实例在性能、安全性或物理特性方面没有区别。但是，它们之间也存在一些关键差异。下表重点介绍专用实例和专用主机之间的一些重要区别：


|  | Dedicated Host | Dedicated Instance | 
| --- | --- | --- | 
| 专用的物理服务器 | 实例容量完全供您专用的物理服务器。 | 专供单个客户账户使用的物理服务器。 | 
| 实例容量共享 | 可以与其他账户共享实例容量。 | 不支持 | 
| 计费 | 按主机计费 | 按实例计费 | 
| 套接字、内核和主机 ID 的可见性 | 提供套接字数和物理内核数的可见性 | 无可见性 | 
| 主机和实例关联 | 允许您在一段时间内将您的实例一致地部署到同一物理服务器 | 不支持 | 
| 定向实例置放 | 提供额外可见性以及对在物理服务器上放置实例的方式的控制 | 不支持 | 
| 自动实例恢复 | 支持。有关更多信息，请参阅[Amazon EC2 专属主机恢复](dedicated-hosts-recovery.md)。 | 支持 | 
| 自带许可 (BYOL) | 支持 | 部分支持\$1 | 
| 容量预留 | 不支持 | 支持 | 

\$1 通过软件保障计划提供许可证移动性的 Microsoft SQL Server 和 Windows 虚拟桌面访问 (VDA) 许可证可用于专用实例。

有关专用实例的更多信息，请参阅 [Amazon EC2 专用实例](dedicated-instance.md)。

## 专用主机 限制
<a name="dedicated-hosts-limitations"></a>

在分配专用主机之前，请注意以下限制：
+ 要在专用主机上运行 RHEL 和 SUSE Linux，您必须自带 AMI。由 AWS 提供或 AWS Marketplace 上提供的 RHEL 和 SUSE Linux AMI 不可用于专用主机。有关如何创建自己的 AMI 的更多信息，请参阅 [自带软件许可证到 Amazon EC2 专属主机](dedicated-hosts-BYOL.md)。

  此限制不适用于分配给高内存实例（`u-6tb1.metal`、`u-9tb1.metal`、`u-12tb1.metal`、`u-18tb1.metal` 和 `u-24tb1.metal`）的主机。由 AWS 提供或在 AWS Marketplace 上可用的 RHEL 和 SUSE Linux AMI 可以用于这些主机。
+ 每个区域每个 AWS 账户的每个实例系列运行的专属主机数量具有一定的限制。限额仅适用于正在运行的实例。如果实例处于待处理、正在停止或已停止状态，则不会计入限额。要查看账户限额或请求增加限额，请使用[服务限额控制台](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas)。
+ 在使用指定主机资源组的启动模板时，支持 Auto Scaling 组。有关更多信息，请参阅*Amazon EC2 Auto Scaling 用户指南*中的[使用高级设置创建启动模板](https://docs.aws.amazon.com/autoscaling/ec2/userguide/advanced-settings-for-your-launch-template.html) 。
+ 不支持 Amazon RDS 实例。
+ AWS免费使用套餐不适用于专用主机。
+ 实例置放控制是指管理专用主机中的实例启动。不能在置放群组中启动专属主机。
+ 如果为虚拟化实例类型分配主机，在主机分配完成后，您无法将该实例类型修改为 `.metal` 实例类型。例如，如果您为 `m5.large` 实例类型分配主机，则无法将实例类型修改为 `m5.metal`。

  如果为 `.metal` 实例类型分配主机，在主机分配完成后，您无法将该实例类型修改为虚拟化实例类型。例如，如果您为 `m5.metal` 实例类型分配主机，则无法将实例类型修改为 `m5.large`。

**Topics**
+ [专用主机 限制](#dedicated-hosts-limitations)
+ [定价和计费](dedicated-hosts-billing.md)
+ [实例容量配置](dedicated-hosts-limits.md)
+ [专属主机上的可突发实例](burstable-t3.md)
+ [自带许可证](dedicated-hosts-BYOL.md)
+ [自动置放和关联](dedicated-hosts-understanding.md)
+ [分配专用主机](dedicated-hosts-allocating.md)
+ [在专属主机上启动实例](launching-dedicated-hosts-instances.md)
+ [在主机资源组中启动实例](launching-hrg-instances.md)
+ [修改 专用主机 自动放置](modify-host-auto-placement.md)
+ [修改支持的实例类型](modify-host-support.md)
+ [修改实例租赁和关联](moving-instances-dedicated-hosts.md)
+ [释放专属主机](dedicated-hosts-releasing.md)
+ [迁移到基于 Nitro 的 Amazon EC2 专属主机](dh-migrate.md)
+ [购买专属主机预留](#purchasing-dedicated-host-reservations)
+ [跨账户共享](dh-sharing.md)
+ [Outpost 上的专属主机](dh-outposts.md)
+ [主机恢复](dedicated-hosts-recovery.md)
+ [主机维护](dedicated-hosts-maintenance.md)
+ [显示器 专用主机](dedicated-hosts-monitoring.md)
+ [跟踪配置更改](dedicated-hosts-aws-config.md)

# Amazon EC2 专属主机定价和账单
<a name="dedicated-hosts-billing"></a>

专用主机的价格因付款选项而异。

**Topics**
+ [按需专用主机](#on-demand-dedicated-hosts)
+ [Dedicated Host Reservations](#dedicated-host-reservations)
+ [Savings Plans](#dedicated-hosts-savings-plans)
+ [专用主机 上的 Windows Server 定价](#dh-win-billing)

## 按需专用主机
<a name="on-demand-dedicated-hosts"></a>



按需计费在您将专用主机分配到您的账户时自动激活。

专用主机的按需价格因实例系列和区域而异。您需要为处于活动状态的专用主机按每秒支付费用（至少 60 秒），无论您选择在专用主机上启动的实例的数量或大小如何。有关按需定价的更多信息，请参阅[Amazon EC2 专用主机 按需定价](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#on-demand)。



您可以随时释放按需专用主机以停止产生费用。有关释放专用主机的信息，请参阅[释放 Amazon EC2 专属主机](dedicated-hosts-releasing.md)。

## Dedicated Host Reservations
<a name="dedicated-host-reservations"></a>

与运行按需 专用主机 相比，专用主机预留 可提供账单折扣。预留提供三种付款选项：
+ **无预付费用** — 无预付费用预留为某个期限内的专用主机使用提供折扣，并且不需要预付款。可以选择一年或三年期限。只有一些实例系列支持三年期无预付预留。
+ **预付部分费用** — 必须支付一部分预留费用，期限内的剩余时间享受折扣。可以选择一年或三年期限。
+ **预付全费** — 提供最低的有效价格。提供一年和三年期限，覆盖整个前期费用，无需额外将来付费。

账户中必须有活动的专用主机才能购买预留。每个预留可以涵盖在单个可用区中支持同一实例系列的一个或多个主机。预留应用于主机上的实例系列，而不是实例大小。如果有三个不同实例大小的专用主机（`m4.xlarge`、`m4.medium` 和 `m4.large`），则可以将一个 `m4` 预留与所有这些专用主机关联。预留的实例系列和可用区必须与您希望与之关联的专用主机的实例系列和可用区相匹配。

当预留与专用主机关联后，将无法释放专用主机，直到预留期限结束。

有关预留定价的更多信息，请参阅 [Amazon EC2 专用主机定价](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#reservations)。

## Savings Plans
<a name="dedicated-hosts-savings-plans"></a>

Savings Plans 是通过按需型实例提供大幅优惠的灵活定价模式。在使用 Savings Plans 时，您承诺在一年或三年期限内保持一致的使用量（以美元/小时为单位）。这使您能够灵活地使用最能满足您的需求的专用主机，并继续节省费用，而不必对特定专用主机做出承诺。有关更多信息，请参阅 [AWS Savings Plans 用户指南](https://docs.aws.amazon.com/savingsplans/latest/userguide/)。

**注意**  
Savings Plans 不支持 `u-6tb1.metal`、`u-9tb1.metal`、`u-12tb1.metal`、`u-18tb1.metal`、和 `u-24tb1.metal` 专属主机。

## 专用主机 上的 Windows Server 定价
<a name="dh-win-billing"></a>

根据 Microsoft 的许可条款，您可以将现有的 Windows Server 和 SQL Server 许可证用于专用主机。如果选择使用自己的许可证，则不会收取额外的软件使用费用。

此外，您还可以使用 Amazon 提供的 Windows Server AMI，在专用主机上运行最新版本的 Windows Server。对于拥有现有的可在专用主机上运行的 SQL Server 许可证但需要 Windows Server 运行 SQL Server 工作负载的情况，这是很常见的。仅在最新一代的实例类型上支持 Amazon 提供的 Windows Server AMI。有关更多信息，请参阅 [Amazon EC2 专用主机定价](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#windows-dh)。

# Amazon EC2 专属主机实例容量配置
<a name="dedicated-hosts-limits"></a>

专属主机支持不同的配置（物理内核、套接字和 VCPU），允许您运行不同系列和规模的实例。

当您在账户中分配专属主机时，您可以选择支持同一个实例系列中**单个实例类型**或**多种实例类型**的配置。可以在主机上运行的实例数量取决于您选择的配置。

**Topics**
+ [单个实例类型支持](#dh-single)
+ [多种实例类型支持](#dh-multiple)

## 单个实例类型支持
<a name="dh-single"></a>

您可以分配仅支持一种实例类型的专属主机。使用此配置，您在专属主机上启动的每个实例都必须具有相同的实例类型，这是您在分配主机时指定的实例类型。

例如，您可以分配仅支持 `m5.4xlarge` 实例类型的主机。在这种情况下，您只能运行该主机上的 `m5.4xlarge` 实例。

可以在主机上启动的实例数量取决于主机提供的物理内核数以及指定实例类型消耗的内核数。例如，如果您为 `m5.4xlarge` 实例分配了一台主机，该主机提供 48 个物理内核，每个 `m5.4xlarge` 实例使用 8 个物理内核。这意味着您最多可以在该主机上启动 6 个实例（*48 个物理内核/每个实例 8 个内核 = 6 个实例*）。

## 多种实例类型支持
<a name="dh-multiple"></a>

您可以分配支持同一实例系列中多种实例类型的专属主机。这允许您在同一主机上运行不同的实例类型，只要这些实例属于同一个实例系列并且主机有足够的实例容量即可。

例如，您可以分配支持 `R5` 实例系列中不同实例类型的主机。在这种情况下，您可以在该主机的物理核心容量内启动 `R5` 实例类型的某些组合，例如 `r5.large`、`r5.xlarge`、`r5.2xlarge` 和 `r5.4xlarge`。

以下实例系列支持带有多种实例类型的专属主机：
+ **通用型：**A1 \$1 M5 \$1 M5n \$1 M6i \$1 M7i \$1 T3
+ **计算优化型：**C5 \$1 C5n \$1 C6i \$1 C7i
+ **内存优化型：**R5 \$1 R5n \$1 R6i \$1 R7i

您可以在主机上运行的实例数量取决于主机提供的物理内核数，以及在主机上运行的每种实例类型所使用的内核数。例如，如果您分配 `R5` 主机，它提供 48 个物理内核，那么您运行两个 `r5.2xlarge` 实例（*4 个内核 x 2 个实例*）和三个 `r5.4xlarge` 实例（*8 个内核 x 3 个实例*)，这些实例总共消耗 32 个核心，并且您可能能够运行某些 `R5` 实例组合，只要它们在剩余的 16 个核心之内即可。

但是，对于每个实例系列，每种实例类型可以运行的实例数量都有限制。例如，`R5` 专属主机支持最多 2 个 `r5.8xlarge` 实例，其中使用 32 个物理内核。在这种情况下，可以使用类型更小的其他 `R5` 实例将主机填充到内核容量。有关每个实例系列支持的实例类型数量，请参阅[专用主机配置表](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#host-configuration)。

下表显示了实例类型示例组合：


| 实例系列 | 实例类型组合示例 | 
| --- | --- | 
| R5 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/dedicated-hosts-limits.html)  | 
| C5 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/dedicated-hosts-limits.html)  | 
| M5 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/dedicated-hosts-limits.html)  | 

**注意事项**  
使用支持多种实例类型的专属主机时，请记住以下几点：
+ 仅在同一实例系列中才可以在同一主机上使用多种实例类型。
+ 混合使用实例类型时，为了最大限度地提高主机利用率，我们建议先启动较大的实例类型，然后再启动较小的实例类型。
  + 根据专属主机上实例类型的组合和启动顺序，可能无法在物理上最大限度地提高主机的利用率。在主机上混合使用实例类型时，某些容量可能在主机上提供但不可使用。例如，您可能会看到 r5n 主机上有 16 个可用的 vCPU，但可能无法在主机上启动 4xlarge 实例，即使 r5n.4xlarge 在 16 个 vCPU 上运行。

**注意**  
如果您为多种实例类型启用 A1 专属主机，则只能在该主机上混合启动 `a1.xlarge` 和 `a1.2xlarge` 实例。如果您在该主机上启动了一个 `a1.medium` 或 `a1.large` 实例，则只能在该主机上启动同一实例类型的其他实例。单个 `a1.4xlarge` 实例会消耗主机上的所有容量。如果您需要为 `a1.medium` 或 `a1.large` 实例配置一个主机，我们建议您分别为这些实例类型分配单独的主机。

# Amazon EC2 专属主机上的可突发 T3 实例
<a name="burstable-t3"></a>

专属主机支持突增性能 T3 实例。T3 实例提供了在专用硬件上使用符合条件的 BYOL 许可证软件的经济高效的方式。T3 实例较小的 vCPU 占用空间使您能够在更少的主机上整合工作负载，并最大限度地提高每核心许可利用率。

T3 专属主机最适合运行具有低到中等 CPU 利用率的 BYOL 软件。这包括符合条件的按插槽、按内核或按虚拟机授权的软件许可证，例如 Windows Server、Windows 桌面、SQL Server、SUSE Enterprise Linux Server、Red Hat Enterprise Linux 和 Oracle 数据库。适用 T3 专属主机的工作负载示例包括中小型数据库、虚拟桌面、开发和测试环境、代码存储库以及产品原型。不建议使用 T3 专属主机用于持续高 CPU 利用率的工作负载或同时出现相关 CPU 突发的工作负载。

专属主机上的 T3 实例使用与共享租赁硬件上的 T3 实例相同的信用模型。但是，它们支持 `standard` 信用模式；不支持 `unlimited` 积分模式。在 `standard` 模式下，专属主机上的 T3 实例*赚取*、*消耗*和*累积*服务抵扣金，其方式与共享租赁硬件上的突增实例相同。突增实例具有在基准 CPU 性能，并能够在需要时提升到基准水平之上。为了突增到基准以上，实例会花费在其 CPU 积分余额中累积的积分。当累积积分耗尽时，CPU 利用率将降低到基准水平。有关 `standard` 模式的更多信息，请参阅 [标准可突增性能实例的工作原理](burstable-performance-instances-standard-mode-concepts.md#how-burstable-performance-instances-standard-works)。

T3 专属主机支持 Amazon EC2 专属主机提供的所有功能，包括单个主机上的多个实例大小、主机 Resource Groups 和 BYOL。

**支持的 T3 实例大小和配置**  


T3 专属主机通过提供基准 CPU 性能和在需要时突发到更高级别的能力来运行通用的可爆发 T3 实例，这些实例共享主机的 CPU 资源。这使得拥有 48 个核心的 T3 专属主机能够支持每台主机最多 192 个实例。为了有效利用主机的资源并提供最佳实例性能，Amazon EC2 实例放置算法会自动计算支持的可在主机上启动的实例数和实例大小组合。

T3 专属主机支持同一主机上的多个实例类型。专属主机上不是支持所有 T3 实例。您可以运行不同的 T3 实例组合，直到主机的 CPU 限制为止。

下表列出了支持的实例类型，总结了每种实例类型的性能，并指出了每种大小可以启动的最大实例数。


| 实例类型 | vCPU | 内存（GiB） | 每个 vCPU 的基准 CPU 利用率 | 网络突增带宽 (Gbps) | Amazon EBS 突增带宽 (Mbps) | 每个专属主机的最大实例数 | 
| --- | --- | --- | --- | --- | --- | --- | 
| t3.nano | 2 | 0.5 | 5% | 5 | 最多 2,085 | 192 | 
| t3.micro | 2 | 1 | 10% | 5 | 最多 2,085 | 192 | 
| t3.small | 2 | 2 | 20% | 5 | 最多 2,085 | 192 | 
| t3.medium | 2 | 4 | 20% | 5 | 最多 2,085 | 192 | 
| t3.large | 2 | 8 | 30% | 5 | 2,780 | 96 | 
| t3.xlarge | 4 | 16 | 40% | 5 | 2,780 | 48 | 
| t3.2xlarge | 8 | 32 | 40% | 5 | 2,780 | 24 | 

**监控 T3 专属主机的 CPU 利用率**  
您可以使用 `DedicatedHostCPUUtilization` Amazon CloudWatch 指标，用于监控专属主机的 vCPU 利用率。`EC2` 命名空间和 `Per-Host-Metrics` 维度中可用指标。有关更多信息，请参阅 [专属主机指标](viewing_metrics_with_cloudwatch.md#dh-metrics)。

# 自带软件许可证到 Amazon EC2 专属主机
<a name="dedicated-hosts-BYOL"></a>

专用主机允许使用现有的按插槽、按内核或按虚拟机软件的许可证。如果自带许可，您有责任管理自己的许可证。不过，Amazon EC2 具有一些帮助您保持许可证合规性的功能，例如实例关联和定向置放。

要将您自己的卷许可的计算机镜像引入到 Amazon EC2 中，需要执行以下常规步骤。

1. 验证控制您的系统映像使用的许可证条款是否允许在虚拟化云环境中使用系统映像。有关 Microsoft 许可的更多信息，请参阅[亚马逊云科技和 Microsoft 许可](https://aws.amazon.com/windows/faq/#licensing)。

1. 在确认可在 Amazon EC2 中使用系统映像后，使用 VM Import/Export 导入该映像。有关如何导入系统映像的信息，请参阅 [VM Import/Export 用户指南](https://docs.aws.amazon.com/vm-import/latest/userguide/)。

1. 在导入系统映像后，可以在您的账户中的活动专用主机上从该映像中启动实例。

1. 在运行这些实例时，您可能需要针对自己的 KMS 服务器（例如，Windows Server 或 Windows SQL Server）激活这些实例，具体取决于操作系统。您无法针对 Amazon Windows KMS 服务器激活导入的 Windows AMI。

**注意**  
要跟踪您的映像在 AWS 中的使用方式，请在 AWS Config 中启用主机记录。您可以使用 AWS Config 来记录专用主机的配置更改并将输出用作许可证报告的数据源。有关更多信息，请参阅 [使用 AWS Config 跟踪 Amazon EC2 专属主机配置更改](dedicated-hosts-aws-config.md)。

# Amazon EC2 专属主机自动置放和主机关联
<a name="dedicated-hosts-understanding"></a>

专用主机的置放控制是在实例级别和主机级别进行的。

## 自动置放
<a name="dedicated-hosts-auto-placement"></a>

自动置放是在主机级别配置的。通过使用该功能，您可以管理启动的实例是在特定主机上启动，还是在具有匹配配置的任何可用主机上启动。

如果**禁用**专属主机的自动置放功能，则只会接受指定其唯一主机 ID 的主机租赁实例启动。这是新专用主机的默认设置。

如果**启用**专属主机的自动置放功能，则会接受任何与其实例类型配置相匹配的非定向主机租赁实例启动。

在启动实例时，您需要配置其租赁。如果在专用主机上启动实例而不提供特定 `HostId`，则将允许实例在任何*已启用*自动置放且匹配其实例类型的专用主机上启动。

## 主机关联
<a name="dedicated-hosts-affinity"></a>

在实例级别配置主机关联。它在实例和专用主机之间建立启动关系。

当关联设置为 `Host` 时，启动到特定主机的实例在停止时始终在同一主机上重新启动。这适用于定向启动和非定向启动。

如果关联设置为 `Default`，并且您停止并重新启动实例，则实例可在任何可用主机上重新启动。但是，它将尝试在上次运行它的专用主机上启动 (尽最大努力)。

# 分配一台 Amazon EC2 专属主机供您的账户使用
<a name="dedicated-hosts-allocating"></a>

要开始使用专属主机，必须先在您的账户中分配主机。在分配专用主机后，将在您的账户中立即提供专用主机容量，您可以开始在专用主机上启动实例。

当您在账户中分配专属主机时，您可以选择支持同一个实例系列中**单个实例类型**或**多种实例类型**的配置。您可以在主机上运行的实例数量取决于您选择的配置。有关更多信息，请参阅 [Amazon EC2 专属主机实例容量配置](dedicated-hosts-limits.md)。

------
#### [ Console ]

**分配专用主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **专用主机**，然后选择 **Allocate 专用主机 (分配专用主机)**。

1. 对于 **Instance family (实例系列)**，为专用主机选择实例系列。

1. 指定 专用主机 是支持选定实例系列中的多种实例大小，还是仅支持特定的实例类型。请执行以下任一操作。
   + 要将专用主机配置为支持选定实例系列中的多种实例类型，请为 **Support multiple instance types (支持多种实例类型)** 选择 **Enable (启用)**。通过启用该选项，您可以在 专用主机 上启动同一实例系列中的不同实例大小。例如，如果您选择 `m5` 实例系列并选择该选项，则可以在专用主机上启动 `m5.xlarge` 和 `m5.4xlarge` 实例。
   + 要将专用主机配置为支持选定实例系列中的单个实例类型，请清除 **Support multiple instance types (支持多种实例类型)**，然后为 **Instance type (实例类型)** 选择要支持的实例类型。这样，您就可以在专用主机上启动单个实例类型。例如，如果选择该选项并将 `m5.4xlarge` 指定为支持的实例类型，则只能在专用主机上启动 `m5.4xlarge` 实例。

1. 对于 **Availability Zone (可用区)**，选择要在其中分配专用主机的可用区。

1. 要允许专用主机接受与其实例类型匹配的非定向实例启动，请为**实例自动置放**选择**启用**。有关自动置放的更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

1. 要为专用主机启用主机恢复，请为 **Host recovery (主机恢复)** 选择 **Enable (启用)**。有关更多信息，请参阅[Amazon EC2 专属主机恢复](dedicated-hosts-recovery.md)。

1. 对于 **Quantity (数量)**，输入要分配的专用主机数量。

1. （可选）选择 **Add new tag** (添加新标签)，然后输入标签键和标签值。

1. 选择 **Allocate**。

------
#### [ AWS CLI ]

**分配专用主机**  
使用 [allocate-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/allocate-hosts.html) 命令。以下示例会在 `us-east-1a` 可用区中，分配一个支持 `m5` 实例系列中多种实例类型的专属主机。此外还会启用主机恢复功能并禁用自动置放功能。

```
aws ec2 allocate-hosts \
    --instance-family "m5" \
    --availability-zone "us-east-1a" \
    --auto-placement "off" \
    --host-recovery "on" \ 
    --quantity 1
```

以下示例会在指定可用区中，分配一个支持*非定向*实例启动的专属主机，并启用主机恢复和自动置放功能。

```
aws ec2 allocate-hosts \
    --instance-type "m5.large" \
    --availability-zone "eu-west-1a" \
    --auto-placement "on" \
    --host-recovery "on" \
    --quantity 1
```

------
#### [ PowerShell ]

**分配专用主机**  
使用 [New-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Host.html) cmdlet。以下示例会在 `us-east-1a` 可用区中，分配一个支持 `m5` 实例系列中多种实例类型的专属主机。该主机还会启用主机恢复功能，并禁用自动置放功能。

```
New-EC2Host `
    -InstanceFamily m5 `
    -AvailabilityZone us-east-1a `
    -AutoPlacement Off `
    -HostRecovery On `
    -Quantity 1
```

以下示例会在指定可用区中，分配一个支持*非定向*实例启动的专属主机，并启用主机恢复。

```
New-EC2Host `
    -InstanceType m5.large `
    -AvailabilityZone eu-west-1a `
    -AutoPlacement On `
    -HostRecovery On `
    -Quantity 1
```

------

# 在 Amazon EC2 专属主机上启动 Amazon EC2 实例
<a name="launching-dedicated-hosts-instances"></a>

在分配一个专用主机后，您可以在其中启动实例。对于您启动的实例类型，如果没有具有足够可用容量的活动专用主机，则无法启动具有 `host` 租赁的实例。

**注意事项**
+ SQL Server、SUSE 和 Amazon EC2 提供的 RHEL AMI 无法用于专用主机。
+ 对于支持多种实例尺寸的专属主机，我们建议您首先启动较大的实例大小，然后根据需要用较小的实例大小填充剩余的实例容量。
+ 在启动实例之前，请注意限制。有关更多信息，请参阅 [专用主机 限制](dedicated-hosts-overview.md#dedicated-hosts-limitations)。

------
#### [ Console ]

**从专用主机页面中在特定专用主机上启动实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 在 **Dedicated Hosts**（专属主机）页面上，选择一个主机，然后依次选择 **Actions**（操作）、**Launch Instance(s) onto host**（在主机上启动实例）。

1. 在 **Application and OS Images**（应用程序和操作系统镜像）部分中，请从列表中选择一个 AMI。

1. 在 **Instance type**（实例类型）部分中，选择要启动的实例类型。
**注意**  
如果专用主机仅支持一种实例类型，则默认选择支持的实例类型，而无法进行更改。  
如果专用主机支持多种实例类型，您必须根据专用主机的可用实例容量在支持的实例系列中选择一种实例类型。建议您首先启动较大的实例大小，然后根据需要用较小的实例大小填充剩余的实例容量。

1. 在 **Key pair**（密钥对）部分中，选择要与实例关联的密钥对。

1. 在**高级详细信息**部分中，对于**租赁关联**，执行下面的任意一项操作：
   + **关闭**：禁用主机关联。实例在指定的主机上启动，但不保证停止后仍在同一专属主机上重新启动。
   + 专属主机 ID：启用主机关联。停止后，实例将始终在此指定主机上重新启动（如果主机有容量）。如果主机没有容量，则无法重新启动实例；您必须与其他主机建立关联。

   有关关联的更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。
**注意**  
**租赁**和**主机**选项是根据您选择的主机预配置的。

1. 根据需要配置其他实例选项。有关更多信息，请参阅 [Amazon EC2 实例配置参数参考](ec2-instance-launch-parameters.md)。

1. 选择**启动实例**。

**使用启动实例向导在专用主机上启动实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，依次选择 **Instances**（实例）、**Launch instance**（启动实例）。

1. 在 **Application and OS Images**（应用程序和操作系统镜像）部分中，请从列表中选择一个 AMI。

1. 在 **Instance type**（实例类型）部分中，选择要启动的实例类型。

1. 在 **Key pair**（密钥对）部分中，选择要与实例关联的密钥对。

1. 在 **Advanced details**（高级详细信息）部分中，执行以下操作：

   1. 对于 **Tenancy**（租赁），选择 **Dedicated Host**（专属主机）。

   1. 对于 **Target host by** [目标主机（按）]，选择 **Host ID**（主机 ID）。

   1. 对于 **Target host ID**（目标主机 ID），选择要在其上启动实例的主机。

   1. 对于**租赁关联**，执行下面的任意一项操作：
      + **关闭**：禁用主机关联。实例在指定的主机上启动，但不保证停止后仍在同一专属主机上重新启动。
      + 专属主机 ID：启用主机关联。停止后，实例将始终在此指定主机上重新启动（如果主机有容量）。如果主机没有容量，则无法重新启动实例；您必须与其他主机建立关联。

      有关关联的更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

1. 根据需要配置其他实例选项。有关更多信息，请参阅 [Amazon EC2 实例配置参数参考](ec2-instance-launch-parameters.md)。

1. 选择**启动实例**。

------
#### [ AWS CLI ]

**在专用主机上启动实例**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令并在 `--placement` 选项中指定实例亲和性、租赁和主机。

在具有主机关联的特定专属主机上启动（如果实例停止，它将始终在同一主机上重启）：

```
--placement Affinity=host,Tenancy=host,HostId=h-07879acf49EXAMPLE
```

在没有主机关联的特定专属主机上启动（实例可以在任何可用主机上重启）：

```
--placement Tenancy=host,HostId=h-07879acf49EXAMPLE
```

在启用了自动置放和具有匹配实例类型的任何可用专属主机上启动：

```
--placement Tenancy=host
```

------
#### [ PowerShell ]

**在专用主机上启动实例**  
使用 [New-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 并在 `-Placement` 参数中指定实例亲和性、租赁和主机。

在具有主机关联的特定专属主机上启动（如果实例停止，它将始终在同一主机上重启）：

```
-Placement_Affinity host `
-Placement_Tenancy host `
-Placement_HostId h-07879acf49EXAMPLE
```

在没有主机关联的特定专属主机上启动（实例可以在任何可用主机上重启）：

```
-Placement_Tenancy host `
-Placement_HostId h-07879acf49EXAMPLE
```

在启用了自动置放和具有匹配实例类型的任何可用专属主机上启动：

```
-Placement_Tenancy host
```

------

# 在主机资源组中启动 Amazon EC2 实例
<a name="launching-hrg-instances"></a>

专用主机也与 AWS License Manager 相集成。使用 License Manager，您可以创建主机资源组，该组是作为单个实体进行管理的专用主机的集合。创建主机资源组时，可以为专用主机指定主机管理首选项，如自动分配和自动释放。这允许您在专用主机上启动实例，而无需手动分配和管理这些主机。有关更多信息，请参阅 *AWS License Manager 用户指南*中的[主机 Resource Groups](https://docs.aws.amazon.com/license-manager/latest/userguide/host-resource-groups.html)。

在包含具有可用实例容量的专用主机的主机资源组中启动实例时，Amazon EC2 将在该主机上启动实例。如果主机资源组没有包含具有可用实例容量的主机，Amazon EC2 将自动分配主机资源组中的新主机，然后在该主机上启动实例。有关更多信息，请参阅 *AWS License Manager 用户指南*中的[主机资源组](https://docs.aws.amazon.com/license-manager/latest/userguide/host-resource-groups.html)。

**要求和限制**
+ 您必须将基于核心或套接字的许可证配置与 AMI 关联。
+ 您不能将 Amazon EC2 提供的 SQL Server、SUSE 或 RHEL AMI 用于专用主机。
+ 您无法通过选择主机 ID 来定位特定主机，并且无法在主机资源组中启动实例时启用实例关联。

------
#### [ Console ]

**在主机资源组中启动实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，依次选择 **Instances**（实例）、**Launch instance**（启动实例）。

1. 在 **Application and OS Images**（应用程序和操作系统镜像）部分中，请从列表中选择一个 AMI。

1. 在 **Instance type**（实例类型）部分中，选择要启动的实例类型。

1. 在 **Key pair**（密钥对）部分中，选择要与实例关联的密钥对。

1. 在 **Advanced details**（高级详细信息）部分中，执行以下操作：

   1. 对于 **Tenancy**（租赁），选择 **Dedicated Host**（专属主机）。

   1. 对于 **Target host by** [目标主机（按）]，选择 **Host resource group**（主机资源组）。

   1. 对于 **Tenancy host resource group**（租赁主机资源组），选择要在其中启动实例的主机资源组。

   1. 对于 **Tenancy affinity**（租赁关联），执行下面的任意一项操作：
      + 选择 **Off**（关闭） – 实例将在指定的主机上启动，但不保证停止后仍会在同一专属主机上重新启动。
      + 选择专属主机 ID – 如果停止，实例将始终在此特定主机上重新启动。

      有关关联的更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

1. 根据需要配置其他实例选项。有关更多信息，请参阅 [Amazon EC2 实例配置参数参考](ec2-instance-launch-parameters.md)。

1. 选择**启动实例**。

------
#### [ AWS CLI ]

**在主机资源组中启动实例**  
可以使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。在 `--placement` 选项中，省略租赁并指定主机资源组的 ARN。

```
--placement HostResourceGroupArn=arn:aws:resource-groups:us-east-2:123456789012:group/my-resource-group
```

------
#### [ PowerShell ]

**在主机资源组中启动实例**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet。在 `-Placement` 参数中，省略租赁并指定主机资源组的 ARN。

```
-Placement_HostResourceGroupArn arn:aws:resource-groups:us-east-2:123456789012:group/my-resource-group
```

------

# 修改现有 Amazon EC2 专属主机的自动置放设置
<a name="modify-host-auto-placement"></a>

将专属主机分配到您的 AWS 账户后，您可以修改其自动置放设置。

------
#### [ Console ]

**修改专用主机的自动置放**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 选择一个主机，然后依次选择 **Actions (操作)**、**Modify host (修改主机)**。

1. 对于 **Instance auto-placement (实例自动置放)**，选择 **Enable (启用)** 来启用自动置放，或者取消选择 **Enable (启用)** 来禁用自动置放。有关更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

1. 选择**保存**。

------
#### [ AWS CLI ]

**修改专用主机的自动置放**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令。

```
aws ec2 modify-hosts \
    --auto-placement on \
    --host-ids h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**修改专用主机的自动置放**  
使用 [Edit-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

```
Edit-EC2Host `
    -AutoPlacement 1 `
    -HostId h-012a3456b7890cdef
```

------

# 修改现有 Amazon EC2 专属主机支持的实例类型
<a name="modify-host-support"></a>

您可以修改专用主机以更改它支持的实例类型。如果它当前支持一种实例类型，您可以对其进行修改以支持该实例系列中的多种实例类型。类似地，如果它当前支持多种实例类型，您可以对其进行修改以仅支持特定的实例类型。

要修改专用主机以支持多种实例类型，您必须先停止主机上正在运行的所有实例。完成修改大约需要 10 分钟。在进行修改时，专用主机将转变为 `pending` 状态。在处于 `pending` 状态时，您无法在专用主机上启动停止的实例或启动新实例。

要将支持多种实例类型的专用主机修改为仅支持单个实例类型，主机不能具有运行中的实例，或者运行中的实例必须是您希望主机支持的实例类型。例如，要将支持 `m5` 实例系列中的多种实例类型的主机修改为仅支持 `m5.large` 实例，则专用主机不能具有正在运行的实例，或者只能在主机上运行 `m5.large` 实例。

如果为虚拟化实例类型分配主机，在主机分配完成后，您无法将该实例类型修改为 `.metal` 实例类型。例如，如果您为 `m5.large` 实例类型分配主机，则无法将实例类型修改为 `m5.metal`。如果为 `.metal` 实例类型分配主机，在主机分配完成后，您无法将该实例类型修改为虚拟化实例类型。例如，如果您为 `m5.metal` 实例类型分配主机，则无法将实例类型修改为 `m5.large`。

------
#### [ Console ]

**修改专用主机的支持实例类型**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **专用主机**。

1. 选择要修改的专用主机，然后依次选择 **Actions (操作)**、**Modify host (修改主机)**。

1. 根据专用主机的当前配置，执行以下某项操作：
   + 如果专用主机当前支持特定实例类型，则未启用 **Support multiple instance types (支持多种实例类型)**，并且 **Instance type (实例类型)** 会列出所支持的实例类型。要修改主机以支持当前实例系列中的多种类型，请为 **Support multiple instance types (支持多种实例类型)** 选择 **Enable (启用)**。

     您必须先停止主机上正在运行的所有实例，然后再修改主机以支持多种实例类型。
   + 如果专用主机当前支持实例系列中的多种实例类型，则为 **Support multiple instance types (支持多种实例类型)** 选择了 **Enabled (已启用)**。要修改主机以支持特定的实例类型，请为 **Support multiple instance types (支持多种实例类型)** 取消选择 **Enable (启用)**，然后为 **Instance type (实例类型)** 选择要支持的特定实例类型。

     您无法更改专用主机支持的实例系列。

1. 选择**保存**。

------
#### [ AWS CLI ]

**修改专用主机的支持实例类型**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令。

以下示例会修改专属主机以支持 `m5` 实例系列中的多种实例类型。

```
aws ec2 modify-hosts \
    --instance-family m5 \
    --host-ids h-012a3456b7890cdef
```

以下示例会修改专属主机以仅支持 `m5.xlarge` 实例。

```
aws ec2 modify-hosts \
    --instance-type m5.xlarge \
    --instance-family --host-ids h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**修改专用主机的支持实例类型**  
使用 [Edit-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

以下示例会修改专属主机以支持 `m5` 实例系列中的多种实例类型。

```
Edit-EC2Host `
    -InstanceFamily m5 `
    -HostId h-012a3456b7890cdef
```

以下示例会修改专属主机以仅支持 `m5.xlarge` 实例。

```
Edit-EC2Host `
    -InstanceType m5.xlarge `
    -HostId h-012a3456b7890cdef
```

------

# 修改 Amazon EC2 实例的 Amazon EC2 专属主机租赁和关联
<a name="moving-instances-dedicated-hosts"></a>

启动实例后，可以更改其租赁属性。您还可以修改实例的亲和性以定位特定主机，或者允许其在您账户中具有匹配属性的任何可用专属主机上启动。要修改实例租赁或关联，实例必须处于 `stopped` 状态。

您实例的操作系统详细信息以及是否安装了 SQL Server 会影响支持的转换。有关实例可用的租赁转换路径的更多信息，请参阅《License Manager User Guide》**中的 [Tenancy conversion](https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-tenancy.html)。

**注意**  
对于 T3 实例，您必须在专属主机上启动实例才能使用 `host` 租赁。对于 T3 实例，您不能将租赁从 `host` 改为 `dedicated` 或 `default`。尝试进行这些不受支持的租赁更改会导致 `InvalidRequest` 错误代码。

------
#### [ Console ]

**修改实例租赁或关联**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**实例**并选择要修改的实例。

1. 依次选择**实例状态**、**停止**。

1. 在实例处于选中状态时，依次选择**操作**、**实例设置**、**修改实例置放**。

1. 在**修改实例置放**页面上，配置以下项：
   + **租赁** — 选择下列项之一：
     + 运行专用硬件实例 — 将实例作为专用实例启动。有关更多信息，请参阅[Amazon EC2 专用实例](dedicated-instance.md)。
     + 在专用主机上启动实例 — 在具有可配置关联的专用主机上启动实例。
   + **关联** — 选择下列项之一：
     + 此实例可以在任一主机上运行 — 实例在您的账户中支持该实例类型的任何可用专用主机上启动。
     + 此实例只能在选定的主机上运行 — 实例只能在为**目标主机**选择的专用主机上运行。
   + **目标主机** — 选择实例必须在其中运行的专用主机。如果未列出目标主机，则账户中可能没有可用的兼容专用主机。

   有关更多信息，请参阅[Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。

1. 选择**保存**。

------
#### [ AWS CLI ]

**修改实例租赁或关联**  
使用 [modify-instance-placement](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-placement.html) 命令。以下示例将指定实例的关联从 `default` 更改为 `host`，并指定实例已关联到的专用主机。

```
aws ec2 modify-instance-placement \
    --instance-id i-1234567890abcdef0 \
    --affinity host \
    --tenancy host \
    --host-id h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**修改实例租赁或关联**  
使用 [Edit-EC2InstancePlacement](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstancePlacement.html) cmdlet。以下示例将指定实例的关联从 `default` 更改为 `host`，并指定实例已关联到的专用主机。

```
Edit-EC2InstancePlacement `
    -InstanceId i-1234567890abcdef0 `
    -Affinity host `
    -Tenancy host `
    -HostId h-012a3456b7890cdef
```

------

# 释放 Amazon EC2 专属主机
<a name="dedicated-hosts-releasing"></a>

如果您不再需要某个专属主机，则可以停止在该主机上运行的实例，指示实例在另一主机上启动，然后*释放*该主机。

必须先停止专用主机上运行的所有实例，然后才能释放主机。这些实例可以迁移至您账户的其他专用主机，这样您就可以继续使用它们。这些步骤只适用于按需专用主机。

------
#### [ Console ]

**释放专用主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 在**专用主机**页面上，选择要释放的专用主机。

1. 依次选择 **Actions (操作)**、**Release host (释放主机)**。

1. 选择 **Release (释放)** 确认。

------
#### [ AWS CLI ]

**释放专用主机**  
使用 [release-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/release-hosts.html) 命令。

```
aws ec2 release-hosts --host-ids h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**释放专用主机**  
使用 [Remove-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Host.html) cmdlet。

```
Remove-EC2Host -HostId h-012a3456b7890cdef
```

------

在释放专用主机后，您无法再次重新使用同一主机或主机 ID，并将不再根据按需账单费率向您收费。专用主机的状态将变为 `released`，您将无法在该主机上启动任何实例。

**注意**  
如果您是刚刚释放的专用主机，则系统可能需要过一些时间才会停止将其计入限制。如果您在这段时间内尝试分配新的专用主机，可能会遇到 `LimitExceeded` 错误。如果出现这种情况，请在几分钟后再次尝试分配新的主机。

已停止的实例仍可以使用和列在 **Instances** 页面上。这些实例将保留其 `host` 租赁设置。

# 迁移到基于 Nitro 的 Amazon EC2 专属主机
<a name="dh-migrate"></a>

Nitro 系统是由 AWS 打造的硬件和软件组件集合，可实现高性能、高可用性和高安全性。与基于 Xen 的专属主机相比，基于 Nitro 的专属主机具有更高的性价比。如果您的账户中有任何基于 Xen 的专属主机，我们建议您将工作负载迁移到基于 Nitro 的专属主机。有关更多信息，请参阅 [AWS Nitro 系统](https://aws.amazon.com/ec2/nitro/)。

要从基于 Xen 的专属主机迁移到基于 Nitro 的专属主机，需要将专属主机上基于 Xen 的实例迁移到基于 Nitro 的实例类型，分配新的基于 Nitro 的专属主机，然后将迁移的基于 Nitro 的实例移动到基于 Nitro 的新专属主机。

本主题提供了从基于 Xen 的专属主机迁移到基于 Nitro 的专属主机的详细步骤。

**Topics**
+ [步骤 1：确定基于 Xen 的专属主机](#identify-xen-hosts)
+ [步骤 2：将基于 Xen 的实例迁移到基于 Nitro 的实例类型](#migrate-dh-instances)
+ [步骤 3：分配基于 Nitro 的专属主机](#allocate-nitro-host)
+ [步骤 4：将迁移的实例移动至新的基于 Nitro 的专属主机](#move-instances)
+ [步骤 5：释放未使用的基于 Xen 的专属主机](#release-xen-instances)

## 步骤 1：确定基于 Xen 的专属主机
<a name="identify-xen-hosts"></a>

以下专属主机基于 Xen，有资格迁移到基于 Nitro 的专属主机。
+ **通用型：**M3 \$1 M4
+ **计算优化型：**C3 \$1 C4
+ **内存优化型**：R3 \$1 R4 \$1 X1 \$1 X1e
+ **存储优化型**：D2 \$1 H1 \$1 I2 \$1 I3
+ **加速计算型**：F1 \$1 G3 \$1 P2 \$1 P3

**检查您的账户中是否有基于 Xen 的专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专属主机**。

1. 在**搜索字段**中，使用**实例系列**筛选条件搜索上述基于 Xen 的专属主机。例如，*实例系列 = m3*。

## 步骤 2：将基于 Xen 的实例迁移到基于 Nitro 的实例类型
<a name="migrate-dh-instances"></a>

在基于 Xen 的专属主机上运行的实例也基于 Xen。必须先将这些实例迁移到基于 Nitro 的实例类型，然后才能将其移动至基于 Nitro 的专属主机。

**重要**  
在开始迁移实例之前，我们建议您对数据进行备份。有关更多信息，请参阅 [Create multi-volume Amazon EBS snapshots from an Amazon EC2 instance](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-create-snapshots.html)。

**查找在基于 Xen 的专属主机上运行的实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专属主机**。

1. 选择要迁移的基于 Xen 的主机，然后选择**正在运行的实例**选项卡。该选项卡列出了在选定主机上运行的所有实例。

要迁移 **Linux 实例**，请参阅[Amazon EC2 实例类型更改](ec2-instance-resize.md)。

要迁移 **Windows 实例**，请参阅[将 EC2 Windows 实例迁移到基于 Nitro 的实例类型](migrating-latest-types.md)。

**注意**  
确保将您的实例迁移到与您打算迁移到的基于 Nitro 的专属主机相匹配的实例类型。例如，如果您打算迁移到 M7i 专属主机，请确保将实例迁移到 M7i 实例类型。

## 步骤 3：分配基于 Nitro 的专属主机
<a name="allocate-nitro-host"></a>

**查找支持的基于 Nitro 的专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**实例类型**。

1. 应用以下筛选条件：
   + *虚拟机监控程序 = nitro*
   + *专属主机支持 = true*

找到合适的基于 Nitro 的实例类型后，请[分配新的专属主机](dedicated-hosts-allocating.md)。

## 步骤 4：将迁移的实例移动至新的基于 Nitro 的专属主机
<a name="move-instances"></a>

分配基于 Nitro 的专属主机且主机状态变为 `available` 后，您可以将之前迁移到基于 Nitro 的实例类型的实例移动至新专属主机。

**将您的实例移动至基于 Nitro 的新专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**实例**。

1. 选择您迁移的实例，然后依次选择**操作**、**实例设置**、**修改实例置放**。

1. 对于**目标专属主机**，选择基于 Nitro 的新专属主机，然后选择**保存**。

1. 重新启动实例。选择实例，然后依次选择**实例状态**、**开始实例**。

## 步骤 5：释放未使用的基于 Xen 的专属主机
<a name="release-xen-instances"></a>

将工作负载从基于 Xen 的专属主机迁移到基于 Nitro 的新专属主机后，如果您不再需要它，则可以[释放基于 Xen 的专属主机](dedicated-hosts-releasing.md)。

## 购买专属主机预留，享受专属主机账单折扣
<a name="purchasing-dedicated-host-reservations"></a>

与按需专属主机定价相比，专属主机预留可提供高达 70% 的折扣。您的账户中必须分配活动的专属主机，然后才能购买专属主机预留。有关更多信息，请参阅 [Dedicated Host Reservations](dedicated-hosts-billing.md#dedicated-host-reservations)。

------
#### [ Console ]

**购买预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择 **专用主机**、**专用主机预留** 和 **Purchase 专用主机预留 (购买专用主机预留)**。

1. 在**查找产品**屏幕上，执行以下操作：

   1. 对于**实例系列**，选择要为其购买专属主机预留的专属主机实例系列。

   1. 对于**付款选项**，选择并配置您的首选付款选项。

1. 选择**下一步**。

1. 选择要与专属主机预留关联的专属主机，然后选择**下一步**。

1. （*可选*）为专属主机预留分配标签。

1. 审核您的订单，然后选择**购买**。

------
#### [ AWS CLI ]

**购买预留**

1. 使用 [describe-host-reservation-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-host-reservation-offerings.html) 命令列出符合您需求的可用服务产品。以下示例列出了支持 `m4` 实例系列中的实例并具有一年期限的服务产品。

   期限以秒为单位指定。一年期限包括 31536000 秒，三年期限包括 94608000 秒。

   ```
   aws ec2 describe-host-reservation-offerings \
       --filter Name=instance-family,Values=m4 \
       --max-duration 31536000
   ```

   这条命令会返回符合您条件的服务产品的列表。记下要购买的服务或产品的 ID。

1. 使用 [purchase-host-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-host-reservation.html) 命令购买服务产品并提供上一步中提到的 `offeringId`。以下示例购买指定的预留，并将其与AWS账户中已分配的特定专用主机关联，同时还应用具有键 `purpose` 和值 `production` 的标签。

   ```
   aws ec2 purchase-host-reservation \
       --offering-id hro-03f707bf363b6b324 \
       --host-id-set h-013abcd2a00cbd123 \
       --tag-specifications 'ResourceType=host-reservation,Tags={Key=purpose,Value=production}'
   ```

------
#### [ PowerShell ]

**购买预留**

1. 使用 [Get-EC2HostReservationOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2HostReservationOffering.html) cmdlet 列出符合需求的可用服务和产品。以下示例列出了支持 `m5` 实例系列中的实例并具有一年期限的产品。

   期限以秒为单位指定。一年期限包括 31536000 秒，三年期限包括 94608000 秒。

   ```
   $filter = @{Name="instance-family"; Values="m5"}
   Get-EC2HostReservationOffering `
       -Filter $filter `
       -MaxDuration 31536000
   ```

   这条命令会返回符合您条件的服务产品的列表。记下要购买的服务或产品的 ID。

1. 使用 [New-EC2HostReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2HostReservation.html) cmdlet 购买服务和产品并提供上一步中记下的服务和产品 ID。以下示例购买指定的预留，并将其与AWS账户中已分配的特定专用主机关联。

   ```
   New-EC2HostReservation `
       -OfferingId hro-03f707bf363b6b324 `
       -HostIdSet h-013abcd2a00cbd123
   ```

------

# 跨账户 Amazon EC2 专属主机共享
<a name="dh-sharing"></a>

专用主机共享使专用主机拥有者能够与其他AWS账户或在AWS组织内共享其专用主机。这使您能够集中创建和管理专用主机，并跨多个AWS账户或在AWS组织内共享专用主机。

在此模型中，拥有专用主机的AWS账户（*拥有者*）将与其他AWS账户（*使用者*）共享它。使用者可以在与其共享的专用主机上启动实例，所用方式与他们在自己的账户中分配的专用主机上启动实例的方式相同。拥有者负责管理专用主机以及在其上启动的实例。拥有者无法修改使用者在共享的专用主机上启动的实例。使用者负责管理在与其共享的专用主机上启动的实例。使用者无法查看或修改其他使用者或专用主机拥有者所拥有的实例，也无法修改与其共享的专用主机。

专用主机拥有者可与以下对象共享专用主机：
+ 其 AWS 组织内部或外部的特定 AWS 账户
+ 其 AWS 组织内的组织部门
+ 其整个 AWS 组织

**Topics**
+ [共享专用主机的先决条件](#dh-sharing-prereq)
+ [共享专用主机的限制](#dh-sharing-limitation)
+ [相关服务](#dh-sharing-related)
+ [跨可用区共享](#dh-sharing-azs)
+ [共享的专用主机权限](#shared-dh-perms)
+ [计费和计量](#shared-dh-billing)
+ [专用主机限制](#shared-dh-limits)
+ [主机恢复和专用主机共享](#dh-sharing-retirement)
+ [共享 专用主机](sharing-dh.md)
+ [取消共享专属主机](unsharing-dh.md)
+ [查看共享的专属主机](identifying-shared-dh.md)

## 共享专用主机的先决条件
<a name="dh-sharing-prereq"></a>
+ 要共享专用主机，您必须在您的AWS账户中拥有它。您无法共享已与您共享的专用主机。
+ 要与您的AWS组织或AWS组织内的组织部门共享专用主机，您必须允许与 AWS Organizations 共享。有关更多信息，请参阅 *AWS RAM 用户指南*中的[允许与 AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) 共享。

## 共享专用主机的限制
<a name="dh-sharing-limitation"></a>

您无法共享已为以下实例类型分配的专用主机：`u-6tb1.metal`、`u-9tb1.metal`、`u-12tb1.metal`、`u-18tb1.metal` 和 `u-24tb1.metal`。

## 相关服务
<a name="dh-sharing-related"></a>

### AWS Resource Access Manager
<a name="related-ram"></a>

专用主机共享与 AWS Resource Access Manager (AWS RAM) 集成。AWS RAM 是一项服务，允许您与任何AWS账户或通过 AWS Organizations 共享AWS资源。利用 AWS RAM，您可通过创建*资源共享*来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者可以是单个 AWS 账户或 AWS Organizations 中的组织部门或整个组织。

AWS RAM有关 * 的更多信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/) 用户指南*。

## 跨可用区共享
<a name="dh-sharing-azs"></a>

为确保资源分配到区域的各可用区，我们将可用区独立映射到每个账户的名称。这可能会导致账户之间的可用区命名差异。例如，您的 `us-east-1a` 账户的可用区 AWS 可能与另一 `us-east-1a` 账户的 AWS 不在同一位置。

要确定专用主机相对于账户的位置，您必须使用*可用区 ID* (AZ ID)。可用区 ID 是跨所有 AWS 账户的可用区的唯一且一致的标识符。例如，`use1-az1` 是 `us-east-1` 区域的可用区 ID，它在每个 AWS 账户中的位置均相同。

**查看账户中的可用区的可用区 ID**

1. 打开 AWS RAM 控制台 ([https://console.aws.amazon.com/ram/home](https://console.aws.amazon.com/ram/home))。

1. 当前区域的可用区 ID 显示在屏幕右侧的 **Your AZ ID (您的 AZ ID)** 面板中。

## 共享的专用主机权限
<a name="shared-dh-perms"></a>

### 拥有者的权限
<a name="shared-dh-perms-owner"></a>

拥有者负责管理其共享的专用主机以及在专用主机上启动的实例。拥有者可以查看在共享专用主机上运行的所有实例，包括使用者启动的实例。但是，拥有者不能对使用者启动的正在运行的实例采取任何操作。

### 使用者的权限
<a name="shared-dh-perms-consumer"></a>

使用者负责管理他们在共享的专用主机上启动的实例。使用者不能以任何方式修改共享的专用主机，也不能查看或修改由其他使用者或专用主机拥有者启动的实例。

## 计费和计量
<a name="shared-dh-billing"></a>

共享专用主机不会产生额外的费用。

拥有者需要为他们共享的专用主机付费。使用者不需要为他们在共享的专用主机上启动的实例付费。

专用主机预留继续为共享的专用主机提供账单折扣。只有专用主机拥有者可以为他们拥有的共享专用主机购买专用主机预留。

## 专用主机限制
<a name="shared-dh-limits"></a>

共享的专用主机仅计入拥有者的专用主机限制。使用者的专用主机限制不受已与他们共享的专用主机的影响。同样，使用者在共享的专用主机上启动的实例不计入其实例限制。

## 主机恢复和专用主机共享
<a name="dh-sharing-retirement"></a>

主机恢复可恢复由专用主机拥有者以及与之共享专用主机的使用者启动的实例。将替换专用主机分配给拥有者的账户。它会添加到与原始专用主机相同的资源共享，并与相同的使用者共享。

有关更多信息，请参阅 [Amazon EC2 专属主机恢复](dedicated-hosts-recovery.md)。

# 跨 AWS 账户共享 Amazon EC2 专属主机
<a name="sharing-dh"></a>

当所有者共享专用主机时，它允许使用者在主机上启动实例。使用者可以在共享主机上启动其可用容量允许的任意数量的实例。

**重要**  
请注意，您有责任确保您具有相应的许可权利，以便在专用主机上共享任何 BYOL 许可证。

如果您共享启用了自动放置的专用主机，请记住以下内容，因为它可能导致意外的专用主机使用：
+ 如果使用者启动具有专用主机租赁的实例，但他们的账户中拥有的专用主机上没有容量，则会自动在共享的专用主机上启动实例。

要共享专用主机，您必须将它添加到资源共享。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。资源共享指定要共享的资源以及与之共享资源的使用者。您可以将专用主机添加到现有资源，也可以将其添加到新的资源共享。

如果您是 AWS Organizations 中某组织的一部分并且已在您的组织中启用共享，组织中的使用者将自动获得对共享的专用主机的访问权限。否则，使用者会收到加入资源共享的邀请，并在接受邀请后获得对共享专用主机的访问权限。

**注意**  
共享专用主机后，使用者可能需要几分钟的时间才能访问它。

------
#### [ Console ]

**使用 Amazon EC2 控制台共享您拥有的专用主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 选择要共享的专用主机，然后选择**操作**、**共享主机**。

1. 选择要将专用主机添加到的资源共享，然后选择**共享主机**。

   使用者可能需要几分钟的时间才能访问共享主机。

**使用 AWS RAM 控制台共享您拥有的专用主机**  
请参阅《AWS RAM 用户指南》中的 [Create a resource share](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)**。

------
#### [ AWS CLI ]

**共享您拥有的专属主机**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

```
aws ram create-resource-share \
    --name my-resource-share \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:dedicated-host/h-07879acf49EXAMPLE
```

------
#### [ PowerShell ]

**共享您拥有的专属主机**  
使用 [New-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/New-RAMResourceShare.html) cmdlet。

```
New-RAMResourceShare `
    -Name my-resource-share `
    -ResourceArn arn:aws:ec2:us-east-2:123456789012:dedicated-host/h-07879acf49EXAMPLE
```

------

# 取消共享与其他 AWS 账户共享的专属主机
<a name="unsharing-dh"></a>

专用主机拥有者可以随时将共享的专用主机取消共享。在将共享的专用主机取消共享时，以下规则将适用：
+ 与之共享专用主机的使用者不再能够在专用主机上启动新实例。
+ 取消共享时在专用主机上运行的使用者所拥有的实例将继续运行，但计划[停用](schedevents_actions_retire.md)。消费者将收到实例的停用通知，他们有两周时间对通知采取措施。但是，如果在停用通知期内与使用者重新共享专用主机，则将取消实例停用。

要取消共享您拥有的已共享专用主机，必须从资源共享中将其删除。

------
#### [ Console ]

**取消共享您拥有的共享专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 选择要取消共享的专用主机，然后选择**共享**选项卡。

1. **共享**选项卡列出了已将专用主机添加到的资源共享。选择要从中删除专用主机的资源共享，然后选择**从资源共享中删除主机**。

**使用 AWS RAM 控制台取消共享您拥有的已共享专用主机**  
请参阅《AWS RAM 用户指南》**中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。

------
#### [ AWS CLI ]

**取消共享您拥有的共享专属主机**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

```
aws ram disassociate-resource-share \
    --resource-share-arn arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE \
	--resource-arns arn:aws:ec2:us-east-2:123456789012:dedicated-host/h-07879acf49EXAMPLE
```

------
#### [ PowerShell ]

**取消共享您拥有的共享专属主机**  
使用 [Disconnect-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/Disconnect-RAMResourceShare.html) cmdlet。

```
Disconnect-RAMResourceShare `
    -ResourceShareArn "arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE" `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:dedicated-host/h-07879acf49EXAMPLE"
```

------

# 查看您 AWS 账户中共享的 Amazon EC2 专属主机
<a name="identifying-shared-dh"></a>

您可以查看与其他账户共享的专属主机以及与您共享的专属主机。如果您拥有专属主机，则可以查看在主机上运行的所有实例，包括使用者启动的实例。如果专属主机是与您共享的，则只能看到您在共享主机上启动的实例，而不能看到其他使用者启动的实例。

拥有者和使用者可以使用以下方法之一标识共享的专用主机。

------
#### [ Console ]

**识别共享专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。屏幕列出了您拥有的专用主机以及与您共享的专用主机。

1. **Owner (拥有者)** 列显示专用主机拥有者的AWS账户 ID。

1. 要查看在主机上运行的实例，请选择**实例**选项卡。

------
#### [ AWS CLI ]

**识别共享专属主机**  
可以使用 [describe-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-hosts.html) 命令。该命令返回您拥有的专用主机以及与您共享的专用主机。`Owner` 的值是专属主机所有者的账户 ID。`Instances` 列表会描述在主机上运行的实例。

```
aws ec2 describe-hosts --filter "Name=state,Values=available"
```

------
#### [ PowerShell ]

**识别共享专属主机**  
使用 [Get-EC2host](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Host.html) cmdlet。此 cmdlet 会返回由您拥有的专属主机以及共享给您的专属主机。响应中 `Owner` 的值是专属主机所有者的账户 ID。`Instances` 列表会描述在主机上运行的实例。

```
Get-EC2Host -Filter @{Name="state"; Values="available"}
```

------

# AWS Outposts 上的 Amazon EC2 专属主机
<a name="dh-outposts"></a>

AWS Outposts 是一项完全托管的服务，可将 AWS 基础设施、服务、API 和工具扩展到您的场所。通过提供对 AWS 托管基础设施的本地访问，AWS Outposts 使您能够使用与 AWS 区域中相同的编程接口在本地构建和运行应用程序，同时使用本地计算和存储资源来满足更低的延迟和本地数据处理需求。

Outpost 是部署在客户站点的 AWS 计算和存储容量池。AWS 作为 AWS 区域的一部分运营、监控和管理此容量。

您可以在账户中拥有的 Outposts 站上分配专属主机。这使您可以更轻松地将需要专用物理服务器的现有软件许可证和工作负载构建到 AWS Outposts。您还可以将 Outpost 上的特定硬件资产作为目标，以帮助最大限度地减少工作负载之间的延迟。

专属主机允许您在 Amazon EC2 上使用符合条件的软件许可证，以便您获得使用自己的许可证的灵活性和成本效益。绑定到虚拟机、套接字或物理内核的其他软件许可证也可以在专属主机上使用，但须遵守其许可条款。尽管 Outposts 一直是单租户环境，符合 BYOL 工作负载的条件，但专属主机允许您将所需的许可证限制为单个主机，而不是整个 Outpost 部署。

此外，在 Outpost 上使用专属主机可以提高实例类型部署的灵活性，并更精细地控制实例放置。您可以针对特定主机进行实例启动，并使用主机关联来确保实例始终在该主机上运行，也可以使用自动放置在具有匹配配置和可用容量的任何可用主机上启动实例。

**Contents**
+ [先决条件](#dh-outpost-prereqs)
+ [支持的功能](#dh-outpost-features)
+ [注意事项](#dh-outpost-considerations)
+ [在 AWS Outposts 上分配 Amazon EC2 专属主机](dh-outpost-allocate.md)

## 先决条件
<a name="dh-outpost-prereqs"></a>

您的站点必须安装一个 Outpost。有关更多信息，请参阅 *AWS Outposts 用户指南*中的[创建 Outpost 并订购 Outpost 容量](https://docs.aws.amazon.com/outposts/latest/userguide/order-outpost-capacity.html)。

## 支持的功能
<a name="dh-outpost-features"></a>
+ 支持以下实例系列：
  + **通用型：**M5 \$1 M5d \$1 M7i \$1 M8i
  + **计算优化型：**C5 \$1 C5d \$1 C7i \$1 C8i
  + **内存优化型：**R5 \$1 R5d \$1 R7i \$1 R8i
  + **存储优化型：**I3en
  + **加速型计算：**G4dn
+ Outposts 上的专属主机可以配置为支持多种实例大小。以下实例系列支持多个实例大小：
  + **通用型：**M5 \$1 M5d \$1 M7i
  + **计算优化型：**C5 \$1 C5d \$1 C7i
  + **内存优化型：**R5 \$1 R5d \$1 R7i

  有关更多信息，请参阅 [Amazon EC2 专属主机实例容量配置](dedicated-hosts-limits.md)。
+ Outposts 上的专属主机支持自动放置和目标实例启动。有关更多信息，请参阅 [Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。
+ Outposts 上的专属主机支持主机关联。有关更多信息，请参阅 [Amazon EC2 专属主机自动置放和主机关联](dedicated-hosts-understanding.md)。
+ Outposts 上的专属主机支持与 AWS RAM 共享。有关更多信息，请参阅 [跨账户 Amazon EC2 专属主机共享](dh-sharing.md)。

## 注意事项
<a name="dh-outpost-considerations"></a>
+ Outposts 上不支持专属主机预留。
+ Outposts 上不支持主机资源组和 AWS License Manager。
+ Outposts 上的专属主机不支持可突增的 T3 实例。
+ Outposts 上的专属主机不支持主机恢复。
+ 在 Outposts 上具有专属主机租赁的实例不支持简化的自动恢复操作。

# 在 AWS Outposts 上分配 Amazon EC2 专属主机
<a name="dh-outpost-allocate"></a>

在 Outposts 上分配和使用专属主机的方式与在 AWS 区域中分配和使用专属主机的方式相同。

**先决条件**  
在 Outpost 上创建子网。有关更多信息，请参阅 *AWS Outposts 用户指南*中的[创建子网](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#create-subnet)。

**要在 Outpost 上分配专属主机，请使用以下方法之一：**

------
#### [ Console ]

**使用 AWS Outposts 控制台在 Outpost 上分配专属主机**

1. 打开 AWS Outposts 控制台 ([https://console.aws.amazon.com/outposts/](https://console.aws.amazon.com/outposts/home))。

1. 在导航窗格中，选择 **Outposts**。选择 Outpost，然后依次选择 **Actions**（操作）和 **Allocate Dedicated Host**（分配专属主机）。

1. 根据需要配置专属主机。有关更多信息，请参阅 [分配一台 Amazon EC2 专属主机供您的账户使用](dedicated-hosts-allocating.md)。
**注意**  
**Availability Zone**（可用区）和 **Outpost ARN** 应预先填充所选 Outpost 的可用区和 ARN。

1. 选择 **Allocate**。

**使用 Amazon EC2 控制台在 Outpost 上分配专属主机**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Dedicated Hosts**（专属主机），然后选择 **Allocate Dedicated Host**（分配专属主机）。

1. 对于 **Availability Zone**（可用区），选择与 Outpost 关联的可用区。

1. 对于 **Outpost ARN**，输入 Outpost 的 ARN。

1. 要将 Outpost 上的特定硬件资产作为目标，针对**将 Outpost 上的特定硬件资产作为目标**，选择**启用**。对于要作为目标的每项硬件资产，选择**添加资产 ID**，然后输入硬件资产的 ID。
**注意**  
您为**数量**指定的值必须等于您指定的资产 ID 数。例如，如果您指定 3 个资产 ID，则“数量”也必须为 3。

1. 根据需要配置剩余专属主机设置。有关更多信息，请参阅 [分配一台 Amazon EC2 专属主机供您的账户使用](dedicated-hosts-allocating.md)。

1. 选择 **Allocate**。

------
#### [ AWS CLI ]

**在 Outpost 上分配专属主机**  
使用 [allocate-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/allocate-hosts.html) 命令。对于 `--availability-zone`，指定与 Outpost 关联的可用区。对于 `--outpost-arn`，指定 Outpost 的 ARN。（可选）对于 `--asset-ids`，指定要作为目标的 Outpost 硬件资产的 ID。

```
aws ec2 allocate-hosts \
    --availability-zone "us-east-1a" \
    --outpost-arn "arn:aws:outposts:us-east-1a:111122223333:outpost/op-4fe3dc21baEXAMPLE" \
    --asset-ids asset_id \
    --instance-family "m5" \
    --auto-placement "off" \
    --quantity 1
```

------
#### [ PowerShell ]

**在 Outpost 上分配专属主机**  
使用 [New-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Host.html) cmdlet。指定与 Outpost 关联的可用区。（可选）对于 `-AssetId`，指定要作为目标的 Outpost 硬件资产的 ID。

```
New-EC2Host `
    -AvailabilityZone "us-east-1a" `
    -OutpostArn "arn:aws:outposts:us-east-1a:111122223333:outpost/op-4fe3dc21baEXAMPLE" `
    -AssetId asset_id `
    -InstanceFamily "m5" `
    -AutoPlacement "off" `
    -Quantity 1
```

------

**在 Outpost 上将专属主机启动到实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。选择您在上一步中分配的专属主机，然后依次选择 **Actions**（操作）和 **Launch instance onto host**（在主机上启动实例）。

1. 根据需要配置实例，然后启动实例。有关更多信息，请参阅 [在 Amazon EC2 专属主机上启动 Amazon EC2 实例](launching-dedicated-hosts-instances.md)。

# Amazon EC2 专属主机恢复
<a name="dedicated-hosts-recovery"></a>

如果在专属主机上检测到具有特定问题的条件，专属主机恢复自动在新的替换主机上重新启动实例。主机恢复减少了人工干预的需求，并降低了发生关于系统电源或网络连接的意外专属主机故障时的运营负担。其它专属主机问题需要进行手动干预才能从中恢复。

**Topics**
+ [主机恢复的工作原理](dedicated-hosts-recovery-basics.md)
+ [支持的实例类型](#dedicated-hosts-recovery-instances)
+ [定价](#dedicated-hosts-recovery-pricing)
+ [管理主机恢复](dedicated-hosts-recovery-enable.md)
+ [查看主机恢复设置](dedicated-hosts-recovery-view.md)
+ [手动恢复不支持的实例](dedicated-hosts-recovery-unsupported.md)

# Amazon EC2 专属主机恢复功能的工作原理
<a name="dedicated-hosts-recovery-basics"></a>

专属主机和主机资源组恢复程序使用主机级运行状况检查以评估专用主机可用性，以及检测基本系统故障。专属主机故障的类型决定了专属主机能否自动恢复。可能导致主机级运行状况检查失败的问题示例包括：
+ 网络连接丢失
+ 系统电源损耗
+ 物理主机上的硬件或软件问题

**重要**  
主机计划停用后，专属主机将无法自动恢复。

## 专属主机自动恢复
<a name="dedicated-hosts-recovery-basics-auto-recovery"></a>

在专属主机上检测到系统电源或网络连接故障时，将启动专属主机自动恢复，并且 Amazon EC2 **自动在与原始专属主机相同的可用区中分配一个替换专属主机**。替换专用主机收到新的主机 ID，但保留与原始专用主机相同的属性，包括：
+ 可用区
+ 实例类型
+ 标签
+ 自动置放设置
+ 预留

在分配替换专属主机时，**实例将恢复到替换专属主机上**。恢复的实例保留与原始实例相同的属性，包括：
+ 实例 ID
+ 私有 IP 地址
+ 弹性 IP 地址
+ EBS 卷附加
+ 所有实例元数据

此外，与 AWS License Manager 的内置集成自动跟踪和管理您的许可证。

**注意**  
仅在提供了 AWS License Manager 的区域中支持 AWS License Manager 集成。

如果实例与受损专用主机之间具有主机关联关系，恢复的实例将与替换专用主机建立主机关联。

在所有实例已恢复到替换专用主机时，**将释放受损专用主机**并且替换专用主机变为可用。

在启动了主机恢复时，将通过电子邮件和 AWS 事件通知 AWS Health Dashboard 账户所有者。在成功完成主机恢复后，将发送第二个通知。

如果使用 AWS License Manager 跟踪您的许可证，AWS License Manager 根据许可证配置限制为替换专用主机分配新的许可证。如果由于主机恢复而违反许可证配置的硬限制，则不允许执行恢复过程，并通过 Amazon SNS 通知向您通知主机恢复失败（如果已经为 AWS License Manager 配置了通知设置）。如果由于主机恢复而违反许可证配置的软限制，则允许继续执行恢复，并通过 Amazon SNS 通知向您通知违反了限制。有关更多信息，请参阅 *AWS License Manager 用户指南*中的[使用许可证配置](https://docs.aws.amazon.com/license-manager/latest/userguide/license-configurations.html)和 [License Manager 中的设置](https://docs.aws.amazon.com/license-manager/latest/userguide/settings.html)。

## 主机恢复状态
<a name="dedicated-hosts-recovery-states"></a>

当检测到专用主机故障时，受损专用主机将进入 `under-assessment` 状态，并且所有实例会进入 `impaired` 状态。在处于 `under-assessment` 状态时，您无法在受损的专用主机上启动实例。

在分配替换专用主机后，它进入 `pending` 状态。它保持该状态，直到主机恢复过程完成。在处于 `pending` 状态时，您无法在替换专用主机上启动实例。在恢复过程中，在替换专用主机上恢复的实例保持 `impaired` 状态。

在主机恢复完成后，替换专用主机进入 `available` 状态，并且恢复的实例恢复为 `running` 状态。在进入 `available` 状态后，您可以在替换专用主机上启动实例。将永久释放原始受损专用主机，并且它进入 `released-permanent-failure` 状态。

如果受损专属主机具有不支持主机恢复的实例（例如，具有实例存储根卷的实例），则不会释放该专属主机。相反，它标记为停用并进入 `permanent-failure` 状态。

## 专属主机无法自动恢复的场景
<a name="dedicated-hosts-recovery-basics-non-auto"></a>

**主机计划停用后，专属主机将无法自动恢复**。您将在 AWS Health Dashboard 中收到停用通知、Amazon CloudWatch 活动以及 AWS 账户所有者的电子邮件地址会收到有关专属主机故障的消息。在指定的时间段内，按照停用通知中所述的纠正步骤手动恢复停用主机上的实例。

**停止的实例不会恢复**到替换专用主机上。如果您尝试启动将受损专用主机作为目标的停止实例，实例启动将失败。我们建议您修改停止的实例以将不同的专用主机作为目标，或者在任何可用的专用主机上启动并启用匹配的配置和自动置放。

**具有实例存储的实例不会恢复**到替换专用主机上。作为一项纠正措施，将受损专用主机标记为停用，并且您在主机恢复完成后收到停用通知。在指定的时间段内，按照停用通知中所述的纠正步骤手动恢复受损专用主机上的其余实例。

## 支持的实例类型
<a name="dedicated-hosts-recovery-instances"></a>

以下实例系列支持主机恢复：
+ **通用型：**A1 \$1 M3 \$1 M4 \$1 M5 \$1 M5n \$1 M5zn \$1 M6a \$1 M6g \$1 M6i \$1 T3 \$1 Mac1 \$1 Mac2 \$1 Mac2-m1ultra \$1 Mac2-m2 \$1 Mac2-m2pro
+ **计算优化型：**C3 \$1 C4 \$1 C5 \$1 C5n \$1 C6a \$1 C6g \$1 C6i
+ **内存优化型：**R3 \$1 R4 \$1 R5 \$1 R5b \$1 R5n \$1 R6g \$1 R6i \$1 U-6tb1 \$1 U-9tb1 \$1 U-12tb1 \$1 U-18tb1 \$1 U-24tb1 \$1 X1 \$1 X1e \$1 X2iezn
+ **加速计算型：**Inf1 \$1 G3 \$1 G5g \$1 P2 \$1 P3

要恢复不支持的实例，请参阅[手动恢复 Amazon EC2 专属主机恢复不支持的实例](dedicated-hosts-recovery-unsupported.md)。

**注意**  
与非裸机实例类型相比，受支持的裸机实例类型的专属主机的自动恢复将需要更长时间来进行检测和恢复。

## 定价
<a name="dedicated-hosts-recovery-pricing"></a>

使用主机恢复不会收取额外的费用，但会收取正常的专用主机费用。有关更多信息，请参阅 [Amazon EC2 专用主机定价](https://aws.amazon.com/ec2/dedicated-hosts/pricing/)。

一旦启动了主机恢复，将不再对受损专用主机计费。仅在进入 `available` 状态后，才会开始对替换专用主机计费。

如果使用按需费率对受损专用主机进行计费，还会使用按需费率对替换专用主机进行计费。如果受损专用主机具有有效专用主机预留，则会将其转移到替换专用主机。

# 管理 Amazon EC2 专属主机恢复
<a name="dedicated-hosts-recovery-enable"></a>

如果在专属主机上检测到具有特定问题的条件，专属主机恢复自动在新的替换主机上重新启动实例。您可以在分配专属主机时或分配后启用主机恢复。

分配主机时，请使用以下过程启用主机恢复。

------
#### [ Console ]

**在分配时启用主机恢复**  
使用 Amazon EC2 控制台分配专属主机时，对于**主机恢复**，请选择**启用**。有关更多信息，请参阅 [分配一台 Amazon EC2 专属主机供您的账户使用](dedicated-hosts-allocating.md)。

------
#### [ AWS CLI ]

**在分配时启用主机恢复**  
使用 [allocate-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/allocate-hosts.html) 命令。

```
aws ec2 allocate-hosts \
    --instance-type m5.large \
    --availability-zone eu-west-1a \
    --auto-placement on \
    --host-recovery on \
    --quantity 1
```

------
#### [ PowerShell ]

**在分配时启用主机恢复**  
使用 [New-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Host.html) cmdlet。

```
New-EC2Host `
    -InstanceType m5.large `
    -AvailabilityZone eu-west-1a `
    -AutoPlacement on `
    -HostRecovery on `
    -Quantity 1
```

------

使用以下过程管理专属主机的主机恢复。

------
#### [ Console ]

**在分配后管理主机恢复**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 选择专属主机。

1. 依次选择**操作**和**修改主机**。

1. 对于**主机恢复**，请选择或清除**启用**。

1. 选择**保存**。

------
#### [ AWS CLI ]

**在分配后启用主机恢复**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令。

```
aws ec2 modify-hosts \
    --host-recovery on \
    --host-ids h-012a3456b7890cdef
```

**在分配后禁用主机恢复**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令并指定 `host-recovery` 参数的值为 `off`。

```
aws ec2 modify-hosts \
    --host-recovery off \
    --host-ids h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**在分配后启用主机恢复**  
使用 [Edit-Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

```
Edit-EC2Host `
    -HostRecovery on `
    -HostId h-012a3456b7890cdef
```

**在分配后禁用主机恢复**  
使用 [Edit-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

```
Edit-EC2Host `
    -HostRecovery off `
    -HostId h-012a3456b7890cdef
```

------

# 查看 Amazon EC2 专属主机的主机恢复设置
<a name="dedicated-hosts-recovery-view"></a>

您可以随时查看专用主机的主机恢复配置。

------
#### [ Console ]

**查看专属主机的主机恢复配置**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 选择专用主机，然后在**描述**选项卡中查看**主机恢复**字段。

------
#### [ AWS CLI ]

**查看专属主机的主机恢复配置**  
可以使用 [describe-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-hosts.html) 命令。

```
aws ec2 describe-hosts \
    --host-ids h-012a3456b7890cdef \
    --query Hosts[].HostRecovery
```

下面是示例输出。

```
on
```

------
#### [ PowerShell ]

**查看专属主机的主机恢复配置**  
使用 [Get-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Host.html) cmdlet。

```
(Get-EC2Host -HostId h-012a3456b7890cdef).Hosts | Select HostRecovery
```

下面是示例输出。

```
HostRecovery
------------
on
```

------

# 手动恢复 Amazon EC2 专属主机恢复不支持的实例
<a name="dedicated-hosts-recovery-unsupported"></a>

主机恢复不支持恢复使用实例存储卷的实例。请按照以下说明手动恢复无法自动恢复的任何实例。

**警告**  
在您停止、休眠或终止实例后，实例存储卷上的数据将会丢失。这包括附加到具有 EBS 根卷的实例的实例存储卷。要保护实例存储卷中的数据，请在停止或终止实例之前将其备份到持久性存储中。

## 手动恢复 EBS 支持的实例
<a name="dedicated-hosts-recovery-ebs"></a>

对于无法自动恢复的 EBS 支持的实例，我们建议您手动停止并启动实例以将其恢复到新的专用主机上。有关停止实例以及在停止实例后对实例配置进行的更改的更多信息，请参阅[启动和停止 Amazon EC2 实例](Stop_Start.md)。

## 手动恢复具有实例存储根卷的实例
<a name="dedicated-hosts-recovery-instancestore"></a>

有关无法自动恢复的具有实例存储根卷的实例，我们建议您执行以下操作：

1. 在新的专用主机上从最新的 AMI 中启动替换实例。

1. 将所需的所有数据迁移到替换实例中。

1. 终止受损专用主机上的原始实例。

# Amazon EC2 专属主机的主机维护
<a name="dedicated-hosts-maintenance"></a>

使用主机维护功能时，如果出现专属主机降级的极少见情况，我们会自动将该主机上运行的受支持实例迁移到运行正常的替代专属主机上。这有助于尽可能减少工作负载的停机时间，并简化专属主机的管理。此外，还会针对计划内和例行的 Amazon EC2 维护，执行主机维护。

Amazon EC2 支持两种类型的主机维护：
+ **实时迁移主机维护** – 实例将在 24 小时内自动迁移到替换主机，而无需停止和重新启动实例。
+ **基于重启的主机维护** – 将实例列入*实例重启*计划事件，实例将在该计划事件期间自动停止并在替换主机上重新启动。

**Topics**
+ [主机维护与主机恢复](#dedicated-hosts-maintenance-differences)
+ [注意事项](#dedicated-hosts-maintenance-basics-limitations)
+ [相关服务](#dedicated-hosts-maintenance-related)
+ [定价](#dedicated-hosts-maintenance-pricing)
+ [Amazon EC2 专属主机的主机维护工作原理](dedicated-hosts-maintenance-basics.md)
+ [配置 Amazon EC2 专属主机的主机维护设置](dedicated-hosts-maintenance-configuring.md)

## 主机维护与主机恢复
<a name="dedicated-hosts-maintenance-differences"></a>

下表显示了主机恢复与主机维护之间的主要区别。


****  

|  | 主机恢复 | 主机维护 | 
| --- | --- | --- | 
| 实例的可连接性 | 无法访问 | 可以访问 | 
| 专属主机状态 | under-assessment | permanent-failure | 
| 主机资源组 | 支持 | 不支持 | 

有关主机恢复的更多信息，请参阅[主机恢复](dedicated-hosts-recovery.md)。

## 注意事项
<a name="dedicated-hosts-maintenance-basics-limitations"></a>
+ 主机维护功能已在除中国区域和 AWS GovCloud (US) Regions 的所有 AWS 区域 开放。
+ AWS Outposts、AWS Local Zone 和 AWS Wavelength Zone 不支持主机维护。
+ 无法为已经位于主机资源组中的主机开启或关闭主机维护。添加到主机资源组的主机保留其主机维护设置。有关更多信息，请参阅[主机资源组](https://docs.aws.amazon.com/license-manager/latest/userguide/host-resource-groups.html)。
+ 以下实例类型具有实例存储根卷，因此不支持主机维护功能：C1、C3、D2、I2、M1、M2、M3、R3 和 X1。

## 相关服务
<a name="dedicated-hosts-maintenance-related"></a>

专属主机与**AWS License Manager** 集成 – 跨 Amazon EC2 专属主机跟踪许可证（仅在提供 AWS License Manager 的区域支持跟踪）。有关更多信息，请参阅 [AWS License Manager 用户指南](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager.html)。

AWS 账户 必须具备足够许可证才能使用新专属主机。在计划事件完成后释放主机时，与性能降级主机关联的许可证也将被释放。

## 定价
<a name="dedicated-hosts-maintenance-pricing"></a>

使用主机维护不会产生额外费用，但会收取正常的专属主机费用。有关更多信息，请参阅 [Amazon EC2 专用主机定价](https://aws.amazon.com/ec2/dedicated-hosts/pricing/)。

启动主机维护后，不再对降级专属主机计费。仅在进入 `available` 状态后，才会开始对替换专属主机计费。

如果降级的专属主机使用按需费率计费，则替换的专属主机也将用按需费率计费。如果降级专属主机具有有效专属主机预留，则会将其转移到新专属主机。

# Amazon EC2 专属主机的主机维护工作原理
<a name="dedicated-hosts-maintenance-basics"></a>

检测到启用了主机维护功能的专属主机性能降级后，我们会自动在您的账户中分配一个替换专属主机。替换专用主机收到新的主机 ID，但保留与原始专用主机相同的属性，包括：
+ 自动置放设置
+ 可用区
+ 专属主机预留关联
+ 主机关联
+ 主机维护设置
+ 主机恢复设置
+ 实例类型
+ 标签

分配替换主机后，我们会使用**实时迁移主机维护**或**基于重启的主机维护**来迁移实例，具体取决于所涉及的实例。

性能降级的主机不再有正在运行的实例后，将会从您的账户中永久释放。

## 实时迁移主机维护
<a name="ndhm"></a>

需要实时迁移主机维护的实例将在 24 小时内自动迁移到替换主机，而无需停止和重新启动实例。迁移后的实例会保留其现有属性，包括：
+ 实例 ID
+ 实例元数据
+ Amazon EBS 卷附加
+ 弹性 IP 地址和私有 IP 地址
+ 内存、CPU 和联网状态

在迁移过程中，一些较大的实例型号可能会出现性能轻微下降的情况。

在实例自动迁移到替换主机后，我们会向您发送电子邮件通知和 AWS Health 控制面板通知，其中包括性能降级主机和替换主机的 ID、有关使用实时迁移主机维护自动迁移的实例的信息以及有关其余实例的信息。

## 基于重启的主机维护
<a name="rbhm"></a>

对于需要重启以进行主机维护的实例，我们会将其列入自通知之日起 14 天内的实例重启计划事件。在计划事件开始之前，您可以继续访问性能降级的专属主机上的实例。

您可以将重启事件调整为距离原始事件日期和时间 7 天以内的任何日期。有关更多信息，请参阅 [重新计划 EC2 实例的计划事件](reschedule-event.md)。

Amazon EC2 会自动在替换主机上为这些实例预留容量。您无法利用此预留容量运行实例。

Amazon EC2 控制台会将预留容量显示为已用容量。可能会出现实例同时在降级主机和替换主机上运行的情况。但是，这些实例在降级主机上继续运行的时间仅截止到它们停止运行，或迁移到替换主机的预留容量中。

当计划事件的日期和时间到来时，实例将会自动停止并利用替换主机上的预留容量重新启动。迁移后的实例会保留其现有属性，包括：
+ 实例 ID
+ 实例元数据
+ Amazon EBS 卷附加
+ 弹性 IP 地址和私有 IP 地址

但是，由于迁移期间会停止并重新启动实例，因此不会保留实例的内存、CPU 和联网状态。

您也可以在计划事件开始之前随时手动停止并重启这些实例，以将其迁移到替换主机或其他主机。您可能需要修改实例的主机关联，才能在其他主机上重启实例。如果您在计划事件开始前停止了实例，则替换主机上的预留容量将被释放并可供使用。

## 主机维护状态
<a name="dedicated-hosts-maintenance-states"></a>

当主机性能降级时，将会进入 `permanent-failure` 状态。您无法在处于 `permanent-failure` 状态的专属主机上启动实例。

分配替换主机后，该主机将一直保持在 `pending` 状态，直到将支持实时迁移主机维护的实例自动从性能降级的主机迁移，并为其余实例计划了计划事件时为止。完成这些操作后，替换主机将进入 `available` 状态。

替换主机进入 `available` 状态后，您可以按照与账户中任何主机相同的方式来使用该主机。但是，替换主机上的某些实例容量是为需要重启以进行主机迁移的实例预留的。您无法利用这些预留容量启动新实例。

性能降级的主机不再有正在运行的实例后，将会进入 `released, permanent-failure` 状态，并且会从您的账户中永久释放。请注意，该主机及其资源在短时间内仍会在控制台上可见。

## 自动迁移
<a name="hm-unsupported"></a>

某些实例无法自动迁移到替换主机。

**采用 EBS 支持的根卷的实例**  
对于此类实例，我们会将其列入自通知之日起 28 天内的实例停止事件。当计划事件的日期和时间到来时，实例将被停止。我们建议您在替换主机或其他主机上手动停止并重启实例。您可能需要修改实例的主机关联，才能在其他主机上重启实例。

**具有实例存储根卷的实例**  
对于此类实例，我们会将其列入自通知之日起 28 天内的实例停用事件。当计划事件的日期和时间到来时，实例将被永久终止。我们建议您在替换主机上手动启动替换实例，然后在计划事件开始之前将所需的数据迁移到替换实例。

以下实例具有实例存储根卷：C1、C3、D2、I2、M1、M2、M3、R3 和 X1。

在计划事件开始之前，您可以继续访问性能降级的专属主机上的实例。

# 配置 Amazon EC2 专属主机的主机维护设置
<a name="dedicated-hosts-maintenance-configuring"></a>

启用主机维护，确保在计划维护事件期间，在专属主机上运行的实例自动恢复到新的专属主机上。

如果禁用主机维护，您会收到一封电子邮件通知，要求在 28 天内驱逐降级主机并将实例手动迁移到另一台主机。如果您有专属主机预留，则会分配替换主机。28 天后，降级主机上运行的实例将终止，主机会自动释放。

------
#### [ Console ]

**为专属主机启用主机维护**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 依次选择专属主机 > **操作** > **修改主机**。

1. 在**主机维护**字段中选择*启用*。

**为专属主机禁用主机维护**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 依次选择专属主机 > **操作** > **修改主机**。

1. 在**主机维护**字段中选择*关闭*。

------
#### [ AWS CLI ]

**为专属主机启用主机维护**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令。

```
aws ec2 modify-hosts \
    --host-maintenance on \
    --host-ids h-0d123456bbf78910d
```

**为专属主机禁用主机维护**  
使用 [modify-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-hosts.html) 命令。

```
aws ec2 modify-hosts \
    --host-maintenance off \
    --host-ids h-0d123456bbf78910d
```

------
#### [ PowerShell ]

**为专属主机启用主机维护**  
使用 [Edit-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

```
Edit-EC2Host `
    -HostMaintenance on `
    -HostId h-0d123456bbf78910d
```

**为专属主机禁用主机维护**  
使用 [Edit-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Host.html) cmdlet。

```
Edit-EC2Host `
    -HostMaintenance off `
    -HostId h-0d123456bbf78910d
```

------

# 监控 Amazon EC2 专属主机的状态
<a name="dedicated-hosts-monitoring"></a>

Amazon EC2 持续监控专用主机的状态。将在 Amazon EC2 控制台上显示更新的状态。您可以使用以下方法查看有关专用主机的信息。

------
#### [ Console ]

**查看专用主机的状态**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**专用主机**。

1. 在列表中找到专用主机，并查看**状态**列中的值。

------
#### [ AWS CLI ]

**查看专用主机的状态**  
可以使用 [describe-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-hosts.html) 命令。

```
aws ec2 describe-hosts --host-id h-012a3456b7890cdef
```

------
#### [ PowerShell ]

**查看专用主机的状态**  
使用 [Get-EC2Host](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Host.html) cmdlet。

```
Get-EC2Host -HostId h-012a3456b7890cdef
```

------

下表说明了可能的专用主机状态。


| **State** | **描述** | 
| --- | --- | 
| available | AWS未检测到专用主机的问题。不会安排维护或修复。实例可在此专用主机上启动。 | 
| released | 已释放专用主机。主机 ID 不再使用。无法重新使用已释放的主机。 | 
| under-assessment | AWS正在寻找专用主机可能存在的问题。如果必须采取措施，系统将通过 AWS 管理控制台或电子邮件通知您。无法在处于该状态的专用主机上启动实例。 | 
| pending | 专属主机不能用于启动新的实例。正在对其进行[修改以支持多种实例类型](modify-host-support.md)，或者正在进行[主机恢复](dedicated-hosts-recovery.md)。 | 
| permanent-failure | 检测到了一个不可恢复的故障。您将通过您的实例和通过电子邮件接收到一个移出通知。实例可能会继续运行。如果在处于此状态的专用主机上停止或终止所有实例，AWS将停用该主机。AWS不会在此状态下重新启动实例。无法在处于该状态的专用主机上启动实例。 | 
| released-permanent-failure | AWS永久释放已发生故障的专用主机，不再在这些主机上运行实例。专用主机 ID 不再可供使用。 | 

# 使用 AWS Config 跟踪 Amazon EC2 专属主机配置更改
<a name="dedicated-hosts-aws-config"></a>

您可以使用 AWS Config 记录专用主机的配置更改，以及记录在主机上启动、停止或终止的实例的配置更改。然后，您可以将由 AWS Config 捕获的信息用作许可证报告的数据源。

AWS Config 分别记录专用主机和实例的配置信息，并通过关系将这些信息配对。具有三种报告条件：
+ **AWS Config 记录状态** – 当其状态为**开启**时，AWS Config 将记录一个或多个 AWS 资源类型，其中可包含专用主机和专用实例。要捕获许可证报告所需的信息，请使用以下字段验证是否记录了主机和实例。
+ **主机记录状态** — 当其状态为**启用**时，将记录专用主机的配置信息。
+ **实例记录状态** — 当其状态为**启用**时，将记录专用实例的配置信息。

如果禁用了这三个条件中的任一个，则 **Edit Config Recording** 按钮中的图标为红色。要发挥此工具的所有优点，请确保这三种记录方法都已启用。当这三种方法全部启用时，图标为绿色。要编辑设置，请选择 **Edit Config Recording**。您将被定向到 AWS Config 控制台中的 **Set up AWS Config** 页面，在该页面中，您可以设置 AWS Config 并启动对您的主机、实例和其他支持的资源类型的记录。有关更多信息，请参阅 *AWS Config 开发人员指南* 中的[使用控制台设置 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html)。

**注意**  
AWS Config 将在发现您的资源后记录它们，此过程可能需要几分钟。

在 AWS Config 开始记录对您的主机和实例的配置更改后，您可以获取已分配或已释放的任何主机以及已启动、已停止或已终止的任何实例的配置历史记录。例如，在专用主机的配置历史记录中的任何时间点上，您均可以查看在该主机上启动的实例的数量以及该主机上的套接字和内核的数量。对于其中的任何实例，您还可以查找其亚马逊机器映像（AMI）的 ID。您可以使用此信息来报告您拥有的服务器端绑定软件 (按插槽或按内核授予许可) 的许可。

您可以使用以下任一方式查看配置历史记录：
+ 通过使用 AWS Config 控制台。对于每个已记录的资源，您可以查看一个时间线页面，该页面提供了配置详细信息的历史记录。要查看此页面，请选择**专用主机**页面的**配置时间线**列中的灰色图标。有关更多信息，请参阅 *AWS Config 开发人员指南* 中的[在 AWS Config 控制台中查看配置详细信息](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource-console.html)。
+ 通过运行 AWS CLI 命令。首先，您可以使用 [list-discovered-resources](https://docs.aws.amazon.com/cli/latest/reference/configservice/list-discovered-resources.html) 命令获取一个包含所有主机和实例的列表。然后，您可以使用 [get-resource-config-history](https://docs.aws.amazon.com/cli/latest/reference/configservice/get-resource-config-history.html#get-resource-config-history) 命令获取特定时间间隔内某个主机或实例的配置详细信息。
+ 通过在您的应用程序中使用 AWS Config API。首先，您可以使用 [ListDiscoveredResources](https://docs.aws.amazon.com/config/latest/APIReference/API_ListDiscoveredResources.html) 操作获取一个包含所有主机和实例的列表。然后，您可以使用 [GetResourceConfigHistory](https://docs.aws.amazon.com/config/latest/APIReference/API_GetResourceConfigHistory.html) 操作获取特定时间间隔内某个主机或实例的配置详细信息。

例如，要从 AWS Config 中获取所有专用主机的列表，请运行 CLI 命令，如下所示。

```
aws configservice list-discovered-resources --resource-type AWS::EC2::Host
```

要从 AWS Config 中获取专用主机的配置历史记录，请运行 CLI 命令，如下所示。

```
aws configservice get-resource-config-history \
    --resource-type AWS::EC2::Instance \
    --resource-id i-1234567890abcdef0
```

**使用控制台管理 AWS Config 设置**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在**专用主机**页面上，选择**编辑配置记录**。

1. 在 AWS Config 控制台中，按照提供的步骤来启用记录。有关更多信息，请参阅[使用控制台设置 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html)。

有关更多信息，请参阅[在 AWS Config 控制台中查看配置详细信息](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource-console.html)。

**使用命令行或 API 激活 AWS Config**
+ AWS CLI：*AWS CLI 开发人员指南* 中的[查看配置详细信息 (AWS Config)](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource-console.html#view-config-details-cli)。
+ Amazon EC2 API：[GetResourceConfigHistory](https://docs.aws.amazon.com/config/latest/APIReference/API_GetResourceConfigHistory.html)。

# Amazon EC2 专用实例
<a name="dedicated-instance"></a>

默认情况下，EC2 实例将在共享租赁硬件上运行。这表示多个 AWS 账户可能会共享相同物理硬件。

专用实例是在专用于单个 AWS 账户的硬件上运行的 EC2 实例。这就表示，专用实例在主机硬件层面与属于其他 AWS 账户 的实例存在物理隔离(即使这些账户都与单个付款人账户相关联也是如此)。不过，专用实例可能与来自同一 AWS 账户但非专用实例的其他实例共享硬件。

专用实例不提供对实例置放的可见性和控制力，也不支持主机关联性。停止专用实例后再启动，它可能不会在同一台主机上运行。同样，您也不能指定特定主机启动或运行该实例。此外，专用实例对自带许可(BYOL)的支持有限。

如果您需要实例置放方面的可见性和控制力，以及更全面的 BYOL 支持，请考虑改用专属主机。专用实例和专属主机均可用于在专用物理服务器上启动 Amazon EC2 实例。专用实例与专属主机上的实例在性能、安全性或物理特性方面没有区别。但是，它们之间也存在一些关键差异。下表重点介绍专用实例和专用主机之间的一些重要区别：


|  | Dedicated Host | Dedicated Instance | 
| --- | --- | --- | 
| 专用的物理服务器 | 实例容量完全供您专用的物理服务器。 | 专供单个客户账户使用的物理服务器。 | 
| 实例容量共享 | 可以与其他账户共享实例容量。 | 不支持 | 
| 计费 | 按主机计费 | 按实例计费 | 
| 套接字、内核和主机 ID 的可见性 | 提供套接字数和物理内核数的可见性 | 无可见性 | 
| 主机和实例关联 | 允许您在一段时间内将您的实例一致地部署到同一物理服务器 | 不支持 | 
| 定向实例置放 | 提供额外可见性以及对在物理服务器上放置实例的方式的控制 | 不支持 | 
| 自动实例恢复 | 支持。有关更多信息，请参阅[Amazon EC2 专属主机恢复](dedicated-hosts-recovery.md)。 | 支持 | 
| 自带许可 (BYOL) | 支持 | 部分支持\$1 | 
| 容量预留 | 不支持 | 支持 | 

\$1 通过软件保障计划提供许可证移动性的 Microsoft SQL Server 和 Windows 虚拟桌面访问 (VDA) 许可证可用于专用实例。

有关更多信息，请参阅 [Amazon EC2 专属主机](dedicated-hosts-overview.md)。

**Topics**
+ [专用实例 基础知识](#dedicated-howitworks)
+ [支持的特征](#features)
+ [专用实例 限制](#dedicated-limits)
+ [专用实例定价](#dedicated-instance-pricing)
+ [启动专用实例](dedicatedinstancesintovpc.md)
+ [更改实例的租期](dedicated-change-tenancy.md)
+ [更改 VPC 的租期](change-tenancy-vpc.md)

## 专用实例 基础知识
<a name="dedicated-howitworks"></a>

VPC 的租赁可以为 `default` 或 `dedicated`。默认情况下，VPC 的租赁将为 `default`，并且在 `default` 租赁 VPC 中启动的实例租赁也为 `default`。要启动专用实例，请执行以下操作：
+ 创建一个租赁为 `dedicated` 的 VPC，从而确保该 VPC 中的所有实例都将作为专用实例运行。有关更多信息，请参阅 [在具有默认租赁的 VPC 中启动专用实例](dedicatedinstancesintovpc.md)。
+ 创建一个租赁为 `default` 的 VPC，然后为要作为专用实例运行的实例手动指定租赁 `dedicated`。有关更多信息，请参阅 [在具有默认租赁的 VPC 中启动专用实例](dedicatedinstancesintovpc.md)。

## 支持的特征
<a name="features"></a>

专用实例支持以下功能和 AWS 服务集成：

**Topics**
+ [预留实例](#dedicatedreservedinstances)
+ [自动扩缩](#dedicated-instance-autoscaling)
+ [自动恢复](#dedicated-instance-recovery)
+ [专用竞价型实例](#dedicated-instance-spot)
+ [具爆发能力的实例](#dedicated-instance-burstable)

### 预留实例
<a name="dedicatedreservedinstances"></a>

要为您的专用实例预留容量，可以购买专用预留实例或容量预留。有关更多信息，请参阅[Amazon EC2 的预留实例概览](ec2-reserved-instances.md)和[使用 EC2 按需容量预留来预留计算容量](ec2-capacity-reservations.md)。

如果购买专用预留实例，则可以按极其优惠的使用费率购买容量来启动专用实例；而这种使用费率价格优惠仅在您使用专用租赁启动实例时才有效。当您购买具有原定设置租赁的预留实例时，它仅适用于具有 `default` 租赁的运行实例；它不适用于具有 `dedicated` 租赁的运行实例。

您在购买Reserved Instance之后将无法使用修改过程来更改其租赁。但是，您可以将可转换预留实例换成具有不同租赁的新可转换预留实例。

### 自动扩缩
<a name="dedicated-instance-autoscaling"></a>

您可以使用 Amazon EC2 Auto Scaling 启动专用实例。有关更多信息，请参阅*Amazon EC2 Auto Scaling 用户指南*中的[使用高级设置创建启动模板](https://docs.aws.amazon.com/autoscaling/ec2/userguide/advanced-settings-for-your-launch-template.html) 。

### 自动恢复
<a name="dedicated-instance-recovery"></a>

如果专用实例因需要 AWS 参与才能修复的基础硬件故障或问题而受损，您可以为它配置自动恢复。有关更多信息，请参阅 [实例自动恢复](ec2-instance-recover.md)。

### 专用竞价型实例
<a name="dedicated-instance-spot"></a>

创建 Spot 实例请求时，您可以通过指定租赁 `dedicated` 来运行专用 Spot 实例。有关更多信息，请参阅 [在单租户硬件上启动](how-spot-instances-work.md#spot-instance-tenancy)。

### 具爆发能力的实例
<a name="dedicated-instance-burstable"></a>

您可以通过[具爆发能力的实例](burstable-performance-instances.md)，利用在专用租赁硬件上运行的优势。默认情况下，T3 专用实例以无限模式启动，提供了基准水平的 CPU 性能，并且在工作负载需要时能够突增到更高的 CPU 性能水平。T3 基准性能和突增能力由 CPU 积分控制。由于 T3 实例类型的可突增性质，我们建议您监控 T3 实例如何使用专用硬件的 CPU 资源，以获得最佳性能。T3 专用实例面向具有多种工作负载的客户，这些工作负载表现出随机 CPU 行为，但理想情况下，平均 CPU 使用率等于或低于基准使用率。有关更多信息，请参阅[可突增性能实例的关键概念](burstable-credits-baseline-concepts.md)。

Amazon EC2 具有识别和纠正性能可变性的系统。但是，如果您启动多个具有关联 CPU 使用模式的 T3 专用实例，仍可能遇到短暂的变化。对于这些要求更高或关联的工作负载，我们建议使用 M5 或 M5a 专用实例，而不是 T3 专用实例。

## 专用实例 限制
<a name="dedicated-limits"></a>

使用专用实例时请记住以下事项：
+ 某些 AWS 服务或其功能不受实例租期设置为 `dedicated` 的 VPC 支持。请参阅各自的服务文档以确认是否存在任何限制。
+ 某些实例类型无法启动至实例租期设置为 `dedicated` 的 VPC 中。有关支持的实例类型的更多信息，请参阅 [Amazon EC2 专用实例](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。
+ 当启动 Amazon EBS 支持的专用实例时，EBS 卷不会在单一租户硬件上运行。

## 专用实例定价
<a name="dedicated-instance-pricing"></a>

专用实例的定价不同于按需实例的定价。有关更多信息，请参阅 [Amazon EC2 专用实例](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。

# 在具有默认租赁的 VPC 中启动专用实例
<a name="dedicatedinstancesintovpc"></a>

当您创建 VPC 时，您可以选择指定它的实例租期。如果在实例租赁为 `dedicated` 的 VPC 中启动实例，则该实例将作为专用实例在专用硬件上运行。

有关启动租期为 `host` 的实例的更多信息，请参阅[在 Amazon EC2 专属主机上启动 Amazon EC2 实例](launching-dedicated-hosts-instances.md)。

有关 VPC 租赁选项的更多信息，请参阅《Amazon VPC 用户指南》中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)**。

**要求**
+ 选择一个受支持的实例类型。有关更多信息，请参阅 [Amazon EC2 专用实例](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。

------
#### [ Console ]

**在默认租赁 VPC 中启动专用实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，依次选择 **Instances**（实例）、**Launch instance**（启动实例）。

1. 在 **Application and OS Images**（应用程序和操作系统镜像）部分中，请从列表中选择一个 AMI。

1. 在 **Instance type**（实例类型）部分中，选择要启动的实例类型。

1. 在 **Key pair**（密钥对）部分中，选择要与实例关联的密钥对。

1. 在 **Advanced details**（高级详细信息）部分中，对于 **Tenancy**（租赁），选择 **Dedicated**（专属）。

1. 根据需要配置其他实例选项。有关更多信息，请参阅 [Amazon EC2 实例配置参数参考](ec2-instance-launch-parameters.md)。

1. 选择**启动实例**。

------
#### [ AWS CLI ]

**在启动过程中设置实例的租赁选项**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令并包含 `Tenancy` 及 `--placement` 选项。

```
--placement Tenancy=dedicated
```

------
#### [ PowerShell ]

**在启动过程中设置实例的租赁选项**  
将 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 与 `-Placement_Tenancy` 参数结合使用。

```
-Placement_Tenancy dedicated
```

------

# 更改 EC2 实例的租赁
<a name="dedicated-change-tenancy"></a>

启动实例后，可以更改已停止实例的租赁属性。您所做的更改将在下次实例开启时生效。

或者，您可以更改虚拟私有云（VPC）的租赁。有关更多信息，请参阅 [更改 VPC 的实例租赁](change-tenancy-vpc.md)。

**限制**
+ 不能使用 AWS 管理控制台更改实例的租赁。
+ 该实例必须处于 `stopped` 状态。
+ 您实例的操作系统详细信息以及是否安装了 SQL Server 会影响支持的转换。有关实例可用的租赁转换路径的更多信息，请参阅《License Manager User Guide》**中的 [Tenancy conversion](https://docs.aws.amazon.com/license-manager/latest/userguide/conversion-tenancy.html)。
+ 对于 T3 实例，您必须在专属主机上启动实例才能使用 `host` 租赁。您不能将租赁从 `host` 更改 `dedicated` 或 `default`。尝试进行这些不受支持的租赁更改会导致 `InvalidRequest` 错误代码。

------
#### [ AWS CLI ]

**修改实例的租赁值**  
使用 [modify-instance-placement](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-placement.html) 命令。

```
aws ec2 modify-instance-placement \
    --instance-id i-1234567890abcdef0 \ 
    --tenancy dedicated
```

------
#### [ PowerShell ]

**修改实例的租赁值**  
使用 [Edit-EC2InstancePlacement](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstancePlacement.html) cmdlet。

```
Edit-EC2InstancePlacement `
    -InstanceId i-1234567890abcdef0 `
    -Tenancy Dedicated
```

------

# 更改 VPC 的实例租赁
<a name="change-tenancy-vpc"></a>

在创建虚拟私有云（VPC）之后，可以将其实例租赁从 `dedicated` 改为 `default`。修改 VPC 的实例租赁不会影响 VPC 中任何现有实例的租赁。下次在 VPC 中启动一个实例时，该实例将具有 `default` 租赁，除非您在实例启动过程中另有指定。

或者，您可以更改特定实例的租赁。有关更多信息，请参阅 [更改 EC2 实例的租赁](dedicated-change-tenancy.md)。

**限制**
+ 在创建 VPC 之后，您无法将其实例租赁从 `default` 更改为 `dedicated`。
+ 不能使用 AWS 管理控制台更改 VPC 的实例租赁。

------
#### [ AWS CLI ]

**修改 VPC 的实例租赁属性**  
使用 [modify-vpc-tenancy](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-tenancy.html) 命令。唯一受支持的租赁值为 `default`。

```
aws ec2 modify-vpc-tenancy \
    --vpc-id vpc-1234567890abcdef0 \
    --instance-tenancy default
```

------
#### [ PowerShell ]

**修改 VPC 的实例租赁属性**  
使用 [Edit-EC2VpcTenancy](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcTenancy.html) cmdlet。唯一受支持的租赁值为 `Default`。

```
Edit-EC2VpcTenancy `
    -VpcId vpc-1234567890abcdef0 `
    -InstanceTenancy Default
```

------

# 按需容量预留和适用于机器学习的容量块
<a name="capacity-reservation-overview"></a>

通过使用容量预留，您可以为特定可用区中的 Amazon EC2 实例预留计算容量。对于不同的使用案例，有两种类型的容量预留。

**容量预留类型**
+ [按需容量预留](ec2-capacity-reservations.md)
+ [适用于 ML 的容量块](ec2-capacity-blocks.md)

以下是按需容量预留的一些常见使用案例：
+ **扩展事件** - 您可以在业务关键型事件之前创建按需容量预留，以确保在需要时进行扩展。
+ **监管要求和灾难恢复** - 使用按需容量预留来满足高可用性的监管要求，并在不同的可用区或区域中预留容量以进行灾难恢复。
+ **共享未使用的容量**：使用可中断容量预留将未使用的容量用于您的账户中的其他工作负载，同时保持控制权，以便在需要时回收这些容量。

以下是适用于 ML 的容量块的一些常见使用案例：
+ **机器学习（ML）模型训练和微调** - 不间断地访问您为完成 ML 模型训练和微调而预留的 GPU 实例。
+ **ML 实验和原型** - 运行实验并构建需要短期 GPU 实例的原型。

**何时使用按需容量预留**  
如果您有严格的容量要求，并且当前或未来的关键业务工作负载需要容量保证，请使用按需容量预留。通过按需容量预留，您可以确保只要您需要，就随时可以访问预留的 Amazon EC2 容量。

**何时使用适用于 ML 的容量块**  
如果您需要确保从未来某个日期开始的一段规定的时间内可以不间断地访问 GPU 实例，请使用适用于 ML 的容量块。容量块非常适合于训练和微调 ML 模型、短期实验运行以及未来处理推理需求的临时激增。使用容量块，您可以确保在特定日期访问 GPU 资源，以运行您的 ML 工作负载。

# 使用 EC2 按需容量预留来预留计算容量
<a name="ec2-capacity-reservations"></a>

通过使用 Amazon EC2 容量预留，您可以在特定可用区中为 Amazon EC2 实例预留计算容量达任意持续时间。如果您对当前或未来的关键业务工作负载有严格的容量要求，需要一定程度的长期或短期容量保证，我们建议您创建容量预留，以帮助确保在需要时始终可以获得所需时长的 Amazon EC2 容量。

您能够随时创建容量预留，并且可以选择何时启动。您可以请求立即使用的容量预留，也可以请求未来某个日期的容量预留。
+ 如果您请求**立即使用的容量预留**，则容量预留将立即可用，并且没有期限承诺。您可以随时修改容量预留，也可以随时取消，进而释放预留容量并停止产生费用。
+ 如果您请求**未来日期的容量预留**，则需要指定需要容量预留可供使用的未来日期。您还必须指定一个承诺期限，承诺在指定日期之后在您的账户中保留所请求的容量。在请求的日期和时间，容量预留可供使用，承诺期限开始。在承诺期限内，您不能将实例数量或承诺期限减少到初始承诺以下，也不能取消容量预留。承诺期限过后，您可以以任何方式修改容量预留，或者如果不再需要容量预留，也可以取消它。

容量预留只能由匹配其属性的实例使用。默认情况下，容量预留自动将新实例与具有匹配属性（实例类型、平台、可用区和租赁）的运行中实例进行匹配。这意味着，任何具有匹配属性的实例都将自动在容量预留中运行。不过，您还可以将容量预留定位到特定工作负载。这可以明确控制允许哪些实例在预留容量中运行。您还可指定实例仅在容量预留或容量预留资源组中运行。

**重要**  
未来日期的容量预留用于帮助您启动和涵盖增量实例，而不是涵盖现有正在运行的实例。如果需要涵盖现有正在运行的实例，请改用立即启动的容量预留。

具有匹配属性（即实例类型、平台、可用区和租赁）的所有受支持的 Amazon EC2 实例都有资格在该容量预留中运行。Amazon EC2 实例可以由您启动（*非托管式实例*），也可以由 AWS 服务代表您启动（*托管式实例*）。*开放的*容量预留尤其如此，因为系统会自动与任何具有匹配属性的正在运行的实例匹配。例如，以下服务代表您启动的托管式实例有资格在您创建和管理的容量预留中运行。
+ Amazon EC2 Auto Scaling
+ Amazon ECS
+ Amazon EKS
+ Amazon EMR
+ Amazon SageMaker AI
+ AWS Batch
+ AWS Elastic Beanstalk
+ AWS ParallelCluster
+ AWS 并行计算服务 (AWS PCS)

**Topics**
+ [Amazon EC2 容量预留的概念](cr-concepts.md)
+ [容量预留、预留实例与节省计划的区别](#capacity-reservations-differences)
+ [支持的平台](#capacity-reservations-platforms)
+ [配额](#capacity-reservations-limits)
+ [限制](#capacity-reservations-limitations)
+ [容量预留定价和计费](capacity-reservations-pricing-billing.md)
+ [创建 容量预留](capacity-reservations-create.md)
+ [查看容量预留的状态](capacity-reservations-view.md)
+ [在现有 容量预留 中启动实例](capacity-reservations-launch.md)
+ [修改活动容量预留](capacity-reservations-modify.md)
+ [修改您的实例的容量预留设置](capacity-reservations-modify-instance.md)
+ [在容量预留之间移动容量](capacity-reservations-move.md)
+ [从现有容量预留中拆分容量](capacity-reservations-split.md)
+ [取消 容量预留](capacity-reservations-release.md)
+ [使用集群置放群组的容量预留](cr-cpg.md)
+ [容量预留组](create-cr-group.md)
+ [Local Zones 中的容量预留](capacity-reservations-localzones.md)
+ [Wavelength 区中的 容量预留](capacity-reservations-wavelengthzones.md)
+ [AWS Outposts 上的容量预留](capacity-reservations-outposts.md)
+ [共享容量预留](capacity-reservation-sharing.md)
+ [容量预留实例集](cr-fleets.md)
+ [使用 CloudWatch 指标监控容量预留使用情况](capacity-reservation-cw-metrics.md)
+ [监控容量预留利用率不足](cr-eventbridge.md)
+ [监控未来日期容量预留的状态变化](monitor-fcr-state.md)
+ [可中断容量预留](interruptible-capacity-reservations.md)

# Amazon EC2 容量预留的概念
<a name="cr-concepts"></a>

以下关键概念适用于容量预留。

**Topics**
+ [开始日期和时间](#cr-start-date)
+ [结束日期和时间](#cr-end-date)
+ [承诺期限](#cr-commitment-duration)
+ [未来日期的容量预留评估](#cr-future-dated-assessment)
+ [容量预留属性](#cr-attributes)
+ [实例匹配条件](#cr-instance-eligibility)

## 开始日期和时间
<a name="cr-start-date"></a>

开始日期和时间定义了容量预留何时可供使用。容量预留可以**立即**启动，也可以在**未来的某个日期**启动。
+ 如果选择立即启动容量预留，则预留容量会在您创建后立即可用，并且在容量预留进入活动状态后立即开始计费。您无需作出任何期限承诺。您可以根据需要随时修改容量预留来满足自己的需求，并且可以随时取消容量预留来释放容量并停止产生费用。
+ 如果您选择在未来的某个日期启动容量预留，请指定*将来需要预留容量的日期和时间*以及*承诺时长*，即在预置请求的容量预留后您承诺在您的账户中保留请求的容量预留的最短期限。在指定的未来日期，一旦容量预留进入活动状态，容量预留将可供使用，并且计费也将从那时开始。一旦您的账户中预置了容量预留，承诺持续时间就会开始。在此期间，您不能将实例计数减少到承诺的实例计数以下、选择早于承诺期限的结束日期，也不能取消容量预留。但是，承诺期限过后，您可以随意以任何方式修改容量预留，也可以取消它以释放预留容量并停止产生费用。

## 结束日期和时间
<a name="cr-end-date"></a>

结束日期和时间定义容量预留的结束时间以及从您的账户释放预留容量的时间。您可以将容量预留配置为在特定日期和时间**自动结束**，也可以将其配置为无限期地保持活动状态，直到**手动取消它**。

如果将容量预留配置为自动结束，则容量预留将在指定时间后一小时内过期。例如，如果指定 `5/31/2019, 13:30:55`，则容量预留保证在 `5/31/2019` 的 `13:30:55` 到 `14:30:55` 之间到期。

预留结束之后，将从您的账户释放预留容量，并且您无法再将实例定位到容量预留。在预留容量中运行的实例继续运行，不会中断。如果定位到容量预留的实例已停止，则在您删除其容量预留定位首选项或者将其配置为定位到其他容量预留之前，无法重启这些实例。有关更多信息，请参阅 [修改您的实例的容量预留设置](capacity-reservations-modify-instance.md)。

## 承诺期限
<a name="cr-commitment-duration"></a>

承诺期限仅适用于未来日期的容量预留。

承诺期限是您承诺未来日期的容量预留预置后在您的账户中处于活动状态的最短期限。您可以将未来日期的容量预留保留比承诺期限更长的时间，但不能更短。在承诺期限内，以下事项适用：
+ 在承诺期限内不能取消容量预留。
+ 不能将实例计数减少到承诺的实例计数以下，但可以将其增加。
+ 不能将容量预留配置为在承诺期限内的某个日期或时间自动结束。可以在承诺期内延长结束日期和时间。

Amazon EC2 使用您指定的承诺期限来评测是否可以支持该请求。最低承诺期限为 14 天。在评估请求时，Amazon EC2 可能会确定它是否可以支持较短的承诺期限。在这种情况下，Amazon EC2 将安排具有较短承诺期限的未来日期的容量预留。这意味着您承诺在您的账户中保留容量预留的时间比您最初请求的期限要短。

## 未来日期的容量预留评估
<a name="cr-future-dated-assessment"></a>

当您请求未来日期的容量预留时，Amazon EC2 会根据容量可用性和您指定的承诺期限评估该请求，以确定是否可以支持它。评估通常会在 5 天内完成。Amazon EC2 在评估请求时会考虑多种因素，包括：
+ 预测的容量供应
+ 承诺期限
+ 相对于开始日期，您提前多久请求容量预留
+ 您的请求的大小

您可以提前 5 至 120 天请求未来日期的容量预留。但我们建议您至少提前 56 天（8 周）提出请求，以提高我们为您的请求提供支持的能力。最低承诺期限为 14 天，最小实例数为 32 个 vCPU。

在评估请求时，容量预留保持为 `assessing` 状态。

如果可以支持该请求，则容量预留将进入 `scheduled` 状态，并安排在请求的日期和时间进行传送。在容量预留处于 `scheduled` 状态期间，实例总数保持为 0。计划的容量预留将在请求的日期变为 `active` 状态并可供使用。

如果无法支持该请求，则容量预留将进入 `unsupported` 状态。不传送不支持的容量预留。

当未来日期的容量预留处于 `assessing` 状态时，您可以取消它。

有关更多信息，请参阅 [创建未来日期的容量预留](capacity-reservations-create.md#create-future-cr)。

## 容量预留属性
<a name="cr-attributes"></a>

创建容量预留时，必须指定下列属性：
+ 可用区
+ 实例类型
+ 平台（操作系统类型）
+ 租赁（`default` 或 `dedicated`）

只有匹配这些属性的实例才能在容量预留中启动或运行。

## 实例匹配条件
<a name="cr-instance-eligibility"></a>

实例匹配条件或实例资格决定了哪些实例可以在容量预留中启动和运行。容量预留可以具有以下匹配条件之一：
+ **开放**：容量预留自动匹配所有具有匹配属性（实例类型、平台和可用区）的实例。具有匹配属性的新实例和现有实例会自动在容量预留中运行，无需任何额外配置。
+ **针对性**：容量预留仅接受具有匹配属性（实例类型、平台和可用区）并明确定位到容量预留的实例。实例必须专门定位到容量预留，才能在其预留容量中启动或运行。这让您能够明确控制允许哪些实例在预留容量中运行，并帮助您避免无意中使用预留容量。

当您请求未来日期的容量预留时，只能指定有针对性的匹配条件。这可确保容量预留交付的容量是增量的，或者是您在交付时拥有的任何正在运行的实例或预留容量的额外容量。当容量预留在您的账户中变为活动状态后，您可以根据需要将实例匹配条件更改为开放。然而，请记住，任何匹配的实例都将自动在容量预留中运行，这可能会导致无意中使用容量，并让您无法为完整的请求实例计数启动新实例。

## 容量预留、预留实例与节省计划的区别
<a name="capacity-reservations-differences"></a>

下表重点介绍容量预留、预留实例和节省计划之间的主要区别：


|  | Capacity Reservations | 可用区预留实例 | 区域性预留实例 | 节省计划 | 
| --- | --- | --- | --- | --- | 
| 期限 | 立即使用的容量预留无需承诺。它们可以根据需要创建、修改和取消。 利用未来日期的容量预留，您可以指定承诺在您的账户中保留容量的承诺期限。承诺期限过后，您可以随时取消容量预留。  | 需要固定的一年或三年使用承诺 | 
| 容量优势 | 在特定可用区中预留容量。 | 无预留容量。 | 
| 账单折扣 | 无账单折扣。† | 提供账单折扣。 | 
| 实例限制 | 适用每个区域的每个按需型实例的限制。 | 默认值为每个可用区 20 个。您可以请求提高限制。 | 默认值为每个区域 20 个。您可以请求提高限制。 | 无限制。 | 

† 您可以将容量预留与节省计划或区域性预留实例相结合，以获得折扣。

有关更多信息，请参阅下列内容：
+ [Amazon EC2 的预留实例概览](ec2-reserved-instances.md)
+ [节省计划用户指南](https://docs.aws.amazon.com/savingsplans/latest/userguide/)

## 支持的平台
<a name="capacity-reservations-platforms"></a>

您必须使用正确的平台创建容量预留，以确保它与您的实例正确匹配。容量预留支持 `platform` 的以下值：
+ Linux/UNIX
+ 含有 SQL Server Standard 的 Linux
+ 含有 SQL Server Web 的 Linux
+ 含有 SQL Server Enterprise 的 Linux
+ SUSE Linux
+ Red Hat Enterprise Linux
+ 含有 SQL Server Standard 的 RHEL
+ 含有 SQL Server Enterprise 的 RHEL
+ 含有 SQL Server Web 的 RHEL
+ 含有 HA 的 RHEL
+ 含有 HA 和 SQL Server Standard 的 RHEL
+ 含有 HA 和 SQL Server Enterprise 的 RHEL
+ Ubuntu Pro
+ Windows
+ 含有 SQL Server 的 Windows
+ 含有 SQL Server Web 的 Windows
+ 含有 SQL Server Standard 的 Windows
+ 含有 SQL Server Enterprise 的 Windows

为确保实例在特定的容量预留中运行，容量预留的平台必须与用于启动该实例的 AMI 平台相匹配。对于 Linux AMI，请务必检查 AMI 平台是使用常规值 **Linux/UNIX** 还是具体值（如 **SUSE Linux**）。

------
#### [ Console ]

**检查 AMI 平台**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **AMI**。

1. 选择 AMI。

1. 在**详细信息**选项卡上，记下**平台详细信息**的值。

------
#### [ AWS CLI ]

**检查 AMI 平台**  
使用 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令并检查 `PlatformDetails` 的值。

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[*].PlatformDetails
```

下面是示例输出。

```
[
    "Linux/UNIX"
]
```

------
#### [ PowerShell ]

**检查 AMI 平台**  
使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet 并检查 `PlatformDetails` 的值。

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | `
    Select PlatformDetails
```

下面是示例输出。

```
PlatformDetails
---------------
Linux/UNIX
```

------

## 配额
<a name="capacity-reservations-limits"></a>

允许您预留容量的实例数基于您账户的个按需型实例配额。您可以在配额允许的数量减去已经运行的实例数量范围内，为任意数量的实例预留容量。

处于 `assessing`、`scheduled`、`pending`、`active` 和 `delayed` 状态的容量预留计入您的按需型实例配额。

## 限制
<a name="capacity-reservations-limitations"></a>

在创建容量预留之前，请注意以下限制。
+ 活动和未使用的容量预留会计入您的个按需型实例限制中。
+ 容量预留无法从一个AWS账户转移到另一个账户。但是，您可以与其他 AWS 账户共享容量预留。有关更多信息，请参阅 [共享容量预留](capacity-reservation-sharing.md)。
+ 可用区预留实例账单折扣不适用于容量预留。
+ 您可以在集群置放群组中创建容量预留。不支持分布和分区置放群组。
+ 容量预留不能与专用主机一起使用。容量预留可以与专用实例一起使用。
+ [Windows 实例] 容量预留不能用于自带许可（BYOL）。
+ [Red Hat 实例] 容量预留可用于自带许可（BYOL）。
+ 容量预留不能确保休眠的实例在尝试启动后可以恢复。
+ 您可以为至少具有 32 个 vCPU 的实例计数请求未来日期的容量预留。例如，如果您为 `m5.xlarge` 实例请求未来日期的容量预留，则必须请求至少 8 个实例（*8 \$1 m5.xlarge = 32 个 vCPU*）。
+ 您只能为 C、G、I、M、R 和 T 系列中的实例类型请求未来日期的容量预留。

# 容量预留定价和计费
<a name="capacity-reservations-pricing-billing"></a>

本节中的主题旨在概述容量预留的定价和计费。

**Topics**
+ [定价](#capacity-reservations-pricing)
+ [计费](#capacity-reservations-billing)
+ [账单折扣](#capacity-reservations-discounts)
+ [查看您的账单](#capacity-reservations-viewing-bill)

## 定价
<a name="capacity-reservations-pricing"></a>

无论您是否在预留容量中运行实例，都按等同的按需费率为您计算容量预留费用，包括专用实例任何使用的区域额外费用。如果您没有使用预留，这将在您的 Amazon EC2 账单中显示为未使用的预留。如果您运行的实例属性与预留匹配，则您只需要为该实例付费，不需要为预留付费。没有任何预付费用或额外收费。

例如，如果您为 20 个 `m4.large` Linux 实例创建容量预留并在同一个可用区中运行 15 个 `m4.large` Linux 实例，则会向您收取 15 个活动的实例和预留中 5 个未使用的实例的费用。

节省计划和区域性预留实例的账单折扣适用于容量预留。有关更多信息，请参阅[账单折扣](#capacity-reservations-discounts)。

有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。

## 计费
<a name="capacity-reservations-billing"></a>

计费在您的账户中预置容量预留后立即开始，并在容量预留保持在账户中预置状态期间继续计费。对于未来日期的容量预留，这意味着只有在请求的未来日期在您的账户中预置了容量预留后才开始计费。

容量预留以秒为单位计费。这意味着会向您收取不足一小时的费用。例如，如果容量预留在您的账户中保持预置状态 `24` 小时 `15` 分钟，则会向您收取 `24.25` 个预留小时的费用。

下面的示例说明如何对容量预留计费。为一个 `m4.large` Linux 实例创建了容量预留，其按需费率为每使用一小时 0.10 美元。在此示例中，账户内的容量预留预置了五个小时。第一个小时未使用容量预留，因此按照 `m4.large` 实例类型的标准按需费率计入一小时未使用费用。从第二个小时到第五个小时，`m4.large` 实例占用了容量预留。在这段时间内，容量预留不会产生任何费用，改为向账户收取占用这部分容量的 `m4.large` 实例的费用。在第六个小时取消了容量预留，并在预留容量之外正常运行 `m4.large` 实例。对于这一个小时，将以 `m4.large` 实例类型的按需费率进行收费。

![\[容量预留 计费示例\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/cr-billing-example.png)


## 账单折扣
<a name="capacity-reservations-discounts"></a>

节省计划和区域性预留实例的账单折扣适用于容量预留。AWS 自动将这些折扣应用于具有匹配属性的容量预留。当容量预留由某个实例使用时，折扣将适用于该实例。折扣将优先适用于已产生的实例使用量，然后再用于未使用的容量预留。

区域预留实例的账单折扣不适用于容量预留。

有关更多信息，请参阅下列内容：
+ [Amazon EC2 的预留实例概览](ec2-reserved-instances.md)
+ [节省计划用户指南](https://docs.aws.amazon.com/savingsplans/latest/userguide/)
+ [计费和购买选项](https://aws.amazon.com/ec2/faqs/#capacityreservations)

## 查看您的账单
<a name="capacity-reservations-viewing-bill"></a>

您可以在 AWS 账单与成本管理 控制台上查看您账户的费用情况。
+ **控制面板**显示了您的账户的花费汇总。
+ 在 **Bills (账单)** 页面上的 **Details (详细信息)** 下，展开 **Elastic Compute Cloud** 部分及区域，以获取有关您的容量预留的账单信息。

您可以在线查看费用，也可以下载 CSV 文件。有关更多信息，请参阅 [Capacity Reservation line items](https://docs.aws.amazon.com/cur/latest/userguide/monitor-ondemand-reservations.html#capacity-reservation-li)。

# 创建 容量预留
<a name="capacity-reservations-create"></a>

您可以随时创建容量预留，以确保在特定可用区拥有可用的计算容量。容量预留可以立即启动，也可以在未来的某个日期启动。只有在容量预留进入 `active` 状态后，容量才可供使用。

**注意**  
如果您创建了具有 `open` 实例匹配条件的容量预留，并且在容量预留变为活动状态时，您正在运行具有匹配属性的实例，则这些实例将自动在预留容量中运行。为避免这种情况，请使用 `targeted` 实例匹配条件。有关更多信息，请参阅 [实例匹配条件](cr-concepts.md#cr-instance-eligibility)。

如果出现以下情况之一，创建容量预留的请求会失败：
+ Amazon EC2没有足够的容量来满足请求。请稍后重试、尝试不同的可用区或者尝试较小的请求。如果您的应用程序灵活地跨实例类型和大小，请尝试不同的实例属性。
+ 请求的数量超过选定实例系列的个按需型实例限制。增加该实例系列的个按需型实例限制，然后重试。有关更多信息，请参阅 [按需型实例限额](ec2-on-demand-instances.md#ec2-on-demand-instances-limits)。

**Topics**
+ [创建可立即使用的容量预留](#create-immediate-cr)
+ [创建未来日期的容量预留](#create-future-cr)

## 创建可立即使用的容量预留
<a name="create-immediate-cr"></a>

创建可立即使用的容量预留。

------
#### [ Console ]

**创建容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择 **容量预留 (容量预留)**，然后选择 **Create 容量预留 (创建容量预留)**。

1. 在**实例详细信息**部分中配置以下设置。

   1. **实例类型**：为其预留容量的实例类型。

   1. **平台**：您的实例的操作系统。有关更多信息，请参阅 [支持的平台](ec2-capacity-reservations.md#capacity-reservations-platforms)。

   1. **可用区**：在其中预留容量的可用区。

   1. **租赁**：用于预留容量的租赁类型。选择“默认”可在共享硬件上预留容量，或选择“专用”则在专用于您的账户的硬件上预留容量。

   1. （*可选*）**置放群组 ARN**：要在其中创建容量预留的集群置放群组的 ARN。有关更多信息，请参阅 [使用集群置放群组的容量预留](cr-cpg.md)。

   1. **总实例数**：为其预留容量的实例的数量。如果指定的数量超过了选定实例类型的剩余按需型实例配额，则请求将失败。

1. 在**预留详细信息**部分中配置以下设置：

   1. **容量预留开始**：选择**立即**。

   1. **容量预留结束**：选择以下选项之一：
      + **手动**：预留容量，直到您明确取消它。
      + **特定时间**：在指定的日期和时间自动取消容量预留。

   1. **实例资格**：选择以下选项之一：
      + **开放**：（默认值）容量预留匹配具有匹配属性（实例类型、平台、可用区和租赁）的任何实例。如果您启动具有匹配属性的实例，则会自动将其放置到预留容量中。
      + **针对性**：容量预留仅接受具有匹配属性（实例类型、平台、可用区和租赁）并明确针对预留的实例。

1. 选择**创建**。

------
#### [ AWS CLI ]

**创建容量预留**  
使用 [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) 命令。

```
aws ec2 create-capacity-reservation \
    --availability-zone az_name \
    --instance-type instance_type \
    --instance-count number_of_instances \
    --instance-platform operating_system \
    --instance-match-criteria open|targeted
```

------
#### [ PowerShell ]

**创建容量预留**  
使用 [Add-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2CapacityReservation.html) cmdlet。

```
Add-EC2CapacityReservation `
    -AvailabilityZone az_name `
    -InstanceType instance_type `
    -InstanceCount number_of_instances `
    -InstancePlatform operating_system `
    -InstanceMatchCriterion open|targeted
```

------

## 创建未来日期的容量预留
<a name="create-future-cr"></a>

如果您需要预留容量在未来某个日期和时间可用，请请求未来日期的容量预留。

在您请求未来日期的容量预留后，该请求将接受评估以确定是否可以支持。有关更多信息，请参阅 [未来日期的容量预留评估](cr-concepts.md#cr-future-dated-assessment)。

**注意事项**
+ 您可以为 C、G、I、M、R 和 T 系列中的实例类型请求未来日期的容量预留。
+ 您可以为至少具有 32 个 vCPU 的实例计数请求未来日期的容量预留。例如，如果您为 `m5.xlarge` 实例请求未来日期的容量预留，则必须请求至少 8 个实例的容量（*8 \$1 m5.xlarge = 32 个 vCPU*）。
+ 您可以提前 5 至 120 天请求未来日期的容量预留。但是，我们建议您至少提前 56 天（8 周）提出请求以提高可支持性。
+ 最低承诺期限为 14 天。

------
#### [ Console ]

**创建容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择 **容量预留 (容量预留)**，然后选择 **Create 容量预留 (创建容量预留)**。

1. 在**实例详细信息**部分中配置以下设置。

   1. **实例类型**：为其预留容量的实例类型。

   1. **平台**：您的实例的操作系统。有关更多信息，请参阅 [支持的平台](ec2-capacity-reservations.md#capacity-reservations-platforms)。

   1. **可用区**：在其中预留容量的可用区。

   1. **租赁**：用于预留容量的租赁类型。选择“默认”可在共享硬件上预留容量，或选择“专用”则在专用于您的账户的硬件上预留容量。

   1. **总实例数**：为其预留容量的实例的数量。如果指定的数量超过了选定实例类型的剩余按需型实例配额，则请求将失败。

1. 在**预留详细信息**部分中配置以下设置：

   1. **容量预留开始**：选择**在特定时间**。

   1. **开始日期**：指定容量预留必须可供使用的日期和时间。有关更多信息，请参阅 [开始日期和时间](cr-concepts.md#cr-start-date)。

   1. **承诺期限**：指定您承诺在容量预留交付后保留它的最短期限。有关更多信息，请参阅 [承诺期限](cr-concepts.md#cr-commitment-duration)。

   1. **容量预留结束**：选择以下选项之一：
      + **当我取消它时**：预留容量，直至您明确取消它。
      + **特定时间**：在指定的日期和时间自动取消容量预留。

1. 选择**创建**。

------
#### [ AWS CLI ]

**创建容量预留**  
使用 [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) 命令。

```
aws ec2 create-capacity-reservation \
    --availability-zone az_name \
    --instance-type instance_type \
    --instance-count number_of_instances \
    --instance-platform operating_system \
    --instance-match-criteria targeted \
    --delivery-preference incremental \
    --commitment-duration commitment_in_seconds \ 
    --start-date YYYY-MMDDThh:mm:ss.sssZ
```

------
#### [ PowerShell ]

**创建容量预留**  
使用 [Add-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2CapacityReservation.html) cmdlet。

```
Add-EC2CapacityReservation `
    -AvailabilityZone az_name `
    -InstanceType instance_type `
    -InstanceCount number_of_instances `
    -InstancePlatform operating_system `
    -InstanceMatchCriterion targeted `
    -DeliveryPreference incremental `
    -CommitmentDuration commitment_in_seconds `
    -StartDate  YYYY-MMDDThh:mm:ss.sssZ
```

------

# 查看容量预留的状态
<a name="capacity-reservations-view"></a>

Amazon EC2 会持续监控容量预留状态。

由于 Amazon EC2 API 遵循[最终一致性](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html)模型，创建容量预留后，最多可能需要 5 分钟来表明容量预留处于 `active` 状态。在此期间，容量预留可能会保持 `pending` 状态。但是，容量预留可能已经可供使用，在这种情况下，如果您尝试在其中启动实例，将会成功。

------
#### [ Console ]

**查看容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 选择容量预留。

------
#### [ AWS CLI ]

**描述容量预留**  
使用 [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) 命令。

例如，以下命令会描述所有容量预留。

```
aws ec2 describe-capacity-reservations
```

下面是示例输出。

```
{
    "CapacityReservations": [
        {
            "CapacityReservationId": "cr-1234abcd56EXAMPLE",
            "EndDateType": "unlimited",
            "AvailabilityZone": "eu-west-1a",
            "InstanceMatchCriteria": "open",
            "Tags": [],
            "EphemeralStorage": false,
            "CreateDate": "2019-08-16T09:03:18.000Z",
            "AvailableInstanceCount": 1,
            "InstancePlatform": "Linux/UNIX",
            "TotalInstanceCount": 1,
            "State": "active",
            "Tenancy": "default",
            "EbsOptimized": true,
            "InstanceType": "a1.medium",
            "PlacementGroupArn": "arn:aws:ec2:us-east-1:123456789012:placement-group/MyPG"
        },
        {
            "CapacityReservationId": "cr-abcdEXAMPLE9876ef",
            "EndDateType": "unlimited",
            "AvailabilityZone": "eu-west-1a",
            "InstanceMatchCriteria": "open",
            "Tags": [],
            "EphemeralStorage": false,
            "CreateDate": "2019-08-07T11:34:19.000Z",
            "AvailableInstanceCount": 3,
            "InstancePlatform": "Linux/UNIX",
            "TotalInstanceCount": 3,
            "State": "cancelled",
            "Tenancy": "default",
            "EbsOptimized": true,
            "InstanceType": "m5.large"
        }
    ]
}
```

------
#### [ PowerShell ]

**删除容量预留**  
使用 [Get-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityReservation.html) cmdlet。

```
Get-EC2CapacityReservation `
    -CapacityReservationId cr-1234abcd56EXAMPLE
```

------

## 容量预留状态
<a name="capacity-reseration-states"></a>

容量预留可能具有以下几种状态。


| 州 | 说明 | 
| --- | --- | 
| active |  容量可供使用。 | 
| expired | 容量预留已在您预留请求中指定的日期和时间自动到期。预留容量不再可供您使用。 | 
| cancelled | 容量预留已取消。预留容量不再可供您使用。 | 
| pending | 容量预留请求已成功，但容量预置仍待处理。 | 
| failed | 容量预留请求失败。请求可能由于无效的请求参数、容量限制或实例限制等约束条件失败。您可以查看 60 分钟内的失败请求。 | 
| scheduled | （仅限未来日期的容量预留）未来日期的容量预留请求已获批准，并且容量预留计划于请求的开始日期交付。 | 
| assessing | （仅限未来日期的容量预留）Amazon EC2 正在评估您对未来日期的容量预留的请求。有关更多信息，请参阅 [未来日期的容量预留评估](cr-concepts.md#cr-future-dated-assessment)。 | 
| delayed | （仅限未来日期的容量预留）Amazon EC2 在预置请求的未来日期的容量预留时遇到延迟。Amazon EC2 无法在请求的开始日期和时间之前提供请求的容量。 | 
| unsupported | （仅限未来日期的容量预留）由于容量限制，Amazon EC2 无法支持未来日期的容量预留请求。您可以查看 30 天内不受支持的请求。将不会交付容量预留。 | 

# 在现有 容量预留 中启动实例
<a name="capacity-reservations-launch"></a>

您只能将实例启动到具有以下条件的容量预留中：
+ 具有匹配属性（实例类型、平台、可用区和租赁）
+ 具有足够的可用容量
+ 处于 `active` 状态

启动实例时，可以指定在任意 `open` 容量预留中、特定容量预留中还是容量预留组中启动实例。

或者，您也可以将实例配置为避免在容量预留中运行，即使您拥有具有匹配属性和可用容量的 `open` 容量预留也是如此。

在容量预留中启动实例会将其可用容量减去所启动实例的数量。例如，如果您启动 3 个实例，容量预留的可用容量将减去 3。

------
#### [ Console ]

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

1. 按照步骤[启动实例](ec2-launch-instance-wizard.md)，但请在完成以下步骤以指定置放群组和容量预留的设置之后再启动实例。

1. 展开**高级详细信息**，并执行以下操作：

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

   1. 对于 **Capacity Reservation**（容量预留），请选择以下选项之一，具体取决于容量预留的配置：
      + **无** – 阻止实例在容量预留中启动。实例使用按需容量运行。
      + **开放** – 在具有匹配属性以及对于所选实例数具有足够容量的任意容量预留中启动实例。如果没有匹配的容量预留具有足够容量，实例使用按需容量。
      + **指定容量预留**：将实例启动到选定的容量预留中。如果选定的容量预留没有足够的容量来运行所选数量的实例，实例启动将失败。
      + **指定容量预留资源组**：将实例启动到所选容量预留组中任何具有匹配属性和可用容量的容量预留中。如果所选组中没有具有匹配属性和可用容量的容量预留，将会在按需容量中启动实例。
      + **仅指定容量预留**：将实例启动到容量预留中。如果未指定容量预留 ID，则实例将启动到开放的容量预留中。如果容量不可用，则实例无法启动。
      + **仅指定容量预留资源组** – 将实例启动到容量预留资源组中的容量预留中。如果未指定容量预留资源组 ARN，则实例将启动到开放的容量预留中。如果容量不可用，则实例无法启动。

1. 在 **Summary**（摘要）面板中查看实例配置，然后选择 **Launch instance**（启动实例）。

------
#### [ AWS CLI ]

**在现有容量预留中启动实例**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令并指定 `--capacity-reservation-specification` 选项。

以下示例在具有匹配属性和可用容量的任意开放容量预留中启动实例：

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification CapacityReservationPreference=open
```

以下示例在 `targeted` 容量预留中启动实例：

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification \
        CapacityReservationTarget={CapacityReservationId=cr-1234abcd56EXAMPLE}
```

以下示例在指定容量预留组中启动实例：

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification \
        CapacityReservationTarget={CapacityReservationResourceGroupArn=arn:aws:resource-groups:us-west-2:123456789012:group/my-cr-group}
```

以下示例仅在容量预留中启动实例。由于未指定容量预留 ID，该实例将在具有匹配属性和可用容量的任何开放容量预留中启动：

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification \
        CapacityReservationPreference=capacity-reservations-only
```

以下示例仅在指定容量预留中启动实例。如果指定容量预留中没有可用容量，则实例将启动失败。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --subnet-id subnet-0abcdef1234567890 \
    --capacity-reservation-specification \
        CapacityReservationPreference=capacity-reservations-only \
        CapacityReservationTarget={CapacityReservationId=cr-1234abcd56EXAMPLE}
```

------
#### [ PowerShell ]

**在现有容量预留中启动实例**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet。

以下示例在具有匹配属性和可用容量的任意开放容量预留中启动实例：

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType t2.micro `
    -KeyName "my-key-pair" `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationSpecification_CapacityReservationPreference "open"
```

以下示例在 `targeted` 容量预留中启动实例：

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType t2.micro `
    -KeyName "my-key-pair" `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationTarget_CapacityReservationId cr-1234abcd56EXAMPLE
```

以下示例在指定容量预留组中启动实例：

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType t2.micro `
    -KeyName "my-key-pair" `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationTarget_CapacityReservationResourceGroupArn `
        "arn:aws:resource-groups:us-west-2:123456789012:group/my-cr-group"
```

以下示例仅在容量预留中启动实例。由于未指定容量预留 ID，该实例将在具有匹配属性和可用容量的任何开放容量预留中启动：

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType t2.micro `
    -KeyName "my-key-pair" `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationSpecification_CapacityReservationPreference "capacity-reservations-only"
```

以下示例仅在指定容量预留中启动实例。如果指定容量预留中没有可用容量，则实例将启动失败。

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType t2.micro `
    -KeyName "my-key-pair" `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationSpecification_CapacityReservationPreference "capacity-reservations-only" `
    -CapacityReservationTarget_CapacityReservationId cr-1234abcd56EXAMPLE
```

------

# 修改活动容量预留
<a name="capacity-reservations-modify"></a>

如果您现有的容量预留不适合需要容量的工作负载，则可以修改实例数量、实例资格（`open` 或 `targeted`）和结束时间（`At specific time` 或 `Manually`）。如果指定的新实例数量超过了选定实例类型的剩余按需型实例限制，则更新将失败。

允许的修改取决于容量预留的状态：
+ `assessing` 或 `scheduled` 状态：只能修改标签。
+ `pending` 状态：无法以任何方式修改容量预留。
+ `active` 状态但仍在承诺期限内：不能将实例计数减少到承诺的实例计数以下，也不能将结束日期设置为早于承诺期限。允许进行所有其他修改。
+ `active` 状态但没有承诺期限或承诺期限已过：允许进行所有修改。
+ `expired`、`cancelled`、`unsupported` 或 `failed` 状态：不能以任何方式修改容量预留。

**注意事项**
+ 创建后，您无法更改实例类型、平台、可用区或租赁。如果您需要修改任意这些属性，我们建议您取消预留，然后使用所需属性创建新的预留。
+ 如果通过将实例资格从 `targeted` 更改为 `open` 来修改现有容量预留，那么与容量预留属性匹配、已将 `CapacityReservationPreference` 参数设置为 `open` 且尚未在容量预留中运行的任何运行中实例，都将自动使用修改后的容量预留。
+ 要更改实例资格，容量预留必须完全处于空闲状态（零使用率），因为当实例在预留内运行时，Amazon EC2 无法修改实例资格。

------
#### [ Console ]

**修改容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**容量预留**，选择要修改的容量预留，然后选择**编辑**。

1. 根据需要修改**总容量**、**容量预留结束**或**实例资格**选项，然后选择**保存**。

------
#### [ AWS CLI ]

**修改容量预留**  
使用 [modify-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-capacity-reservation.html) 命令。以下示例将修改指定容量预留，使其为 8 个实例预留容量。

```
aws ec2 modify-capacity-reservation \
    --capacity-reservation-id cr-1234567890abcdef0 \
    --instance-count 8
```

------
#### [ PowerShell ]

**修改容量预留**  
使用 [Edit-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2CapacityReservation.html) cmdlet。以下示例将修改指定容量预留，使其为 8 个实例预留容量。

```
Edit-EC2CapacityReservation `
    -CapacityReservationId cr-1234567890abcdef0 `
    -InstanceCount 8
```

------

# 修改您的实例的容量预留设置
<a name="capacity-reservations-modify-instance"></a>

您随时可以为已停止实例修改以下容量预留设置：
+ 以具有匹配属性（实例类型、平台、可用区和租赁）以及可用容量的任意容量预留启动。
+ 在特定容量预留中启动实例。
+ 在容量预留组中任何具有匹配属性和可用容量的容量预留中启动
+ 阻止实例在容量预留中启动。

------
#### [ Console ]

**修改实例容量预留设置**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**实例**并选择要修改的实例。停止实例（如果尚未停止）。

1. 依次选择**操作**、**实例设置**和**修改容量预留设置**。

1. 对于**容量预留**，请选择下列选项之一：
   + **开放** – 在具有匹配属性以及对于所选实例数具有足够容量的任意容量预留中启动实例。如果没有匹配的容量预留具有足够容量，实例使用按需容量。
   + **无** – 阻止实例在容量预留中启动。实例使用按需容量运行。
   + **指定容量预留**：将实例启动到选定的容量预留中。如果选定的容量预留没有足够的容量来运行所选数量的实例，实例启动将失败。
   + **指定容量预留组**：将实例启动到所选容量预留组中任何具有匹配属性和可用容量的容量预留。如果所选组中没有具有匹配属性和可用容量的容量预留，将会在按需容量中启动实例。
   + **仅指定容量预留**：将实例启动到容量预留中。如果未指定容量预留 ID，则实例将启动到开放的容量预留中。如果容量不可用，则实例无法启动。
   + **仅指定容量预留资源组** – 将实例启动到容量预留资源组中的容量预留中。如果未指定容量预留资源组 ARN，则实例将启动到开放的容量预留中。如果容量不可用，则实例无法启动。

------
#### [ AWS CLI ]

**修改实例容量预留设置**  
使用 [modify-instance-capacity-reservation-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-capacity-reservation-attributes.html) 命令。

以下示例将容量预留首选项更改为 `none`。

```
aws ec2 modify-instance-capacity-reservation-attributes \
    --instance-id i-1234567890abcdef0 \
    --capacity-reservation-specification CapacityReservationPreference=none
```

以下示例的目标是特定容量预留。

```
aws ec2 modify-instance-capacity-reservation-attributes \
    --instance-id i-1234567890abcdef0 \
    --capacity-reservation-specification \
    CapacityReservationTarget={CapacityReservationId=cr-1234567890abcdef0}
```

以下示例将目标更改为特定容量预留组。

```
aws ec2 modify-instance-capacity-reservation-attributes \
    --instance-id i-1234567890abcdef0 \
    --capacity-reservation-specification \
        CapacityReservationTarget={CapacityReservationResourceGroupArn=arn:aws:resource-groups:us-west-2:123456789012:group/my-cr-group}
```

以下示例将容量预留首选项更改为 `capacity-reservation-only`。由于未指定容量预留，实例将在具有匹配属性和可用容量的任何开放容量预留中启动。

```
aws ec2 modify-instance-capacity-reservation-attributes \
    --instance-id i-1234567890abcdef0 \
    --capacity-reservation-specification CapacityReservationPreference=capacity-reservation-only
```

以下示例将容量预留首选项更改为 `capacity-reservation-only`，并将目标更改为特定容量预留。如果指定容量预留中没有可用容量，则实例将启动失败。

```
aws ec2 modify-instance-capacity-reservation-attributes \
    --instance-id i-1234567890abcdef0 \
    --capacity-reservation-specification \
        CapacityReservationPreference=capacity-reservation-only \
        CapacityReservationTarget={CapacityReservationId=cr-1234567890abcdef0}
```

------
#### [ PowerShell ]

**修改实例容量预留设置**  
使用 [Edit-EC2InstanceCapacityReservationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceCapacityReservationAttribute.html) cmdlet。

以下示例将容量预留首选项更改为 `none`。

```
Edit-EC2InstanceCapacityReservationAttribute `
    -InstanceId i-1234567890abcdef0 `
    -CapacityReservationSpecification_CapacityReservationPreference "none"
```

以下示例的目标是特定容量预留。

```
Edit-EC2InstanceCapacityReservationAttribute `
    -InstanceId i-1234567890abcdef0 `
    -CapacityReservationTarget_CapacityReservationId cr-1234567890abcdef0
```

以下示例将目标更改为特定容量预留组。

```
Edit-EC2InstanceCapacityReservationAttribute `
    -InstanceId i-1234567890abcdef0 `
    -CapacityReservationTarget_CapacityReservationResourceGroupArn `
        "arn:aws:resource-groups:us-west-2:123456789012:group/my-cr-group"
```

以下示例将容量预留首选项更改为 `capacity-reservation-only`。由于未指定容量预留，实例将在具有匹配属性和可用容量的任何开放容量预留中启动。

```
Edit-EC2InstanceCapacityReservationAttribute `
    -InstanceId i-1234567890abcdef0 `
    -CapacityReservationSpecification_CapacityReservationPreference "capacity-reservation-only"
```

以下示例将容量预留首选项更改为 `capacity-reservation-only`，并将目标更改为特定容量预留。如果指定容量预留中没有可用容量，则实例将启动失败。

```
Edit-EC2InstanceCapacityReservationAttribute `
    -InstanceId i-1234567890abcdef0 `
    -CapacityReservationSpecification_CapacityReservationPreference "capacity-reservation-only" `
    -CapacityReservationTarget_CapacityReservationId cr-1234567890abcdef0
```

------

# 在容量预留之间移动容量
<a name="capacity-reservations-move"></a>

您可以将容量从一个容量预留移动到另一个容量预留，以根据需要重新分配预留的计算资源。例如，如果您需要在容量预留中随着使用量增长而增加容量，并且另一个预留中有可用容量，则可以在两个预留之间重新分配该容量。

## 移动容量的先决条件
<a name="capacity-reservations-move-prereq"></a>

作为先决条件，两个容量预留必须满足下面的要求：
+ 两个预留必须处于活动状态。
+ 两个预留都必须归您的 AWS 账户所有。您不能在不同的 AWS 账户拥有的预留之间移动容量。
+ 两个预留必须具有相同的：
  + 实例类型
  + 平台
  + 可用区
  + 租赁
  + 置放群组
  + 结束时间

目标容量预留实例资格（`open` 或 `targeted`）和标签不必与源预留匹配。两个预留的配置保持不变，只是源预留的容量减少了，而目标预留的容量增加了。

当您指定要移动的实例数量时，默认情况下，将首先移动任何可用容量，然后移动任何符合条件的正在运行的实例（预留中的已用容量）。例如，如果您从具有 5 个已使用实例和 3 个可用实例的预留中移动 4 个实例，那么 3 个可用实例和 1 个已使用实例也将被移动。

**注意**  
当您通过指定大于可用容量的**移动数量**来从预留中移动已用的容量时，只有在**容量预留规范**为 `open` 的情况下启动的实例才会被移动。

## 注意事项
<a name="capacity-reservations-move-considerations"></a>

将容量从一个预留移动到另一个预留时，需要考虑以下事项：
+ 已用容量只能在与同一组账户共享的具有 `open` 实例资格的容量预留之间移动。
+ 当您移动已用的容量时，系统将随机选择符合条件的实例。您无法指定移动哪些正在运行的实例。如果找不到足够数量的合格实例来满足移动数量，则移动操作将失败。
+ 如果您从源预留中移动所有容量，则容量预留将被自动取消。
+ **未来日期的容量预留**：在承诺期内，您不能移动未来日期的容量预留的容量。

**注意**  
不支持从容量块移动容量。

## 移动容量
<a name="capacity-reservations-move-procedure"></a>

可以将容量从源容量预留移动到目标容量预留。

------
#### [ Console ]

**移动容量**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在左侧导航窗格中，选择**容量预留**。

1. 选择具有可移动容量的按需容量预留 ID。

1. 在**操作**、**管理容量**下，选择**移动**。

1. 在**移动容量**页面的**目标容量预留**下，从列表中选择预留。

1. 在**要移动的数量**下，使用滑块或键入要从源容量预留移动到目标容量预留的实例数量。

1. 查看摘要，准备就绪后，选择**移动**。

------
#### [ AWS CLI ]

**移动容量**  
使用 [move-capacity-reservation-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/move-capacity-reservation-instances.html) 命令。以下示例将 10 个实例从指定的源容量预留移动到指定的目标容量预留。

```
aws ec2 move-capacity-reservation-instances \
    --source-capacity-reservation-id cr-1234567890abcdef0 \
    --destination-capacity-reservation-id cr-021345abcdef56789 \
    --instance-count 10
```

------
#### [ PowerShell ]

**移动容量**  
使用 [Move-EC2CapacityReservationInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Move-EC2CapacityReservationInstance.html) cmdlet。以下示例将 10 个实例从指定的源容量预留移动到指定的目标容量预留。

```
Move-EC2CapacityReservationInstance `
    -SourceCapacityReservationId cr-1234567890abcdef0 `
    -DestinationCapacityReservationId cr-021345abcdef56789 `
    -InstanceCount 10
```

------

# 从现有容量预留中拆分容量
<a name="capacity-reservations-split"></a>

您可以从现有容量预留中拆分容量来创建新的预留。通过拆分容量，您可以将原始预留的一部分分配给特定工作负载或将其与其他 AWS 账户共享。例如，要与其他账户部分共享容量预留，您可以拆分部分容量以创建较小大小的容量预留。然后，可以使用 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 与其他账户共享较小大小的容量预留。

当您从现有容量预留中拆分容量时，系统会自动创建新容量预留。现有预留将保持不变，但由于拆分的实例数量而减少的总容量除外。在现有容量预留中运行的实例不受影响。您只能将现有预留拆分为一个新容量预留。

除标签外，新容量预留将与现有容量预留具有相同的配置。默认情况下，新容量预留没有任何标签。您可以在拆分操作期间指定新标签。如有必要，也可以在创建新容量预留之后对其进行修改。

当您指定要拆分的实例数量时，默认情况下，将首先拆分任何可用容量，然后移动任何符合条件的正在运行的实例（预留中的已用容量）。例如：如果您从具有 5 个已使用实例和 3 个可用实例的容量预留中拆分 4 个实例，则 3 个可用实例和 1 个已使用实例将拆分到新的预留中。

## 拆分容量的先决条件
<a name="capacity-reservations-split-prereq"></a>

作为先决条件，您的容量预留必须满足下面的要求：
+ 源预留必须处于活动状态。
+ 源预留必须归您的 AWS 账户所有。

**注意**  
当您通过指定大于可用容量的**拆分数量**来从预留中拆分已用容量时，只有在**容量预留规范**为 `open` 的情况下启动的实例才会被拆分。

## 注意事项
<a name="capacity-reservations-split-considerations"></a>

将容量从一个预留拆分到新的预留时，需要考虑以下事项：
+ 已用容量只能分配给具有“开放”实例资格且未与任何账户共享的容量预留。
+ 当您拆分已用容量时，系统将随机选择符合条件的实例。您无法指定拆分哪些正在运行的实例。如果找不到足够数量的合格实例来满足拆分数量，则拆分操作将失败。
+ 从现有预留中拆分的最大实例数量等于预留的大小减一。例如，如果预留总容量为 5 个实例，则最多可以将 4 个实例拆分为一个新的预留。
+ **未来日期的容量预留** – 在承诺期内，您不能拆分未来日期的容量预留的容量。
+ **资源组**：如果现有容量预留属于资源组，则新容量预留不会自动添加到该资源组。如有必要，可以在创建新容量预留后将其添加到资源组。
+ **共享**：如果现有容量预留与消费者账户共享，则新容量预留不会自动与消费者账户共享。如有必要，您可以在创建新容量预留后将其共享。
+ **集群置放群组**：如果现有容量预留是集群置放群组的一部分，则新容量预留将在同一个集群置放群组中创建。

**注意**  
不支持从容量块中拆分容量。

## 使用标签控制拆分容量预留的访问权限
<a name="capacity-reservations-split-permissions"></a>

您可以使用标签来控制对 Amazon EC2 资源的访问，包括从现有容量预留中拆分容量以创建新容量预留。有关更多信息，请参阅《*IAM 用户指南*》中的[使用标签控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)。

要使用标签控制拆分容量预留的访问权限，请确保在策略语句中同时指定资源和请求标签，因为 IAM 策略是根据源容量预留和新创建的容量预留进行评估的。以下示例策略包括带有源容量预留标签 `Owner=ExampleDepartment1` 的 `ec2:ResourceTag` 条件键和带有新创建容量预留标签 `stack=production` 的条件键 `ec2:RequestTag`。

```
{
  "Statement": [
    {
      "Sid": "AllowSourceCapacityReservation",
      "Effect": "Allow",
      "Action": "ec2:CreateCapacityReservationBySplitting",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:capacity-reservation/cr-1234567890abcdef0",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/Owner": "ExampleDepartment1"
        }
      }
    },
    {
      "Sid": "AllowNewlyCreatedCapacityReservation",
      "Effect": "Allow",
      "Action": ["ec2:CreateCapacityReservationBySplitting", "ec2:CreateTags"],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:capacity-reservation/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/stack": "production"
        }
      }
    }
  ]
}
```

## 拆分容量
<a name="capacity-reservations-split-procedures"></a>

可以从现有容量预留中拆分容量来创建新的容量预留。

------
#### [ Console ]

**拆分容量**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在左侧导航窗格中，选择**容量预留**。

1. 选择具有可拆分容量的按需容量预留 ID。

1. 在**操作**、**管理容量**下，选择**拆分**。

1. 在**拆分容量预留**页面的**要拆分的数量**下，使用滑块或键入要从当前预留中拆分的实例数量。

1. （可选）为新容量预留添加标签。

1. 查看摘要，准备就绪后，选择**拆分**。

------
#### [ AWS CLI ]

**拆分容量**  
使用 `create-capacity-reservation-by-splitting` 命令。以下示例通过从指定容量预留中拆分 10 个实例来创建新的容量预留。

```
aws ec2 create-capacity-reservation-by-splitting \
    --source-capacity-reservation-id cr-1234567890abdef0 \
    --instance-count 10
```

------
#### [ PowerShell ]

**拆分容量**  
使用 [New-EC2CapacityReservationBySplitting](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2CapacityReservationBySplitting.html) cmdlet。以下示例通过从指定容量预留中拆分 10 个实例来创建新的容量预留。

```
New-EC2CapacityReservationBySplitting `
    -SourceCapacityReservationId cr-1234567890abdef0 `
    -InstanceCount 10
```

------

# 取消 容量预留
<a name="capacity-reservations-release"></a>

可以取消处于以下状态之一的容量预留：
+ `assessing`
+ `active` 但没有承诺期限或承诺期限已过。在承诺期限内不能取消未来日期的容量预留。

**注意**  
您无法修改或取消容量块。有关更多信息，请参阅 [ML 容量块](ec2-capacity-blocks.md)。

如果未来日期的容量预留进入 `delayed` 状态，则承诺期限将被免除，并且您可以在其进入 `active` 状态后立即将其取消。

取消容量预留之后，该容量将立即释放，不再保留供您使用。

您可以取消空容量预留以及具有正在运行的实例的容量预留。如果您取消具有正在运行的实例的容量预留，这些实例将继续在容量预留之外正常运行并应用标准按需型实例费率；或者，如果您有匹配的节省计划或区域预留实例，则应用折扣费率。

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

------
#### [ Console ]

**取消容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**容量预留**，然后选择要取消的容量预留。

1. 依次选择**取消预留**、**取消预留**。

------
#### [ AWS CLI ]

**取消容量预留**  
使用 [cancel-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-capacity-reservation.html) 命令。

```
aws ec2 cancel-capacity-reservation \
    --capacity-reservation-id cr-1234567890abcdef0
```

------
#### [ PowerShell ]

**取消容量预留**  
使用 [Remove-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2CapacityReservation.html) cmdlet。

```
Remove-EC2CapacityReservation `
    -CapacityReservationId cr-1234567890abcdef0
```

------

# 使用集群置放群组的容量预留
<a name="cr-cpg"></a>

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

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

在集群置放群组中创建容量预留后，可以与其他 AWS 账户共享。有关更多信息，请参阅 [共享集群置放群组中的容量预留](#cpg-cr-sharing)。

**Topics**
+ [限制](#cr-cpg-limitations)
+ [使用集群置放群组中的容量预留](#work-with-crs-cpgs)
+ [共享集群置放群组中的容量预留](#cpg-cr-sharing)

## 限制
<a name="cr-cpg-limitations"></a>

在集群置放群组中创建容量预留时，请牢记以下几点：
+ 如果现有容量预留不在置放群组中，则您无法修改容量预留以在置放群组中预留容量。要在置放群组中预留容量，您必须在置放群组中创建容量预留。
+ 在置放群组中创建容量预留后，您无法对其进行修改以在置放群组之外预留容量。
+ 您可以通过修改置放群组中的现有容量预留或在置放群组中创建其他容量预留来增加置放群组中的预留容量。但是，您增加了出现容量不足错误的机会。
+ 您只能从所拥有的集群置放群组共享容量预留。不能共享非所属的集群置放群组中的容量预留。
+ 您无法删除具有 `active` 容量预留的集群置放群组。删除前，您必须先取消集群置放群组中的所有容量预留。

## 使用集群置放群组中的容量预留
<a name="work-with-crs-cpgs"></a>

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

**注意**  
如果要在现有集群置放群组中创建容量预留，请跳过步骤 1。然后，对于步骤 2 和 3，请指定现有集群置放群组的 ARN。

**Topics**
+ [步骤 1：（*条件*）创建用于容量预留的集群置放群组](#create-cpg)
+ [步骤 2：在集群置放群组中创建容量预留](#create-cr-in-cpg)
+ [步骤 3：将实例启动到在集群置放群组的容量预留中](#launch-instance-into-cpg)

### 步骤 1：（*条件*）创建用于容量预留的集群置放群组
<a name="create-cpg"></a>

仅在需要创建新的集群置放群组时，执行此步骤。要使用现有的集群置放群组，请跳过此步骤，然后对于步骤 2 和 3，使用该集群置放群组的 ARN。

------
#### [ Console ]

**创建集群置放群组**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Placement Groups**（置放群组），然后选择 **Create placement group**（创建置放群组）。

1. 对于 **Name**（名称），为置放群组指定一个描述性名称。

1. 对于 **Placement strategy**（置放策略），选择 **Cluster**（集群）。

1. 选择**创建群组**。

1. 在**置放群组**表的**群组 ARN** 列中，记下您创建的集群置放群组的 ARN。下一步中您将需要使用该值。

------
#### [ AWS CLI ]

**创建集群置放群组**  
使用 [create-placement-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-placement-group.html) 命令。

```
aws ec2 create-placement-group \
    --group-name MyPG \
    --strategy cluster
```

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

------
#### [ PowerShell ]

**创建集群置放群组**  
使用 [New-EC2PlacementGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2PlacementGroup.html) cmdlet。

```
New-EC2PlacementGroup `
    -GroupName my-placement-group `
    -Strategy "cluster"
```

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

------

### 步骤 2：在集群置放群组中创建容量预留
<a name="create-cr-in-cpg"></a>

在集群置放群组中创建容量预留的方式与创建任何容量预留的方式相同。但是，您还必须指定要在其中创建容量预留的集群置放群组的 ARN。

**注意事项**
+ 指定的集群置放群组必须处于 `available` 状态。如果集群置放群组处于 `pending`、`deleting` 或 `deleted` 状态，则请求将失败。
+ 容量预留和集群置放群组必须位于同一可用区。如果创建容量预留的请求指定的可用区与集群置放群组的可用区不同，则请求将失败。
+ 您只能为集群置放群组支持的实例类型创建容量预留。如果您指定了不受支持的实例类型，则请求将失败。
+ 如果您在集群置放群组中创建 `open` 容量预留，并且现有正在运行的实例具有匹配属性（置放群组 ARN、实例类型、可用区、平台和租期），这些实例将在容量预留中自动运行。
+ 如果出现以下情况之一，创建容量预留的请求会失败：
  + Amazon EC2没有足够的容量来满足请求。请稍后重试、尝试不同的可用区或者尝试较小的容量。如果您的工作负载灵活地跨实例类型和大小，请尝试不同的实例属性。
  + 请求的数量超过选定实例系列的个按需型实例限制。增加该实例系列的个按需型实例限制，然后重试。有关更多信息，请参阅 [按需型实例限额](ec2-on-demand-instances.md#ec2-on-demand-instances-limits)。

------
#### [ Console ]

**创建容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择 **容量预留 (容量预留)**，然后选择 **Create 容量预留 (创建容量预留)**。

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

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

1. 选择**创建**。

有关更多信息，请参阅 [创建 容量预留](capacity-reservations-create.md)。

------
#### [ AWS CLI ]

**创建容量预留**  
使用 [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) 命令。对于 `--placement-group-arn`，请指定要在其中创建容量预留的集群置放群组的 ARN。

```
aws ec2 create-capacity-reservation \
    --instance-type instance_type \
    --instance-platform platform \
    --availability-zone-id az_id \
    --instance-count quantity \
    --placement-group-arn "placement_group_arn"
```

------
#### [ PowerShell ]

**创建容量预留**  
使用 [Add-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2CapacityReservation.html) cmdlet。对于 `-PlacementGroupArn`，请指定要在其中创建容量预留的集群置放群组的 ARN。

```
Add-EC2CapacityReservation `
    -InstanceType instance_type `
    -InstancePlatform platform `
    -AvailabilityZoneId az_id `
    -InstanceCount quantity `
    -PlacementGroupArn "placement_group_arn"
```

------

### 步骤 3：将实例启动到在集群置放群组的容量预留中
<a name="launch-instance-into-cpg"></a>

您可以使用以下一种选项将实例启动到集群置放群组中的容量预留。
+ *指定要启动实例的目标集群置放群组的 ARN* — 当提供了集群置放群组的 ARN 时，Amazon EC2 会将实例启动到该集群置放群组中。您可以使用以下方法之一：
  + *指定 `open`*：无需在实例启动请求中指定容量预留。如果实例具有匹配指定置放群组中的容量预留的属性（置放群组 ARN、实例类型、可用区、平台和租期），这些实例将在容量预留中自动运行。
  + *指定容量预留* - 如果容量预留仅接受目标实例启动，则除了请求中的集群置放群组之外，还必须指定目标容量预留。
  + *指定容量预留组*：有关更多信息，请参阅[在容量预留组中使用集群置放群组的容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cpg-odcr-crg.html)。
+ *仅指定容量预留组*：有关更多信息，请参阅[在容量预留组中使用集群置放群组的容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cpg-odcr-crg.html)。
+ *仅指定容量预留*：可以将实例启动到集群置放群组的容量预留中。
**注意**  
通过仅指定容量预留或仅指定容量预留组来启动实例时，实例将启动到集群置放群组中创建的容量预留中，但这些实例不会直接附加到集群置放群组。

------
#### [ Console ]

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

1. 按照步骤[启动实例](ec2-launch-instance-wizard.md)，但请在完成以下步骤以指定置放群组和容量预留的设置之后再启动实例。

1. 展开**高级详细信息**，并执行以下操作：

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

   1. 对于 **Capacity Reservation**（容量预留），请选择以下选项之一，具体取决于容量预留的配置：
      + **打开** – 将实例启动到集群置放群组中任何具有匹配属性和足够容量的 `open` 容量预留。
      + **按 ID 定位** – 将实例启动到只接受目标实例启动的容量预留中。
      + **按组定位** –在所选容量预留组中任何具有匹配属性和可用容量的容量预留中启动实例。

1. 在 **Summary**（摘要）面板中查看实例配置，然后选择 **Launch instance**（启动实例）。有关更多信息，请参阅 [使用控制台中的启动实例向导来启动 EC2 实例](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**在现有容量预留中启动实例**  
可以使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。如果您需要定位特定容量预留或容量预留组，请指定 `--capacity-reservation-specification` 参数。对于 `--placement`，请指定 `GroupName` 参数，然后指定您在上述步骤中创建的置放群组的名称。

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

------
#### [ PowerShell ]

**在现有容量预留中启动实例**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet。对于 `-Placement`，请指定 `GroupName` 参数，然后指定您在上述步骤中创建的置放群组的名称。

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType instance_type `
    -KeyName key_pair_name `
    -SubnetId subnet-0abcdef1234567890 `
    -CapacityReservationTarget_CapacityReservationId capacity_reservation_id `
    -Placement_GroupName cluster_placement_group_name
```

------

## 共享集群置放群组中的容量预留
<a name="cpg-cr-sharing"></a>

可通过仅共享容量预留或同时共享容量预留和创建容量预留的集群置放群组，来共享集群置放群组的容量预留。

通过仅共享容量预留，您仅向使用者账户提供该容量预留的访问权限。使用者账户无法看到或访问创建容量预留的集群置放群组。这样就对使用者账户的访问提供了细粒度的控制。使用者账户无法查看有关集群置放群组的任何信息，包括其 ARN。

当共享集群置放群组和容量预留时，使用者账户可以看到并访问集群置放群组。使用者账户可启动实例并在实例中创建自己的容量预留。

有关详细信息，请参阅以下资源：
+ [将实例启动到在集群置放群组的容量预留中](#launch-instance-into-cpg)
+ [共享容量预留](capacity-reservation-sharing.md)
+ [共享置放群组](share-placement-group.md)

# 容量预留组
<a name="create-cr-group"></a>

您可以使用 AWS Resource Groups 创建称为 *Resource Groups* 的容量预留逻辑集合。资源组是全部位于同一 AWS 区域的 AWS 资源的逻辑分组。有关 Resource Groups 的更多信息，请参阅 *AWS Resource Groups 用户指南*中的[什么是 Resource Groups？](https://docs.aws.amazon.com/ARG/latest/userguide/)

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

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

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

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

**Topics**
+ [创建组](create-group.md)
+ [向组中添加容量预留](add-to-group.md)
+ [从组中删除容量预留](remove-from-group.md)
+ [删除组](delete-group.md)
+ [在容量预留组中使用集群置放群组的容量预留](using-cpg-odcr-crg.md)

# 创建容量预留组
<a name="create-group"></a>

您可以使用以下示例，通过以下请求参数为容量预留创建资源组。
+ `AWS::EC2::CapacityReservationPool`：可确保资源组可以作为实例启动的目标。
+ `AWS::ResourceGroups::Generic`，并将 `allowed-resource-types` 设置为 `AWS::EC2::CapacityReservation`：可确保资源组仅接受容量预留。

创建组后，您可以向该组[添加容量预留](add-to-group.md)。

------
#### [ AWS CLI ]

**为容量预留创建组**  
使用 [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) AWS CLI 命令。

```
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"]}]}'
```

------
#### [ PowerShell ]

**为容量预留创建组**  
使用 [New-RGGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-RGGroup.html) cmdlet。

```
New-RGGroup `
    -Name MyCRGroup `
    -Configuration `
        @{"Type"="AWS::EC2::CapacityReserationPool"} `
        @{"Type"="AWS::ResourceGroups::Generic"; "Parameters"=@{"allowed-resource-types"=@{"Values"="AWS::EC2::CapacityReservations"}}}
```

------

# 向组中添加容量预留
<a name="add-to-group"></a>

如果您将与您共享的容量预留添加到组中，此时该容量预留取消共享，则它会自动从组中删除。

------
#### [ AWS CLI ]

**向组中添加容量预留**  
使用 [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) 命令。

以下示例向指定组添加两个容量预留。

```
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
```

------
#### [ PowerShell ]

**向组中添加容量预留**  
使用 [Add-RGResource](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-RGResource.html) cmdlet。

以下示例向指定组添加两个容量预留。

```
Add-RGResource `
    -Group MyCRGroup `
    -ResourceArn `
        "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", `
        "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
```

------

# 从组中删除容量预留
<a name="remove-from-group"></a>

您可以使用以下示例从组中删除容量预留。

------
#### [ AWS CLI ]

**从组中删除容量预留**  
使用 [ungroup-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/ungroup-resources.html) 命令。

以下示例从指定组中删除两个容量预留。

```
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
```

------
#### [ PowerShell ]

**从组中删除容量预留**  
使用 [Remove-RGResource](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-RGResource.html) cmdlet。

以下示例从指定组中删除两个容量预留。

```
Remove-RGResource `
    -Group MyCRGroup `
    -ResourceArn `
        "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-0e154d26a16094dd", `
        "arn:aws:ec2:sa-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
```

------

# 删除容量预留组
<a name="delete-group"></a>

您可以使用以下示例删除容量预留组。

------
#### [ AWS CLI ]

**删除组**  
使用 [delete-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/delete-group.html) 命令。

```
aws resource-groups delete-group --group MyCRGroup
```

------
#### [ PowerShell ]

**删除组**  
使用 [Remove-RGGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-RGGroup.html) cmdlet。

```
Remove-RGGroup -GroupName MyCRGroup
```

------

# 在容量预留组中使用集群置放群组的容量预留
<a name="using-cpg-odcr-crg"></a>

Amazon EC2 提供不同的启动方法供您在容量预留中使用集群置放群组的容量预留。您可以根据工作负载要求，选择以下一种方法来定位容量预留组：
+ *指定集群置放群组和容量预留组的 ARN*：这将在所选容量预留组中使用任何具有匹配属性和可用容量的可用容量预留。如果所选组中没有具有匹配属性和可用容量的容量预留，将会在按需容量中启动实例。
**注意**  
使用此方法启动实例时，实例将被置于指定的集群置放群组中。
+ *仅指定容量预留组*：通过仅指定容量预留组，使用容量预留组中的所有可用容量。启动实例时，将按以下顺序使用容量：
  + 未与任何集群置放群组关联的容量预留。
  + 容量预留组内任何集群置放群组中的容量预留。
  + 如果该组中没有具有匹配属性和可用容量的容量预留，相关实例将会使用按需容量运行，而不会被置于集群置放群组中。
**注意**  
仅通过指定容量预留组来启动实例时，实例将启动到集群置放群组中创建的容量预留中，但这些实例不会不直接附加到集群置放群组。

# Local Zones 中的容量预留
<a name="capacity-reservations-localzones"></a>

本地区域是在地理位置上靠近用户的AWS区域的扩展。在本地区域中创建的资源可以通过非常低延迟的通信为本地用户提供服务。有关更多信息，请参阅 [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)。

您可以通过在本地区域中创建新的子网，将 VPC 从其父AWS区域扩展到该本地区域。当您在本地扩展区中创建子网时，VPC 也会扩展到该本地扩展区。本地区域中的子网与 VPC 中其他子网的运行相同。

通过使用 Local Zones，您可以将容量预留放在更靠近用户的多个位置。您可以按照在常规可用区中创建和使用容量预留的方法，在 Local Zones 中创建和使用容量预留。相同的功能和实例匹配行为适用。有关在 Local Zones 中支持的定价模式的更多信息，请参阅 [AWS Local Zones 常见问题解答](https://aws.amazon.com/about-aws/global-infrastructure/localzones/faqs/)。

**注意事项**  
您不能在本地区域中使用容量预留组。

**在本地区域中使用容量预留**

1. 启用本地区域以在您的AWS账户中使用。有关更多信息，请参阅《AWS Local Zones User Guide》**中的 [Getting started with AWS Local Zones](https://docs.aws.amazon.com/local-zones/latest/ug/getting-started.html)。

1. 在本地区域中创建容量预留。对于 **Availability Zone (可用区)**，选择本地区域。本地区域由AWS区域代码后跟一个指示位置的标识符表示，例如 `us-west-2-lax-1a`。有关更多信息，请参阅[创建 容量预留](capacity-reservations-create.md)。

1. 在本地扩展区中创建子网。对于 **Availability Zone (可用区)**，选择本地区域。有关更多信息，请参阅《*Amazon VPC 用户指南*》中的[在 VPC 中创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. 启动一个实例。对于 **Subnet (子网)**，在本地区域（例如 `subnet-123abc | us-west-2-lax-1a`）中选择子网，对于 **Capacity Reservation (容量预留)**，选择您在本地区域中创建的容量预留所需的规格（可以为 `open` 或按 ID 定位）。有关更多信息，请参阅[在现有 容量预留 中启动实例](capacity-reservations-launch.md)。

# Wavelength 区中的 容量预留
<a name="capacity-reservations-wavelengthzones"></a>

利用 *AWS Wavelength*，开发人员可以为移动设备和最终用户打造具有超低延迟的应用程序。Wavelength 可以将标准 AWS 计算和存储服务部署到电信运营商的 5G 网络边缘。您可以将 Amazon Virtual Private Cloud (VPC) 扩展到一个或多个 Wavelength 区域。然后，您可以使用 Amazon EC2 实例之类的AWS资源来运行需要超低延迟和连接到该区域中的AWS服务的应用程序。有关更多信息，请参阅 [AWS Wavelength 域](https://aws.amazon.com//wavelength/)。

创建按需 容量预留 时，您可以选择 Wavelength 区域，然后通过指定与 Wavelength 区域关联的子网，将实例启动到 Wavelength 区域内的 容量预留 中。Wavelength 区域由AWS区域代码后跟一个指示位置的标识符表示，例如 `us-east-1-wl1-bos-wlz-1`。

Wavelength 区域并非在每个区域中都可用。有关支持 Wavelength 区域的区域的信息，请参阅 *AWS Wavelength 开发人员指南*中的[可用 Wavelength 区域](https://docs.aws.amazon.com/wavelength/latest/developerguide/wavelength-quotas.html)。

**注意事项**  
您不能在 Wavelength 区中使用 容量预留 组。

**在 Wavelength 区中使用 容量预留**

1. 启用 Wavelength 区域以在您的AWS账户中使用。有关更多信息，请参阅 *AWS Wavelength 开发人员指南*中的 [AWS Wavelength 入门](https://docs.aws.amazon.com/wavelength/latest/developerguide/get-started-wavelength.html)。

1. 在 Wavelength 区中创建 容量预留。对于**可用区**，选择 Wavelength。Wavelength 由AWS区域代码后跟一个指示位置的标识符表示，例如 `us-east-1-wl1-bos-wlz-1`。有关更多信息，请参阅[创建 容量预留](capacity-reservations-create.md)。

1. 在 Wavelength 区中创建子网。对于**可用区**，选择 Wavelength 区。有关更多信息，请参阅《*Amazon VPC 用户指南*》中的[在 VPC 中创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. 启动一个实例。对于**子网**，在 Wavelength 区（例如 `subnet-123abc | us-east-1-wl1-bos-wlz-1`）中选择子网，对于**容量预留**，选择您在 Wavelength 中创建的 容量预留 所需的规格（可以为 `open` 或按 ID 定位）。有关更多信息，请参阅[在现有 容量预留 中启动实例](capacity-reservations-launch.md)。

# AWS Outposts 上的容量预留
<a name="capacity-reservations-outposts"></a>

AWS Outposts 是一项完全托管的服务，可将 AWS 基础设施、服务、API 和工具扩展到客户场所。通过提供对 AWS 托管基础设施的本地访问，AWS Outposts 使客户能够使用与 AWS 区域中相同的编程接口在本地构建和运行应用程序，同时使用本地计算和存储资源来满足更低的延迟和本地数据处理需求。

Outpost 是部署在客户站点的 AWS 计算和存储容量池。AWS 作为 AWS 区域的一部分运营、监控和管理此容量。

您可以对您在账户中创建的 Outpost 创建容量预留。这样，您就可以在站点的 Outpost 上预留计算容量。您可以按照在常规可用区中创建和使用容量预留的方法，在 Outpost 中创建和使用容量预留。相同的功能和实例匹配行为适用。

您可以使用 AWS Resource Access Manager 与您组织内的AWS账户共享 Outpost 上的容量预留。有关共享预留容量的更多信息，请参阅[共享容量预留](capacity-reservation-sharing.md)。

**先决条件**  
您的站点必须安装一个 Outpost。有关更多信息，请参阅 *AWS Outposts 用户指南*中的[创建 Outpost 并订购 Outpost 容量](https://docs.aws.amazon.com/outposts/latest/userguide/order-outpost-capacity.html)。

**注意事项**
+ 您不能使用 Outpost 上的容量预留组。

**使用 Outpost 上的容量预留组**

1. 在 Outpost 上创建子网。有关更多信息，请参阅 *AWS Outposts 用户指南*中的[创建子网](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#create-subnet)。

1. 在 Outpost 上创建容量预留。

   1. 打开 AWS Outposts 控制台 ([https://console.aws.amazon.com/outposts/](https://console.aws.amazon.com/outposts/home))。

   1. 在导航窗格中，选择 **Outpost**，然后选择 **Actions (操作)**、**Create Capacity Reservation (创建容量预留)**。

   1. 根据需要配置容量预留，然后选择 **Create (创建)**。有关更多信息，请参阅[创建 容量预留](capacity-reservations-create.md)。
**注意**  
**Instance Type (实例类型)** 下拉菜单仅列出所选 Outpost 支持的实例类型，**Availability Zone (可用区)** 下拉菜单仅列出与所选 Outpost 相关的可用区。

1. 在现有容量预留中启动实例 对于 **Subnet (子网)**，选择您在步骤 1 中创建的子网，对于 **Capacity Reservation (容量预留)**，选择您在步骤 2 中创建的容量预留。有关更多信息，请参阅 *AWS Outposts 用户指南*中的[在 Outpost 中启动实例](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#launch-instances)。

# 共享容量预留
<a name="capacity-reservation-sharing"></a>

容量预留共享使容量预留拥有者能够与其他AWS账户或在AWS组织内共享其预留容量。这使您能够集中创建和管理容量预留，并跨多个AWS账户或在AWS组织内共享预留容量。

在此模型中，拥有容量预留的AWS账户（拥有者）将与其他AWS账户（使用者）共享它。使用者可以在与其共享的容量预留中启动实例，所用方式与他们在自己的账户中拥有的容量预留中启动实例的方式相同。容量预留拥有者负责管理容量预留以及它们启动到其中的实例。拥有者无法修改使用者启动到已共享的容量预留中的实例。使用者负责管理启动到与其共享的容量预留中的实例。使用者无法查看或修改由其他使用者或容量预留拥有者拥有的实例。

容量预留拥有者可与以下对象共享容量预留：
+ 其 AWS 组织内部或外部的特定 AWS 账户
+ 其 AWS 组织内的组织部门
+ 其整个 AWS 组织

## 共享容量预留的先决条件
<a name="sharing-cr-prereq"></a>
+ 要共享容量预留，您必须在您的AWS账户拥有它。无法共享已与您共享的容量预留。
+ 您只能为共享租赁实例共享 容量预留。您无法为专用租赁实例共享 容量预留。
+ 容量预留共享不适用于新的AWS账户或具有有限账单历史记录的AWS账户。
+ 要与您的AWS组织或AWS组织内的组织部门共享容量预留，您必须允许与 AWS Organizations 共享。有关更多信息，请参阅 *AWS RAM 用户指南*中的[允许与 AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) 共享。
+  您可以共享处于 `active` 或 `scheduled` 状态的容量预留。您不能共享处于其他[状态](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-capacity-block.html)（如 `assessing` 或 `unsupported`）的容量预留。

## 相关服务
<a name="cr-sharing-related"></a>

容量预留共享与 AWS Resource Access Manager (AWS RAM) 集成。AWS RAM 是一项服务，允许您与任何AWS账户或通过 AWS Organizations 共享AWS资源。利用 AWS RAM，您可通过创建*资源共享*来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者可以是单个 AWS 账户或 AWS Organizations 中的组织部门或整个组织。

AWS RAM有关 * 的更多信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/) 用户指南*。

## 跨可用区共享
<a name="cr-sharing-azs"></a>

为确保资源分配到区域的各可用区，我们将可用区独立映射到每个账户的名称。这可能会导致账户之间的可用区命名差异。例如，您的 `us-east-1a` 账户的可用区 AWS 可能与另一 `us-east-1a` 账户的 AWS 不在同一位置。

要确定容量预留相对于账户的位置，您必须使用*可用区 ID* (AZ ID)。AZ ID 是跨所有 AWS 账户的可用区的唯一且一致的标识符。例如，`use1-az1` 是 `us-east-1` 区域的 AZ ID，它在每个 AWS 账户中的位置均相同。

**查看账户中的可用区的 AZ ID**

1. 打开 AWS RAM 控制台 ([https://console.aws.amazon.com/ram/home](https://console.aws.amazon.com/ram/home))。

1. 当前区域的 AZ ID 显示在屏幕右侧的 **Your AZ ID (您的 AZ ID)** 面板中。

# 共享 容量预留
<a name="sharing-cr"></a>

在与其他 AWS 账户共享您拥有的容量预留时，您必须启用它们以便将实例启动到预留容量中。如果您共享开放容量预留，请记住以下内容，因为它可能导致意外的容量预留使用：
+ 如果使用者拥有与容量预留的属性匹配的运行中实例、已将 `CapacityReservationPreference` 参数设置为 `open` 且尚未在预留容量中运行，他们将自动使用共享容量预留。
+ 如果使用者启动具有匹配属性（实例类型、平台、可用区和租赁）的实例，并且已将 `CapacityReservationPreference` 参数设置为 `open`，则它们将自动启动到共享容量预留中。

要共享容量预留，您必须将它添加到资源共享。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。资源共享指定要共享的资源以及与之共享资源的使用者。在使用 Amazon EC2 控制台共享容量预留时，必须将它添加到现有资源共享。要将容量预留添加到新的资源共享，您必须使用 [AWS RAM 控制台](https://console.aws.amazon.com/ram)创建资源共享。

如果您属于 AWS Organizations 中的某个企业并且已在您的组织中启用共享，当达到[共享先决条件](capacity-reservation-sharing.md#sharing-cr-prereq)时，组织中的使用者将自动获得对所共享容量预留的访问权限。如果与外部账户共享了容量预留，他们会收到加入资源共享的邀请，并在接受邀请后获得对所共享容量预留的访问权限。

**重要**  
在与您共享的容量预留中启动实例之前，请通过以下任一方式验证您是否拥有访问共享的容量预留的权限：在控制台中进行查看，或使用 [ describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) AWS CLI 命令对其进行描述。如果您可以在控制台中查看共享的容量预留或者使用 AWS CLI 描述它，即表示您可以使用它，并且可以在其中启动实例。如果您尝试在容量预留中启动实例，但由于共享失败而无法访问容量预留，则实例将在按需型容量中启动。

------
#### [ Console ]

**使用 Amazon EC2 控制台共享您拥有的容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 选择要共享的容量预留，然后选择**操作**、**共享预留**。

1. 选择要将容量预留添加到的资源共享，然后选择**共享容量预留**。

   使用者可能需要几分钟的时间才能访问共享容量预留。

**使用 AWS RAM 控制台共享您拥有的容量预留**  
请参阅《AWS RAM 用户指南**》中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

------
#### [ AWS CLI ]

**共享您拥有的容量预留**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

```
aws ram create-resource-share \
    --name my-resource-share \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE
```

------
#### [ PowerShell ]

**共享您拥有的容量预留**  
使用 [New-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/New-RAMResourceShare.html) cmdlet。

```
New-RAMResourceShare `
    -Name my-resource-share `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE"
```

------

# 停止共享容量预留
<a name="unsharing-cr"></a>

容量预留拥有者可以随时停止共享容量预留。以下规则适用：
+ 在停止共享时在共享容量中运行的使用者所拥有的实例继续在预留容量之外正常运行，并且根据 Amazon EC2 容量可用性将容量还原到容量预留。
+ 与之共享容量预留的使用者不再能够在预留容量中启动新实例。

要停止共享您拥有的共享容量预留，必须从资源共享中将其删除。

------
#### [ Console ]

**使用 Amazon EC2 控制台停止共享您拥有的容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 选择容量预留并选择**共享**选项卡。

1. **共享**选项卡列出了已将容量预留添加到的资源共享。选择要从中删除容量预留的资源共享，然后选择**从资源共享中删除**。

**使用 AWS RAM 控制台停止共享您拥有的容量预留**  
请参阅 *AWS RAM 用户指南*中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)。

------
#### [ AWS CLI ]

**停止共享您拥有的容量预留**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

```
aws ram disassociate-resource-share \
    --resource-share-arn arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE \
	--resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE
```

------
#### [ PowerShell ]

**停止共享您拥有的容量预留**  
使用 [Disconnect-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/Disconnect-RAMResourceShare.html) cmdlet。

```
Disconnect-RAMResourceShare `
    -ResourceShareArn "arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE" `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE"
```

------

# 共享 Amazon EC2 容量预留的账单分配
<a name="assign-billing"></a>

默认情况下，共享容量预留时，所有者需要为其在容量预留中运行的实例以及容量预留中的任何可用容量（也称为*未使用容量*）付费；而使用者仅为其在共享容量预留中运行的实例付费。

需要时，容量预留所有者可以将容量预留中任何可用容量的账单分配给与之共享容量预留的任何账户。将账单分配给其他账户后，该账户将成为容量预留中任何可用容量的*账单所有者*。从那时起，容量预留中可用容量的任何费用都将计入分配的账户，而不是所有者的账户。容量预留所有者和与之共享容量预留的账户将继续为其在容量预留中运行的实例收费。

**重要**  
 容量预留所有者始终是资源所有者，并且继续负责管理其容量预留。向其分配了账单的账户并未获得任何其他权限；无法以任何方式取消、修改或共享容量预留。

**Topics**
+ [工作原理](#how-billing-ownership-works)
+ [注意事项](#billing-ownership-considerations)
+ [分配账单](request-billing-transfer.md)
+ [查看账单分配请求](view-billing-transfers.md)
+ [接受或拒绝账单](accept-decline-billing-transfer.md)
+ [取消或撤销请求](cancel-billing-transfer.md)
+ [监控请求](billing-ownership-events.md)

## 工作原理
<a name="how-billing-ownership-works"></a>

只有容量预留所有者才能将共享容量预留的账单分配给其他账户。账单只能分配给与之共享容量预留，且与容量预留所有者合并到同一个 AWS Organizations 付款人账户下的账户。

要将容量预留的可用容量账单分配给其他账户，容量预留所有者必须向所需账户发起请求。指定账户收到请求后，必须在 12 小时内接受或拒绝请求。
+ 如果该账户**接受**，则将成为容量预留中任何可用容量（也称为*未使用容量*）的*账单所有者*。从那时起，容量预留中任何可用容量的费用都将计入其账户，而不是所有者的账户。接受后，只有容量预留所有者才能撤销已分配账户的账单。
+ 如果该账户**拒绝**，则容量预留所有者仍是容量预留中可用容量的账单所有者。容量预留中任何可用容量的费用都将继续计入所有者的账户。
+ 如果指定账户在 12 小时内**没有接受或拒绝**该请求，则该请求将会过期，并且所有者的账户会继续产生容量预留中任何可用容量的费用。

将账单分配给其他账户后，`Reservation` 和 `UnusedBox` 行项目将在分配的账户的成本和使用情况报告（CUR）中显示，而不是在所有者的 CUR 中显示。

下表显示了在将账单分配给其他账户**之前**，容量预留所有者和使用者账户的 CUR 中显示的行项目。


| Account | 在分配账单之前的 CUR 行项目 | 
| --- | --- | 
| 容量预留所有者 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/assign-billing.html)  | 
| 与之共享了容量预留的使用者账户 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/assign-billing.html)  | 

下表显示了在将账单分配给其他账户**之后**，容量预留所有者和使用者账户的 CUR 中显示的行项目。


| Account | 在分配账单之后的 CUR 行项目 | 
| --- | --- | 
| 容量预留所有者 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/assign-billing.html)  | 
| 向其分配了账单的使用者账户 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/assign-billing.html)  | 
| 与之共享了容量预留的其他使用者账户 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/assign-billing.html)  | 

**注意**  
\$1 仅当有使用容量预留的实例正在运行时，`BoxUsage` 行项目才会在账户的 CUR 中显示。有关 CUR 行项目的更多信息，请参阅[监控容量预留](https://docs.aws.amazon.com/cur/latest/userguide/monitor-ondemand-reservations.html)。
使用 CUR 中的容量预留 ARN 可确定谁是容量预留的所有者。如果 ARN 包含您的 AWS 账户 ID，则您就是容量预留的所有者。否则，容量预留由其他账户所有，但账单分配给了您。
所有者分配给容量预留的成本分配标签不会出现在使用者账户的 CUR 中。成本分配标签仅在容量预留所有者的 CUR 中显示。

## 注意事项
<a name="billing-ownership-considerations"></a>

在分配共享容量预留的账单时，请注意以下几点：
+ 不能进行部分账单或拆分账单分配。一次只能将一个容量预留的所有可用容量的账单分配给一个账户。
+ 容量预留的可用容量可能会持续变化。这将影响分配的账户的账单。例如，假设容量预留所有者增加了容量预留的大小，或者其他使用者账户停止或终止了在容量预留中运行的实例，则可用容量可能会增加。
+ 账单只能分配给合并到同一 AWS Organizations 付款人账户下的使用者账户。如果该使用者账户离开组织或者不再与其共享容量预留，则会自动撤销其账单。
+ 只有容量预留所有者可以取消待处理的账单分配请求，以及在请求被接受后撤销已分配账户的账单。

# 将共享 EC2 容量预留的账单分配给其他账户
<a name="request-billing-transfer"></a>

要将共享容量预留的可用容量账单分配给其他账户，容量预留所有者必须向所需账户发起请求。在 Amazon EC2 控制台中，此请求称为*转移请求*。

只有在满足下列条件时，容量预留所有者才能将容量预留的可用容量的账单分配给某个账户：
+ 该容量预留已与该账户共享。
+ 该账户与容量预留所有者合并到同一 AWS Organizations 付款人账户下。

只有在指定账户接受请求后，才会将账单分配给该账户。

容量预留所有者发起请求时，系统会将一个 Amazon EventBridge 事件发送给被请求的账户。有关更多信息，请参阅 [监控共享容量预留的账单分配请求](billing-ownership-events.md)。

------
#### [ Console ]

**分配共享容量预留的账单**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**容量预留**，然后选择该共享容量预留。

1. 在**可用容量的账单**部分中，选择**分配账单**。

1. 在**分配账单**屏幕中，选择要向其分配账单的使用者账户，然后选择**请求**。

------
#### [ AWS CLI ]

**分配共享容量预留的账单**  
使用 [associate-capacity-reservation-billing-owner](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-capacity-reservation-billing-owner.html) 命令。对于 `--capacity-reservation-id`，指定共享容量预留的 ID。对于 `--unused-reservation-billing-owner-id`，请指定要向其分配账单的 AWS 账户的 ID。

```
aws ec2 associate-capacity-reservation-billing-owner \
    --capacity-reservation-id cr-01234567890abcdef \
    --unused-reservation-billing-owner-id 123456789012
```

------
#### [ PowerShell ]

**分配共享容量预留的账单**  
使用 [Register-EC2CapacityReservationBillingOwner](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2CapacityReservationBillingOwner.html) cmdlet。对于 `-CapacityReservationId`，指定共享容量预留的 ID。对于 `-UnusedReservationBillingOwnerId`，请指定要向其分配账单的 AWS 账户的 ID。

```
Register-EC2CapacityReservationBillingOwner `
    -CapacityReservationId cr-01234567890abcdef `
    -UnusedReservationBillingOwnerId 123456789012
```

------

# 查看共享 EC2 容量预留的账单分配请求
<a name="view-billing-transfers"></a>

容量预留所有者只能查看其最新发起的账单分配请求。使用者账户只能查看向其发送的最新账单分配请求。

在请求进入 `cancelled`、`expired` 或 `revoked` 状态后，可以在 24 小时内查看请求。24 小时后，其将无法再查看。

------
#### [ Console ]

**（容量预留所有者）查看您发起的请求**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**容量预留**，然后选择要查看请求的共享容量预留。

1. **可用容量的账单**部分会显示最新的请求及其当前状态。

**（使用者账户）发送给您的请求**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**容量预留**。

1. 如果您有待处理的请求，则屏幕顶部会显示**待处理的账单分配请求**横幅。如果未显示该横幅，则表示您没有待处理的请求。

   要查看请求，请选择横幅中的**查看请求**。

------
#### [ AWS CLI ]

**（容量预留所有者）查看您发起的请求**  
使用 [describe-capacity-reservation-billing-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservation-billing-requests.html) 命令。

```
aws ec2 describe-capacity-reservation-billing-requests \
    --role odcr-owner
```

**（使用者账户）查看发送给您的请求**  
使用 [describe-capacity-reservation-billing-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservation-billing-requests.html) 命令。

```
aws ec2 describe-capacity-reservation-billing-requests \
    --role unused-reservation-billing-owner
```

------
#### [ PowerShell ]

**（容量预留所有者）查看您发起的请求**  
使用 [Get-EC2CapacityReservationBillingRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityReservationBillingRequest.html) cmdlet。

```
Get-EC2CapacityReservationBillingRequest `
    -Role odcr-owner
```

**（使用者账户）查看发送给您的请求**  
使用 [Get-EC2CapacityReservationBillingRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityReservationBillingRequest.html) cmdlet。

```
Get-EC2CapacityReservationBillingRequest `
    -Role unused-reservation-billing-owner
```

------

请求可以处于以下某种状态。


| 州 | 说明 | 
| --- | --- | 
| pending | 该请求尚未被接受或拒绝，也未过期。 | 
| accepted | 该请求已被指定账户接受。容量预留的可用容量账单已分配给该使用者账户。 | 
| rejected | 该请求也被使用者账户拒绝。 | 
| cancelled | 该请求在处于 pending 状态时被容量预留所有者取消。 | 
| revoked | 由于以下原因之一，已从该使用者账户撤销了账单：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/view-billing-transfers.html)  | 
| expired | 由于使用者账户未在 12 小时内接受或拒绝请求，因此请求已过期。 | 

# 接受或拒绝共享 EC2 容量预留的账单
<a name="accept-decline-billing-transfer"></a>

收到与您共享的容量预留的账单分配请求后，您可以接受也可以拒绝该请求。请求在被接受或拒绝之前，会保持 `pending` 状态。

如果您接受该请求，则将进入 `accepted` 状态，并且从那时起，该容量预留中任何可用或*未使用*容量的账单将分配给您的账户。在您接受该请求后，只有容量预留所有者才可以撤销您账户的账单。

如果您拒绝该请求，请求将进入 `rejected` 状态，容量预留的可用容量账单仍分配给容量预留所有者。

如果未在 12 小时内接受或拒绝请求，则请求将会过期。如果请求过期，则容量预留中任何未使用容量的账单仍分配给容量预留所有者。

请求被接受或拒绝时，系统会将一个 Amazon EventBridge 事件发送给容量预留所有者的账户。请求过期时，系统会将一个 Amazon EventBridge 事件发送给容量预留所有者账户和该使用者账户。有关更多信息，请参阅 [监控共享容量预留的账单分配请求](billing-ownership-events.md)。

------
#### [ Console ]

**接受或拒绝请求**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**容量预留**。

1. 如果您有待处理的请求，则屏幕顶部会显示**待处理的账单分配请求**横幅。如果未显示该横幅，则表示您没有待处理的请求。

   要查看请求，请选择横幅中的**查看请求**。

1. 选择要接受或拒绝的请求，然后选择**接受**或**拒绝**。

------
#### [ AWS CLI ]

**接受请求**  
使用 [accept-capacity-reservation-billing-ownership](https://docs.aws.amazon.com/cli/latest/reference/ec2/accept-capacity-reservation-billing-ownership.html) 命令。对于 `--capacity-reservation-id`，请指定要接受请求的容量预留的 ID。

```
aws ec2 accept-capacity-reservation-billing-ownership \
    --capacity-reservation-id cr-01234567890abcdef
```

**拒绝请求**  
使用 [reject-capacity-reservation-billing-ownership](https://docs.aws.amazon.com/cli/latest/reference/ec2/reject-capacity-reservation-billing-ownership.html) 命令。对于 `--capacity-reservation-id`，请指定要拒绝请求的容量预留的 ID。

```
aws ec2 reject-capacity-reservation-billing-ownership \
    --capacity-reservation-id cr-01234567890abcdef
```

------
#### [ PowerShell ]

**接受请求**  
使用 [Approve-EC2CapacityReservationBillingOwnership](https://docs.aws.amazon.com/powershell/latest/reference/items/Approve-EC2CapacityReservationBillingOwnership.html) cmdlet。

```
Approve-EC2CapacityReservationBillingOwnership `
    -CapacityReservationId cr-01234567890abcdef
```

**拒绝请求**  
使用 [Deny-EC2CapacityReservationBillingOwnership](https://docs.aws.amazon.com/powershell/latest/reference/items/Deny-EC2CapacityReservationBillingOwnership.html) cmdlet。

```
Deny-EC2CapacityReservationBillingOwnership `
    -CapacityReservationId cr-01234567890abcdef
```

------

# 取消或撤销共享 EC2 容量预留的账单分配请求
<a name="cancel-billing-transfer"></a>

只有容量预留所有者才能取消 `pending` 账单分配请求。如果待处理的请求被取消，请求将进入 `cancelled` 状态，容量预留中任何可用（即*未使用*）容量的账单仍分配给容量预留所有者。

请求处于 `accepted` 状态后，只有容量预留所有者才能撤销已分配账户的账单。如果账单被撤销，请求将进入 `revoked` 状态，容量预留中任何可用容量的账单将重新分配给容量预留所有者。

请求被取消或撤销时，系统会将 Amazon EventBridge 事件发送给容量预留所有者账户和指定的使用者账户。有关更多信息，请参阅 [监控共享容量预留的账单分配请求](billing-ownership-events.md)。

------
#### [ Console ]

**取消或撤销请求**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航面板中，选择**容量预留**，然后选择要取消或撤销请求的容量预留。

1. 在**可用容量的账单**部分中，根据请求的当前状态选择**取消转移**或**撤销转移**。

------
#### [ AWS CLI ]

**取消或撤销请求**  
使用 [disassociate-capacity-reservation-billing-owner](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-capacity-reservation-billing-owner.html) 命令。对于 `--unused-reservation-billing-owner-id`，请指定向其发送了请求的 AWS 账户的 ID。

```
aws ec2 disassociate-capacity-reservation-billing-owner \
    --capacity-reservation-id cr-01234567890abcdef \
    --unused-reservation-billing-owner-id 123456789012
```

------
#### [ PowerShell ]

**取消或撤销请求**  
使用 [Unregister-EC2CapacityReservationBillingOwner](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2CapacityReservationBillingOwner.html) cmdlet。对于 `-UnusedReservationBillingOwnerId`，请指定向其发送了请求的 AWS 账户的 ID。

```
Unregister-EC2CapacityReservationBillingOwner `
    -CapacityReservationId cr-01234567890abcdef `
    -UnusedReservationBillingOwnerId 123456789012
```

------

# 监控共享容量预留的账单分配请求
<a name="billing-ownership-events"></a>

当账单分配请求的状态发生变化时，Amazon EC2 会发送 Amazon EventBridge 事件。
+ 当请求进入以下状态时，将向容量预留所有者发送事件：`accepted` \$1 `rejected` \$1 `expired` \$1 `revoked`。
+ 当请求进入以下状态时，将向请求的使用者账户发送事件：`pending` \$1 `expired` \$1 `cancelled` \$1 `revoked`。

有关 Amazon EventBridge 的信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

以下是 Amazon EventBridge 事件的模式。

```
{
   "version":"0",
   "id":"12345678-1234-1234-1234-123456789012",
   "detail-type":"On-Demand Capacity Reservation Billing Ownership Request pending|accepted|rejected|cancelled|revoked|expired",
   "source":"aws.ec2",
   "account":"account_id",
   "time":"state_change_timestamp",
   "region":"region",
   "resources":[
      "arn:aws:ec2:region:cr_owner_account_id:capacity-reservation/cr_id"
   ],
   "detail":{
      "capacity-reservation-id":"cr_id",
      "updateTime":timestamp,
      "ownerAccountId":"cr_owner_account_id",
      "unusedReservationChargesOwnerID":"consumer_account_id",
      "status":"pending|accepted|rejected|cancelled|revoked|expired",
      "statusMessage":"message
   }
}
```

以下是当使用者账户 (`111111111111`) 接受共享容量预留 (`cr-01234567890abcdef`) 的账单分配请求时，将向容量预留所有者 (`222222222222`) 发送的事件示例。

```
{
   "version":"0",
   "id":"12345678-1234-1234-1234-123456789012",
   "detail-type":"On-Demand Capacity Reservation Billing Ownership Request accepted",
   "source":"aws.ec2",
   "account":"222222222222",
   "time":"2024-09-01Thh:59:59Z",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ec2:us-east-1:222222222222:capacity-reservation/cr-01234567890abcdef"
   ],
   "detail":{
      "capacity-reservation-id":"cr-01234567890abcdef",
      "updateTime":"2024-08-01Thh:59:59Z",
      "ownerAccountId":"222222222222",
      "unusedReservationChargesOwnerID":"111111111111",
      "status":"accepted",
      "statusMessage":"billing transfer status message"
   }
}
```

## 共享的容量预留权限
<a name="shared-cr-perms"></a>

### 拥有者的权限
<a name="shared-cr-perms-owner"></a>

拥有者负责管理和取消其共享的容量预留。拥有者无法修改由其他账户拥有的共享容量预留中运行的实例。拥有者仍然负责管理其启动到共享的容量预留中的实例。

### 使用者的权限
<a name="shared-cr-perms-consumer"></a>

使用者负责管理其正在运行共享的容量预留的实例。使用者不能以任何方式修改共享的容量预留，也不能查看或修改由其他使用者或容量预留拥有者拥有的实例。使用者只能查看共享预留中的总容量和可用容量。

## 计费和计量
<a name="shared-cr-billing"></a>

共享容量预留不会产生额外的费用。

默认情况下，容量预留所有者需要为其在容量预留中运行的实例以及未使用的预留容量付费，而使用者需要为其在共享容量预留中运行的实例付费。但是，您可以将共享容量预留的可用容量账单分配给特定的使用者账户。有关更多信息，请参阅 [共享 Amazon EC2 容量预留的账单分配](assign-billing.md)。

如果容量预留所有者属于不同的付款人账户，并且容量预留由区域预留实例或节省计划承保，则容量预留所有者将继续为区域预留实例或节省计划付费。在这些情况下，容量预留所有者将为区域预留实例或节省计划付费，使用者需要为在共享容量预留中运行的实例付费。

## 实例限制
<a name="shared-cr-limits"></a>

所有容量预留使用量都计入容量预留拥有者的个按需型实例限制。这包括：
+ 未使用的预留容量
+ 容量预留拥有者拥有的实例的使用情况
+ 使用者拥有的实例的使用情况

使用者在共享容量中启动的实例将计入容量预留拥有者的个按需型实例限制。使用者的实例限制是他们自己的个按需型实例限制和他们可以访问的共享容量预留中的可用容量的总和。

# 容量预留实例集
<a name="cr-fleets"></a>

*按需容量预留实例集*是一组容量预留。

容量预留实例集请求包含启动容量预留实例集所需的所有配置信息。使用单个请求，您可以跨多个实例类型为您的工作负载预留大量 Amazon EC2 容量，最多可达到您指定的目标容量。

创建容量预留实例集后，您可以通过修改或取消容量预留实例集来集体管理实例集中的容量预留。

**Topics**
+ [容量预留实例集的工作原理](#cr-how-it-works)
+ [注意事项](#considerations)
+ [定价](#pricing)
+ [概念和规划](crfleet-concepts.md)
+ [创建](create-crfleet.md)
+ [Modify](modify-crfleet.md)
+ [取消](cancel-crfleet.md)
+ [示例配置](crfleet-example-configs.md)
+ [使用服务关联角色](using-service-linked-roles.md)

## 容量预留实例集的工作原理
<a name="cr-how-it-works"></a>

创建容量预留实例集时，实例集会尝试创建单个容量预留以满足您在实例集请求中指定的总目标容量。

实例集为其预留容量的实例数取决于您指定的[*总目标容量*](crfleet-concepts.md#target-capacity)和[*实例类型权重*](crfleet-concepts.md#instance-weight)。实例集为其预留容量的实例类型取决于您使用的[*分配策略*](crfleet-concepts.md#allocation-strategy)和[*实例类型优先级*](crfleet-concepts.md#instance-priority)。

如果实例集创建时容量不足，且无法立即满足其总目标容量，则实例集会异步尝试创建容量预留，直到其预留了请求的容量为止。

当实例集达到其总目标容量时，它会尝试维持该容量。如果实例集中的容量预留被取消，实例集将根据您的实例集配置自动创建一个或多个容量预留，以替换丢失的容量并维持其总目标容量。

实例集中的容量预留无法单独管理。它们必须通过修改实例集进行集体管理。修改实例集时，实例集中的容量预留将自动更新以反映更改。

目前，容量预留实例集支持 `open` 实例匹配条件，且实例集启动的所有容量预留都会自动使用此实例匹配条件。在此条件下，具有匹配属性（实例类型、平台、可用区和租赁）的新实例和现有实例在实例集创建的容量预留中自动运行。容量预留实例集不支持目标实例匹配条件。

## 注意事项
<a name="considerations"></a>

使用容量预留实例集时，请记住以下事项：
+ 容量预留实例集可以使用 AWS CLI 和 AWS API 创建、修改、查看和取消。
+ 实例集中的容量预留无法单独管理。它们必须通过修改或取消实例集进行集体管理。
+ 容量预留实例集不能跨区域。
+ 容量预留实例集不能跨可用区。
+ 容量预留实例集创建的容量预留会自动使用 AWS 生成的以下标签进行标记：
  + 密钥 — `aws:ec2-capacity-reservation-fleet`
  + 值 — `fleet_id`

  您可以使用此标签来标识容量预留实例集创建的容量预留。

## 定价
<a name="pricing"></a>

使用容量预留实例集不会产生额外的费用。您需要为容量预留实例集创建的单个容量预留付费。有关预留容量计费方式的更多信息，请参阅 [容量预留定价和计费](capacity-reservations-pricing-billing.md)。

# 容量预留实例集概念和规划
<a name="crfleet-concepts"></a>

以下主题旨在介绍容量预留实例集的规划和概念，包括总目标容量、分配策略、实例类型权重和实例类型优先级。

**Topics**
+ [规划容量预留实例集](#plan-cr-fleet)
+ [总目标容量](#target-capacity)
+ [分配策略](#allocation-strategy)
+ [实例类型权重](#instance-weight)
+ [实例类型优先级](#instance-priority)

## 规划容量预留实例集
<a name="plan-cr-fleet"></a>

规划容量预留实例集时，建议执行以下操作：

1. 确定您的工作负载所需的计算容量。

1. 决定要使用的实例类型和可用区。

1. 根据您的需求和首选项为每种实例类型分配优先级。有关更多信息，请参阅 [实例类型优先级](#instance-priority)。

1. 创建对您的工作负载有意义的容量加权系统。为每种实例类型分配权重并确定您的总目标容量。有关更多信息，请参阅 [实例类型权重](#instance-weight) 和 [总目标容量](#target-capacity)。

1. 确定您是无限期需要容量预留还是仅在指定时间段内需要容量预留。

## 总目标容量
<a name="target-capacity"></a>

*总目标容量*定义容量预留实例集预留的总计算容量。在创建容量预留实例集时，您需要指定总目标容量。实例集创建后，Amazon EC2 会自动创建容量预留，以预留最高可达到总目标容量的容量。

容量预留实例集为其预留容量的实例的数量取决于总目标容量和您在容量预留实例集中为每个实例类型指定的*实例类型权重* (`total target capacity`/`instance type weight`=`number of instances`)。

您可以根据对您的工作负载有意义的单位分配总目标容量。例如，如果您的工作负载需要一定数量的 vCPU，则可以根据所需的 vCPU 数量分配总目标容量。如果您的工作负载需要 `2048` 个 vCPU，则指定总目标容量 `2048`，然后根据实例集中的实例类型提供的 vCPU 数量分配实例类型权重。有关示例，请参阅[实例类型权重](#instance-weight)。

## 分配策略
<a name="allocation-strategy"></a>

容量预留实例集的分配策略决定了如何根据容量预留实例集配置中的实例类型规范来满足针对预留容量的请求。

目前，仅支持 `prioritized` 分配策略。通过此策略，容量预留实例集使用您在容量预留实例集配置中为每个实例类型规范分配的优先级来创建容量预留。优先级值越低表示使用优先级越高。例如，假设您创建了使用以下实例类型和优先级的容量预留实例集：
+ `m4.16xlarge` — 优先级 = 1
+ `m5.16xlarge` — 优先级 = 3
+ `m5.24xlarge` — 优先级 = 2

实例集首先尝试为 `m4.16xlarge` 创建容量预留。如果 Amazon EC2 的 `m4.16xlarge` 容量不足，实例集将尝试为 `m5.24xlarge` 创建容量预留。如果 Amazon EC2 的 `m5.24xlarge` 容量不足，实例集将为 `m5.16xlarge` 创建容量预留。

## 实例类型权重
<a name="instance-weight"></a>

*实例类型权重*是您分配给容量预留实例集中每种实例类型的权重。权重决定了该指定实例类型的每个实例计入实例集的*总目标容量*的容量单位数。

您可以根据对您的工作负载有意义的单位分配权重。例如，如果您的工作负载需要一定数量的 vCPU，则可以根据容量预留实例集中每种实例类型提供的 vCPU 数量来分配权重。在这种情况下，如果您使用 `m4.16xlarge` 和 `m5.24xlarge` 实例创建容量预留实例集，您将为每个实例分配与 vCPU 数量对应的权重，如下所示：
+ `m4.16xlarge` — `64` 个 vCPU，权重 = `64` 个单位
+ `m5.24xlarge` — `96` 个 vCPU，权重 = `96` 个单位

实例类型权重决定了容量预留实例集为其预留容量的实例的数量。例如，如果总目标容量为 `384` 个单位的容量预留实例集使用前面示例中的实例类型和权重，实例集可以为 `6` 个 `m4.16xlarge` 实例（384 总目标容量/64 实例类型权重=6 个实例）或 `4` 个 `m5.24xlarge` 实例 (384 / 96 = 4) 预留容量。

如果您没有分配实例类型权重，或者您将实例类型权重分配为 `1`，则总目标容量完全基于实例数量。例如，如果总目标容量为 `384` 个单位的容量预留实例集使用前面示例中的实例类型，但忽略权重或为这两种实例类型都指定了 `1` 的权重，则实例集都可以为 `384` 个 `m4.16xlarge` 实例或 `384` 个 `m5.24xlarge` 实例预留容量。

## 实例类型优先级
<a name="instance-priority"></a>

*实例类型优先级*是您分配给实例集中的实例类型的值。优先级用于确定为实例集指定的哪些实例类型应优先使用。

优先级值越低表示使用的优先级越高。

# 创建容量预留实例集
<a name="create-crfleet"></a>

当您创建容量预留实例集时，它会自动为实例集请求中指定的实例类型创建容量预留，最多可达到指定的总目标容量。容量预留实例集为其预留容量的实例数取决于总目标容量和您在请求中指定的实例类型权重。有关更多信息，请参阅 [实例类型权重](crfleet-concepts.md#instance-weight) 和 [总目标容量](crfleet-concepts.md#target-capacity)。

创建实例集时，您必须指定要使用的实例类型以及每种实例类型的优先级。有关更多信息，请参阅 [分配策略](crfleet-concepts.md#allocation-strategy) 和 [实例类型优先级](crfleet-concepts.md#instance-priority)。

**注意**  
**Amazon Web Services ServiceRoleForEC2CapacityReservationFleet** 服务相关角色在您首次创建容量预留实例集时将在您的账户中自动创建。有关更多信息，请参阅 [将服务相关角色用于容量预留实例集使用 EC2 容量管理器的服务相关角色](using-service-linked-roles.md)。

目前，容量预留实例集仅支持 `open` 实例匹配条件。

------
#### [ AWS CLI ]

**要创建容量预留实例集**  
使用 [create-capacity-reservation-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation-fleet.html) 命令。

```
aws ec2 create-capacity-reservation-fleet \
    --total-target-capacity 24 \
    --allocation-strategy prioritized \
    --instance-match-criteria open \
    --tenancy default \
    --end-date 2021-12-31T23:59:59.000Z \
    --instance-type-specifications file://instanceTypeSpecification.json
```

以下是 `instanceTypeSpecification.json` 的内容。

```
[
  {
    "InstanceType": "m5.xlarge",
    "InstancePlatform": "Linux/UNIX",
    "Weight": 3.0,
    "AvailabilityZone":"us-east-1a",
    "EbsOptimized": true,
    "Priority" : 1
  }
]
```

下面是示例输出。

```
{
    "Status": "submitted", 
    "TotalFulfilledCapacity": 0.0, 
    "CapacityReservationFleetId": "crf-abcdef01234567890", 
    "TotalTargetCapacity": 24
}
```

------
#### [ PowerShell ]

**要创建容量预留实例集**  
使用 [New-EC2CapacityReservationFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2CapacityReservationFleet.html) cmdlet。

```
New-EC2CapacityReservationFleet `
    -TotalTargetCapacity 24 `
    -AllocationStrategy "prioritized" `
    -InstanceMatchCriterion "open" `
    -Tenancy "default" `
    -EndDate 2021-12-31T23:59:59.000Z `
    -InstanceTypeSpecification $specification
```

规范定义如下。

```
$specification = New-Object Amazon.EC2.Model.ReservationFleetInstanceSpecification
$specification.InstanceType = "m5.xlarge"
$specification.InstancePlatform = "Linux/UNIX"
$specification.Weight = 3.0
$specification.AvailabilityZone = "us-east-1a"
$specification.EbsOptimized = $true
$specification.Priority = 1
```

------

# 修改容量预留实例集
<a name="modify-crfleet"></a>

您可以随时修改容量预留实例集的总目标容量和日期。当您修改容量预留实例集的总目标容量时，实例集会自动创建新的容量预留，或者修改或取消实例集中的现有容量预留以满足新的总目标容量。当您修改实例集的结束日期时，所有单个容量预留的结束日期都会相应更新。

**注意事项**
+ 修改实例集后，其状态将转换为 `modifying`。当实例集处于 `modifying` 状态时，您无法尝试对其进行其他修改。
+ 您无法修改容量预留实例集使用的租赁、可用区、实例类型、实例平台、优先级或权重。如果您需要更改这些参数中的任何一个，您可能需要取消现有实例集并创建具有所需参数的新实例集。
+ 您不能在同一个命令中指定 `--end-date` 和 `--remove-end-date`。

------
#### [ AWS CLI ]

**修改容量预留实例集**  
使用 [modify-capacity-reservation-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-capacity-reservation-fleet.html) 命令。

**示例 1：修改总目标容量**

```
aws ec2 modify-capacity-reservation-fleet \
    --capacity-reservation-fleet-id crf-01234567890abcedf \
    --total-target-capacity 160
```

**示例 2：修改结束日期**

```
aws ec2 modify-capacity-reservation-fleet \
    --capacity-reservation-fleet-id crf-01234567890abcedf \
    --end-date 2021-07-04T23:59:59.000Z
```

**示例 3：删除结束日期**

```
aws ec2 modify-capacity-reservation-fleet \
    --capacity-reservation-fleet-id crf-01234567890abcedf \
    --remove-end-date
```

------
#### [ PowerShell ]

**修改容量预留实例集**  
使用 [Edit-EC2CapacityReservationFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2CapacityReservationFleet.html) cmdlet。

**示例 1：修改总目标容量**

```
Edit-EC2CapacityReservationFleet `
    -CapacityReservationFleetId crf-01234567890abcedf `
    -TotalTargetCapacity 160
```

**示例 2：修改结束日期**

```
Edit-EC2CapacityReservationFleet `
    -CapacityReservationFleetId crf-01234567890abcedf `
    -EndDate 2021-07-04T23:59:59.000Z
```

**示例 3：删除结束日期**

```
Edit-EC2CapacityReservationFleet `
    -CapacityReservationFleetId crf-01234567890abcedf `
    -RemoveEndDate
```

------

# 取消容量预留实例集
<a name="cancel-crfleet"></a>

当您不再需要容量预留实例集及其预留的容量时，可以取消它。当您取消实例集时，实例集状态将更改为 `cancelled`，且其不能再创建新的容量预留。此外，实例集中的所有单个容量预留都将取消。之前在预留容量中运行的实例将在共享容量中继续正常运行。

------
#### [ AWS CLI ]

**取消容量预留实例集**  
使用 [cancel-capacity-reservation-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-capacity-reservation-fleets.html) 命令。

```
aws ec2 cancel-capacity-reservation-fleets \
    --capacity-reservation-fleet-ids crf-abcdef01234567890
```

下面是示例输出。

```
{
    "SuccessfulFleetCancellations": [
        {
            "CurrentFleetState": "cancelling", 
            "PreviousFleetState": "active", 
            "CapacityReservationFleetId": "crf-abcdef01234567890"
        }
    ], 
    "FailedFleetCancellations": []
}
```

------
#### [ PowerShell ]

**取消容量预留实例集**  
使用 [Stop-EC2CapacityReservationFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2CapacityReservationFleet.html) cmdlet。

```
Stop-EC2CapacityReservationFleet `
    -CapacityReservationFleetId crf-abcdef01234567890
```

------

# 容量预留实例集配置示例
<a name="crfleet-example-configs"></a>

以下示例创建了使用两种实例类型的容量预留实例集：`m5.4xlarge` 和 `m5.12xlarge`。

它基于指定实例类型提供的 vCPU 数量使用权重系统。总目标容量是 `480` 个 vCPU。`m5.4xlarge` 提供 16 个 vCPU 并获取 `16` 的权重，`m5.12xlarge` 提供 48 个 vCPU 并获取 `48` 的权重。此权重系统对容量预留实例集进行了配置，为 30 个 `m5.4xlarge` 实例 (480/16=30) 或 10 个 `m5.12xlarge` 实例 (480/48=10) 预留容量。

实例集被配置为确定 `m5.12xlarge` 容量的优先级并获得优先级 `1`，而 `m5.4xlarge` 则会获得较低的优先级 `2`。这意味着实例集首先将尝试预留 `m5.12xlarge` 容量，并在 Amazon EC2 的 `m5.12xlarge` 容量不足时仅尝试预留 `m5.4xlarge` 容量。

实例集为 `Windows` 实例预留容量，且预留在 `October 31, 2021` 的 `23:59:59` UTC 时会自动过期。

```
aws ec2 create-capacity-reservation-fleet \
    --total-target-capacity 480 \
    --allocation-strategy prioritized \
    --instance-match-criteria open \
    --tenancy default \
    --end-date 2021-10-31T23:59:59.000Z \
    --instance-type-specifications file://instanceTypeSpecification.json
```

下面是 `instanceTypeSpecification.json` 的内容。

```
[
    {             
        "InstanceType": "m5.4xlarge",                        
        "InstancePlatform":"Windows",            
        "Weight": 16,
        "AvailabilityZone":"us-east-1a",        
        "EbsOptimized": true,            
        "Priority" : 2
    },
    {             
        "InstanceType": "m5.12xlarge",                        
        "InstancePlatform":"Windows",            
        "Weight": 48,
        "AvailabilityZone":"us-east-1a",        
        "EbsOptimized": true,            
        "Priority" : 1
    }
]
```

# 将服务相关角色用于容量预留实例集
<a name="using-service-linked-roles"></a>

按需容量预留实例集将使用 AWS Identity and Access Management（IAM）[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)。服务相关角色是一种独特类型的 IAM 角色，它与容量预留实例集直接相关。服务相关角色由容量预留实例集预定义，并包含该服务代表您调用其他 AWS 服务所需的一切权限。

服务相关角色可让您更轻松地设置容量预留实例集，因为您不必手动添加必要的权限。容量预留实例集定义其服务相关角色的权限，除非另外定义，否则只有容量预留实例集可以代入其角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这将保护您的容量预留实例集资源，因为您不会无意中删除对资源的访问权限。

## 容量预留实例集的服务相关角色权限
<a name="slr-permissions"></a>

容量预留实例集使用名为 **AWSServiceRoleForEC2CapacityReservationFleet** 的服务相关角色，来创建、描述、修改和取消以前代表您在容量预留实例集中创建的容量预留。

AWSServiceRoleForEC2CapacityReservationFleet 服务相关角色信任以下实体来担任角色：
+ `capacity-reservation-fleet.amazonaws.com`

该角色使用 `AWSEC2CapacityReservationFleetRolePolicy` AWS 托管式策略。有关更多信息，请参阅 [AWS 托管式策略：AWSEC2CapacityReservationFleetRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy)。

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅*《IAM 用户指南》*中的[服务关联角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html#service-linked-role-permissions)。

## 创建容量预留实例集的服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。使用 `create-capacity-reservation-fleet` AWS CLI 命令或 `CreateCapacityReservationFleet` API 创建容量预留实例集时，系统将自动为您创建服务相关角色。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。创建容量预留实例集时，容量预留实例集会再次为您创建服务相关角色。

## 编辑容量预留实例集的服务相关角色
<a name="edit-slr"></a>

容量预留实例集不允许您编辑 Amazon Web Services ServiceRoleForEC2CapacityReservationFleet 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务相关角色描述](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console)。

## 删除容量预留实例集的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，您必须先删除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果在您试图删除资源时容量预留实例集服务正在使用该角色，则删除操作可能会失败。如果发生这种情况，请等待几分钟后重试。

**要删除 Amazon Web Services ServiceRoleForEC2CapacityReservationFleet 服务相关角色**

1. 使用 `delete-capacity-reservation-fleet` AWS CLI 命令或 `DeleteCapacityReservationFleet` API 删除您的账户中的容量预留实例集。

1. 使用 IAM 控制台、AWS CLI 或 AWS API 删除 Amazon Web Services ServiceRoleForEC2CapacityReservationFleet 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr)。

## 容量预留实例集服务相关角色支持的区域
<a name="slr-regions"></a>

容量预留实例集支持在服务可用的所有区域中使用服务相关角色。有关更多信息，请参阅 [AWS 区域和端点](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html#ec2_region)。

# 使用 CloudWatch 指标监控容量预留使用情况
<a name="capacity-reservation-cw-metrics"></a>

使用 CloudWatch 指标，您可以通过设置 CloudWatch 警报以在达到使用情况阈值时通知您，高效地监控您的容量预留并识别未使用的容量。这可以帮助您保持恒定的容量预留卷并实现更高级别的利用率。

容量预留每五分钟向 CloudWatch 发送一次指标数据。对于处于活动状态少于五分钟的容量预留，不支持指标。

有关在 CloudWatch 控制台中查看指标的更多信息，请参阅[使用 Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。有关创建警报的更多信息，请参阅[创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

**Topics**
+ [容量预留使用情况指标](#capacity-reservation-usage-metrics)
+ [容量预留指标维度](#capacity-reservation-dimensions)
+ [查看用于 容量预留 的 CloudWatch 指标](#viewing-capacity-reservation-metrics)

## 容量预留使用情况指标
<a name="capacity-reservation-usage-metrics"></a>

`AWS/EC2CapacityReservations` 命名空间包括以下使用情况指标，可用于监控和维护在为预留指定的阈值内的按需容量。


| 指标 | 描述 | 
| --- | --- | 
|  UsedInstanceCount |  当前正在使用的实例数。 单位：计数  | 
|  AvailableInstanceCount  |  可用实例的数量。 单位：计数  | 
|  TotalInstanceCount  |  您预留的实例总数。 单位：计数  | 
|  InstanceUtilization  |  当前正在使用的预留容量实例的百分比。 单位：百分比  | 

## 容量预留指标维度
<a name="capacity-reservation-dimensions"></a>

您可以使用以下维度来优化所选区域和账户内上表中列出的指标。


|  维度  |  说明  | 
| --- | --- | 
|  （无维度）  |  此维度筛选所有容量预留的指定指标。  | 
|  CapacityReservationId  |  此维度筛选已确定容量预留的指定指标。  | 
|  InstanceType  |  此维度筛选已确定实例类型的指定指标。  | 
|  AvailabilityZone  |  此维度筛选已确定可用区的指定指标。  | 
|  InstanceMatchCriteria  |  此维度筛选已确定实例匹配条件的指定指标（`open` 或 `targeted`）。  | 
|  InstancePlatform  |  此维度筛选已确定平台的指定指标数据。  | 
|  Tenancy  |  此维度筛选已确定租赁的指定指标。  | 

## 查看用于 容量预留 的 CloudWatch 指标
<a name="viewing-capacity-reservation-metrics"></a>

指标首先按服务命名空间进行分组，然后按支持的维度进行分组。您可以按照以下过程查看容量预留的各项指标。

**使用 CloudWatch 控制台查看容量预留指标**

1. 访问 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 如果需要，可以更改区域。从导航栏中，选择您的容量预留所在的区域。有关更多信息，请参阅 [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

1. 在导航窗格中，选择**指标**。

1. 对于**所有指标**，选择 **EC2 容量预留**。

1. 从上述指标维度中选择**跨所有容量预留**、**按容量预留**、**按实例类型**、**按可用区**、**按平台**、**按实例匹配条件**、或**、按租赁**，指标将分别按“无维度”、`CapacityReservationId`、`InstanceType`、`AvailabilityZone`、`Platform`、`InstanceMatchCriteria`、和 `Tenancy` 分组。

1. 要对指标进行排序，请使用列标题。要为指标绘制图表，请选中该指标旁边的复选框。

**使用 AWS CLI 查看容量预留指标**  
使用以下 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 命令：

```
aws cloudwatch list-metrics --namespace "AWS/EC2CapacityReservations"
```

# 监控容量预留利用率不足
<a name="cr-eventbridge"></a>

您可以使用以下方法监控容量预留利用率不足：

**Topics**
+ [Amazon EventBridge 事件](#cr-underutilization-events)
+ [电子邮件和 AWS Health 控制面板通知](#monitor-cr-utilization)

## Amazon EventBridge 事件
<a name="cr-underutilization-events"></a>

当您账户中的容量预留在特定时间段内的使用率低于 20% 时，AWS Health 会向 Amazon EventBridge 发送事件。通过 EventBridge，您可以建立触发编程操作的规则，以响应此类事件。例如，您可以创建一个规则：当容量预留的利用率在 7 天内降至 20% 以下时，自动取消容量预留。

EventBridge 中的事件表示为 JSON 对象。该事件独有的字段包含在 JSON 对象的“详细信息”部分。“事件”字段包含事件名称。“结果”字段包含触发事件的操作的已完成状态。有关更多信息，请参阅 *Amazon EventBridge 用户指南*中的 [Amazon EventBridge 事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

有关更多信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

AWS GovCloud (US) 不支持此功能。

### Events
<a name="cr-eventbridge-events"></a>

当容量预留的容量使用率低于 20% 时，AWS Health 会发送以下事件。
+ `AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION`

  以下是当新创建的容量预留在 24 小时内容量使用率低于 20% 时生成的事件示例。

  ```
  {
      "version": "0",
      "id": "b3e00086-f271-12a1-a36c-55e8ddaa130a",
      "detail-type": "AWS Health Event",
      "source": "aws.health",
      "account": "123456789012",
      "time": "2023-03-10T12:03:38Z",
      "region": "ap-south-1",
      "resources": [
          "cr-01234567890abcdef"
      ],
      "detail": {
          "eventArn": "arn:aws:health:ap-south-1::event/EC2/AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION/AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION_cr-01234567890abcdef-6211-4d50-9286-0c9fbc243f04",
          "service": "EC2",
          "eventTypeCode": "AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION",
          "eventTypeCategory": "accountNotification",
          "startTime": "Fri, 10 Mar 2023 12:03:38 GMT",
          "endTime": "Fri, 10 Mar 2023 12:03:38 GMT",
          "eventDescription": [
              {
                  "language": "en_US",
                  "latestDescription": "A description of the event will be provided here"
              }
          ],
          "affectedEntities": [
              {
                  "entityValue": "cr-01234567890abcdef"
              }
          ]
      }
      }
  ```
+ `AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION_SUMMARY`

  以下是当一个或多个容量预留在 7 天内容量使用率低于 20% 时生成的事件示例。

  ```
  { 
      "version": "0", "id":"7439d42b-3c7f-ad50-6a88-25e2a70977e2", 
      "detail-type": "AWS Health Event", 
      "source": "aws.health", 
      "account": "123456789012", 
      "time": "2023-03-07T06:06:01Z", 
      "region": "us-east-1", 
      "resources": [ 
          "cr-01234567890abcdef | us-east-1b | t3.medium | Linux/UNIX | 0.0%", 
          "cr-09876543210fedcba | us-east-1a | t3.medium | Linux/UNIX | 0.0%" 
      ], 
      "detail": { 
          "eventArn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION_SUMMARY/AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION_SUMMARY_726c1732-d6f6-4037-b9b8-bec3c2d3ba65", 
          "service": "EC2", 
          "eventTypeCode": "AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION_SUMMARY", 
          "eventTypeCategory": "accountNotification", 
          "startTime": "Tue, 7 Mar 2023 06:06:01 GMT", 
          "endTime": "Tue, 7 Mar 2023 06:06:01 GMT", 
          "eventDescription": [
              { 
                  "language": "en_US", 
                  "latestDescription": "A description of the event will be provided here" 
              }
          ], 
          "affectedEntities": [
              { 
                  "entityValue": "cr-01234567890abcdef | us-east-1b | t3.medium | Linux/UNIX | 0.0%" 
              }, 
              { 
                  "entityValue": "cr-09876543210fedcba | us-east-1a | t3.medium | Linux/UNIX | 0.0%" 
              }
          ]
      }
  }
  ```

### 创建 EventBridge 规则
<a name="cr-eventbridge-use"></a>

如要在容量预留利用率降至 20% 以下时接收电子邮件通知，请创建一个 Amazon SNS 主题，然后为 `AWS_EC2_ODCR_UNDERUTILIZATION_NOTIFICATION` 事件创建 EventBridge 规则。

**创建 Amazon SNS 主题**

1. 通过 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 打开 Amazon SNS 控制台。

1. 在导航窗格中，选择**主题**，然后选择**创建主题**。

1. 对于**类型**，选择**标准**。

1. 对于**名称**，输入新主题的名称。

1. 选择**创建主题**。

1. 选择**创建订阅**。

1. 对于**协议**，选择**电子邮件**，然后对于**端点**，输入接收通知的电子邮件地址。

1. 选择**创建订阅**。

1. 上面输入的电子邮件地址将收到具有以下主题行的电子邮件：`AWS Notification - Subscription Confirmation`。请按照说明确认订阅。

**创建 EventBridge 规则**

1. 访问 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)，打开 Amazon EventBridge 控制台。

1. 在导航窗格中，选择**规则**，然后选择**创建规则**。

1. 对于**名称**，输入新规则的名称。

1. 对于**规则类型**，选择**具有事件模式的规则**。

1. 选择**下一步**。

1. 在**事件模式**中，执行以下操作：

   1. 对于**事件源**，选择**AWS 服务**。

   1. 对于 **AWS Service**，选择 **AWS Health**。

   1. 对于**事件类型**，选择 **EC2 ODCR 利用不足通知**。

1. 选择**下一步**。

1. 对于**目标 1**，执行以下操作：

   1. 对于**目标类型**，选择**AWS 服务**。

   1. 对于 **Select a target**（选择一个目标），选择 **SNS topic**（SNS 主题）。

   1. 对于**主题**，选择您之前创建的主题。

1. 选择**下一步**，然后再次选择**下一步**。

1. 选择 **Create rule**（创建规则）。

## 电子邮件和 AWS Health 控制面板通知
<a name="monitor-cr-utilization"></a>

当您的账户中容量预留的容量利用率降至 20% 以下时，AWS Health 会发送以下电子邮件和 Health Dashboard 通知。
+ 单独通知：针对在过去 24 小时内利用率低于 20% 的每个新创建的容量预留。
+ 摘要通知：针对在过去 7 天内利用率低于 20% 的所有容量预留。

电子邮件通知和 Health Dashboard 通知将发送到与拥有容量预留的 AWS 账户相关联的电子邮件地址。这些通知包含以下信息：
+ 容量预留的 ID。
+ 容量预留的可用区。
+ 容量预留的平均利用率。
+ 容量预留的实例类型和平台（操作系统）。

此外，当您的账户中容量预留的容量利用率在 24 小时和 7 天内下降到 20% 以下时，AWS Health 会向 EventBridge 发送事件。通过 EventBridge，您可以创建规则来激活自动操作，例如发送电子邮件通知或触发 AWS Lambda 功能，以响应此类事件。有关更多信息，请参阅 [监控容量预留利用率不足](#cr-eventbridge)。

# 监控未来日期容量预留的状态变化
<a name="monitor-fcr-state"></a>

当未来日期容量预留的状态发生变化时，Amazon EC2 会向 Amazon EventBridge 发送事件。

以下是此事件的示例。在此示例中，未来日期的容量预留进入 `scheduled` 状态。请注意 `detail-type` 字段中突出显示的状态。

```
{
   "version":"0",
   "id":"12345678-1234-1234-1234-123456789012",
   "detail-type":"EC2 Capacity Reservation Scheduled",
   "source":"aws.ec2",
   "account":"123456789012",
   "time":"yyyy-mm-ddThh:mm:ssZ",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdefg"
   ],
   "detail":{
      "capacity-reservation-id":"cr-1234567890abcdefg",
      "state":"scheduled"
   }
}
```

`detail-type` 字段可能的值为：
+ `Scheduled`
+ `Active`
+ `Delayed`
+ `Unsupported`
+ `Failed`
+ `Expired`

有关这些状态的更多信息，请参阅 [查看容量预留的状态](capacity-reservations-view.md)。

您可以创建 Amazon EventBridge 事件来监控这些事件，然后在事件发生时触发特定的操作。有关更多信息，请参阅 [Creating rules that react to events in Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)。

要创建监控所有状态改变事件的规则，您可以使用以下事件模式。

```
{
  "source": ["aws.ec2"],
  "detail-type": [{
    "prefix": "EC2 Capacity Reservation"
  }]
}
```

要创建仅监控特定状态变化的规则，您可以使用以下事件模式。

```
{
  "source": ["aws.ec2"],
  "detail-type": [{
    "prefix": "EC2 Capacity Reservation state"
  }]
}
```

例如，以下事件模式监控未来日期的容量预留进入 `active` 状态时发送的事件。

```
{
  "source": ["aws.ec2"],
  "detail-type": [{
    "prefix": "EC2 Capacity Reservation Active"
  }]
}
```

# 可中断容量预留
<a name="interruptible-capacity-reservations"></a>

可中断容量预留可帮助您将未使用的容量临时用于您的账户中的其他工作负载。这使您可以获得控制权，以在需要时回收容量。当您回收容量时，在可中断预留内运行的所有实例都将被终止。创建可中断预留后，您可以使用 AWS Resource Access Manager（RAM）与其他 AWS 账户或您的 AWS 组织共享该预留。

如果您在非高峰时段、部署间隙或工作负载缩减时拥有未使用的预留容量，请使用可中断容量预留。如果您知道另一个团队可以使用此容量，则可以通过创建可中断容量预留来使其可用。当您的关键工作负载需要恢复容量时，您可以回收该容量。

您可以将可中断容量预留用作以下对象之一：
+ **容量所有者**：您拥有源容量预留并创建可中断容量预留，以与其他团队共享未使用的容量，同时保留控制权，以便在需要时回收该容量。
+ **容量使用者**：您将实例启动到共享的可中断预留中，但须知，当所有者回收容量时，您的实例可能会被终止。

**Topics**
+ [工作原理](#how-interruptible-cr-works)
+ [计费](#interruptible-cr-billing)
+ [注意事项](#interruptible-cr-considerations)
+ [容量所有者的可中断容量预留](capacity-owner-procedures.md)
+ [容量使用者的可中断容量预留](capacity-consumer-procedures.md)
+ [使用 EventBridge 和 CloudTrail 监控可中断容量预留](monitor-interruptible-cr.md)

## 工作原理
<a name="how-interruptible-cr-works"></a>

要将未使用的容量提供给其他团队，请通过指定要从源预留共享的未使用实例数量来创建可中断预留。当您创建可中断预留时，我们会将这些实例从您的源预留转移到您账户中新的可中断预留。

我们会保留源预留和可中断容量预留之间的关联。因此，当您回收容量时，所有正在运行的使用者实例都将被终止，并且容量将恢复到原始源预留。

主要功能：
+ 让未使用的容量暂时可用，同时保持控制权以回收容量
+ 随时回收容量。有关更多信息，请参阅 [回收过程和跟踪](capacity-owner-procedures.md#reclamation-process)。
+ 使用 AWS Resource Access Manager（RAM）与其他账户或您的 AWS 组织共享

## 计费
<a name="interruptible-cr-billing"></a>

创建可中断预留时，系统会将其作为独立的新预留进行计费。这将拆分您的计费：
+ 源预留：按总容量减去分配的容量得出的差额进行计费
+ 可中断预留：按分配的容量进行计费

有关按需容量预留计费的更多信息，请参阅[容量预留定价和计费](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-pricing-billing.html)。

## 注意事项
<a name="interruptible-cr-considerations"></a>

在使用可中断容量预留之前，请查看以下适用于容量所有者和使用者的限制和要求。

### 容量所有者
<a name="capacity-owner-considerations"></a>
+ 您不能直接修改或取消可中断容量预留。要编辑它，请更新从源容量预留中分配的容量。
+ 您只能查看、启动、标记、共享和分配可中断预留的计费。
+ 每个源容量预留只能创建一个可中断分配。

### 容量使用者
<a name="capacity-consumer-considerations"></a>
+ 可中断容量预留默认情况下是有针对性的容量预留，因此您需要在实例启动时将其作为目标。
+ 您无法将可中断容量预留添加到容量预留组。
+ 我们建议您仅对可能中断的应用程序使用可中断容量预留。
+ 当所有者回收容量时，您的实例将被终止，不会回退为按需型实例或竞价型实例。有关更多信息，请参阅 [中断体验](capacity-consumer-procedures.md#interruption-experience)。

# 容量所有者的可中断容量预留
<a name="capacity-owner-procedures"></a>

容量所有者是拥有源容量预留的账户，它创建可中断容量预留以与其他团队共享未使用的容量，同时保留控制权，以便在需要时回收该容量。

本节介绍您（容量所有者）如何创建、修改、回收和跟踪可中断容量预留。

**Topics**
+ [创建可中断容量预留](#creating-interruptible-cr)
+ [查看可中断容量预留](#view-interruptible-cr)
+ [修改可中断容量预留](#modify-interruptible-cr)
+ [回收过程和跟踪](#reclamation-process)
+ [共享可中断预留](#sharing-interruptible-reservations)

## 创建可中断容量预留
<a name="creating-interruptible-cr"></a>

创建可中断容量预留，使源预留中未使用的容量可用于其他工作负载，同时保持控制权，以便在需要时回收该容量。

### 先决条件
<a name="interruptible-cr-prerequisites"></a>

在创建可中断分配之前，请确保源按需容量预留满足下面的要求：
+ 容量预留必须处于活跃状态，且未设置结束日期。您无法从待处理、已过期、已取消或具有计划的结束日期的预留创建分配。
+ 容量预留必须具有可供分配的容量。您只能分配可用的实例（也称为未使用的容量）。
+ 每个源容量预留只能创建一个可中断分配。如果分配已存在，则必须在创建新分配之前先修改或取消该分配。
+ 一次最多可以为可中断容量预留分配 1000 个实例。

用户可以使用控制台或 AWS CLI 创建可中断容量预留。

------
#### [ Console ]

**创建可中断容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**容量预留**。

1. 选择容量预留。

1. 选择**操作**、**创建可中断分配**。

1. 对于**要分配的实例**，输入要分配的实例数量。

1. （可选）添加标签。

1. 选择**创建可中断容量分配**。

------
#### [ AWS CLI ]

**创建可中断容量预留**  
使用 [create-interruptible-capacity-reservation-allocation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-interruptible-capacity-reservation-allocation.html) 命令：

```
aws ec2 create-interruptible-capacity-reservation-allocation \
    --capacity-reservation-id cr-1234567890abcdef0 \
    --instance-count 10
```

------

## 查看可中断容量预留
<a name="view-interruptible-cr"></a>

在创建可中断容量预留后，您可以在您的账户中或从特定资源查看可中断预留。

### 查看您账户中的所有可中断容量预留
<a name="view-all-interruptible-cr"></a>

请按照以下过程查看您的账户中的可中断容量预留。

------
#### [ Console ]

**查看您账户中的可中断容量预留**

1. 前往控制台中的“容量预留”页面。

1. 查找类型列中为**可中断**的预留。

1. 选择可中断预留以查看详细信息。

------
#### [ AWS CLI ]

**查看您账户中的可中断容量预留**

```
aws ec2 describe-capacity-reservations \
    --capacity-reservation-id cr-interruptible-id \
    --filters Name=interruptible,Values=true
```

------

### 查看来自特定源的可中断容量预留
<a name="view-interruptible-cr-from-source"></a>

请按照以下过程查看从特定源容量预留创建的可中断容量预留。

```
aws ec2 describe-capacity-reservations \
    --capacity-reservation-id cr-source-id
```

在响应中，您将找到一个包含可中断容量预留 ID 和分配详细信息的 `interruptibleCapacityAllocations` 对象。有关响应结构的信息，请参阅《Amazon EC2 API 参考》**中的 [InterruptibleCapacityAllocation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InterruptibleCapacityAllocation.html)。

## 修改可中断容量预留
<a name="modify-interruptible-cr"></a>

请按照以下过程编辑或取消可中断容量预留。

**注意**  
当您减少分配时，我们会先回收可用的实例，然后再回收正在运行的实例，直到达到请求的计数。如果我们能够完全利用可用实例满足计数，则不会发生终止。对已分配实例计数所做的所有修改都是通过源容量预留完成的，而不是直接在可中断容量预留上进行。
一次最多只能修改 1000 个实例的可中断容量预留（增加或减少）。

### 编辑可中断容量预留
<a name="edit-interruptible-allocation"></a>

请按照以下过程编辑可中断容量预留。

------
#### [ Console ]

1. 在源容量预留详细信息页面中，选择**操作**。然后，**编辑可中断容量预留**。

1. 对于**要分配的实例**，输入新数字：
   + 添加更多共享容量
   + 将容量回收到源容量预留

1. 选择**更新**。

------
#### [ AWS CLI ]

```
aws ec2 update-interruptible-capacity-reservation-allocation \
    --capacity-reservation-id cr-1234567890abcdef0 \
    --target-instance-count 80
```

------

### 取消可中断容量预留
<a name="cancel-interruptible-allocation"></a>

请按照以下过程永久移除分配并返回所有容量。

------
#### [ Console ]

1. 在源容量预留详细信息页面上，导航至可中断容量分配详细信息。

1. 选择**编辑可中断分配**。

1. 对于实例计数，输入 **0**。

1. 选择**更新**。

------
#### [ AWS CLI ]

```
aws ec2 update-interruptible-capacity-reservation-allocation \
--capacity-reservation-id cr-1234567890abcdef0 \
--target-instance-count 0
```

------

## 回收过程和跟踪
<a name="reclamation-process"></a>

当您回收容量时：
+ 正在运行的实例会通过 EventBridge 事件收到 2 分钟中断警告。
+ 在通知期之后，以回收容量运行的实例将进入关闭状态并被终止。
+ 终止后，回收的实例将在源容量预留中可供立即使用。
+ 完成后，分配状态将从**正在更新**变为**活跃**。

完全回收可能需要几分钟，具体取决于实例类型和关闭时间。有关过程完成后您收到的 EventBridge 通知的更多信息，请参阅[回收完成](monitor-interruptible-cr.md#reclamation-completion)。

### 跟踪回收状态
<a name="track-reclamation-status"></a>

通过描述您的源预留来监控回收进度：

```
aws ec2 describe-capacity-reservations \
--capacity-reservation-id cr-1234567890abcdef0
```

响应会显示 `interruptibleCapacityAllocation` 对象中的以下字段：
+ `instance-count`：当前分配的实例
+ `target-instance-count`：回收后的请求数量
+ `status`：回收期间为**正在更新**，完成后为**活跃**

## 共享可中断预留
<a name="sharing-interruptible-reservations"></a>

您只能使用 AWS Resource Access Manager（RAM）在您的 AWS 组织内共享可中断预留。

注意事项：
+ 如果使用者账户离开您的组织，则该账户将自动取消共享可中断预留。
+ 在取消共享的预留中运行的任何实例最终将被终止。
+ 所有其他共享功能的工作原理与标准容量预留相同。

有关完整的共享过程，请参阅[共享容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-sharing.html)。

# 容量使用者的可中断容量预留
<a name="capacity-consumer-procedures"></a>

容量使用者是将实例启动到共享的可中断容量预留的账户，但须知，当所有者回收容量时，其实例可能会被终止。

本节介绍您（容量使用者）如何将实例启动到可中断容量预留，并了解当所有者回收容量时会发生什么情况。

**Topics**
+ [查看可中断容量预留](#view-interruptible-cr-consumer)
+ [将实例启动到可中断预留中](#launch-instances-interruptible)
+ [中断体验](#interruption-experience)

## 查看可中断容量预留
<a name="view-interruptible-cr-consumer"></a>

请按照以下过程查看可中断容量预留。

------
#### [ Console ]

**查看您账户中的可中断容量预留**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 选择**容量预留**。

1. 在**类型**列中，查找标记为**可中断**的预留。

1. 请记下预留 ID，以便在您的实例启动时使用。

------
#### [ AWS CLI ]

**查找您账户中的所有可中断容量预留**  
使用 [describe-capacity-reservations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-capacity-reservations.html) 命令：

```
aws ec2 describe-capacity-reservations \
--filters Name=state,Values=active
```

查找响应中 `Interruptible` 设置为 `true` 的预留。

**专门筛选可中断预留**  
使用以下命令：

```
aws ec2 describe-capacity-reservations \
--capacity-reservation-ids cr-example123 \
--query 'CapacityReservations[?Interruptible==`true`]'
```

------

**注意**  
可中断容量预留默认情况下是有针对性的容量预留，因此您需要在实例启动时专门将其作为目标。与开放式预留不同，可中断预留不会自动涵盖匹配的实例。启动时必须明确指定预留 ID。

## 将实例启动到可中断预留中
<a name="launch-instances-interruptible"></a>

请按照以下过程将 Amazon EC2 实例启动到您的账户中的可中断容量预留中。

**注意**  
我们建议您仅对可能中断的应用程序使用可中断容量预留。

------
#### [ Console ]

**将实例启动到可中断容量预留中**

1. 打开 Amazon EC2 控制台，网址为 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在 Amazon EC2 控制面板中，选择 **Launch Instance (启动实例)**。

1. 配置您的实例设置。

1. 在容量预留的**高级详细信息**中，选择**在您的有效预留中启动可中断实例**。

1. 选择可中断预留 ID 和新的实例购买选项。

1. 选择**启动实例**。

------
#### [ AWS CLI ]

```
aws ec2 run-instances \
--instance-type m5.large \
--count 2 \
--image-id ami-12345678 \
--instance-market-options '{
    "MarketType": "interruptible-capacity-reservation"
}' \
--capacity-reservation-specification '{
    "CapacityReservationTarget": {
        "CapacityReservationId": "cr-abcdef1234567890"
    }   
}'
```

------

### 使用自动扩缩组启动实例
<a name="launch-with-asg"></a>

您还可以将自动扩缩组与启动模板结合使用来将实例启动到可中断的预留中。为启动模板配置可中断市场类型和预留 ID，然后使用该模板创建自动扩缩组。有关更多信息，请参阅 [Interruptible Capacity Reservations with EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-interruptible-capacity-reservations.html)。

## 中断体验
<a name="interruption-experience"></a>

当所有者回收容量时，您将在实例终止前 2 分钟收到中断通知。此警告来自 EventBridge 事件，让您有时间执行以下操作：
+ 保存所做的工作或检查应用程序
+ 关闭过程
+ 准备终止实例

EventBridge 事件包括有关哪些实例将被终止以及确切终止时间的详细信息。有关更多信息，请参阅 [实例中断警告](monitor-interruptible-cr.md#instance-interruption-warning)。

# 使用 EventBridge 和 CloudTrail 监控可中断容量预留
<a name="monitor-interruptible-cr"></a>

可中断容量预留会发送 EventBridge 通知和 CloudTrail 事件，以帮助您监控和响应容量更改。

**Topics**
+ [EventBridge 通知](#eventbridge-notifications)
+ [CloudTrail 事件](#cloudtrail-events)

## EventBridge 通知
<a name="eventbridge-notifications"></a>

您会收到两种类型的 EventBridge 通知。有关如何设置 EventBridge 通知的信息，请参阅 [Creating Amazon EventBridge rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)。

### 实例中断警告
<a name="instance-interruption-warning"></a>

如果您在可中断预留中运行实例，则会在实例终止前 2 分钟收到此通知：

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Capacity Reservation Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "[instance owner Account ID]",
    "time": "[Current time in yyyy-mm-ddThh:mm:ssZ]",
    "resources": "[instance arn]",
    "region": "[region]",
    "detail": {
        "instance-id": "[instance-id]",
        "instance-action": "terminate",
        "instance-termination-time": "yyyy-mm-ddThh:mm:ssZ",
        "azId": "[availability-zone-id]"
    }
}
```

### 回收完成
<a name="reclamation-completion"></a>

如果您拥有源预留，则在容量回收完成后会收到此通知：

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Interruptible Capacity Reservation Allocation Reclamation Completed",
    "source": "aws.ec2",
    "account": "[source Capacity Reservation Owner Account ID]",
    "time": "[Current time in yyyy-mm-ddThh:mm:ssZ]",
    "region": "us-east-1",
    "resources": ["source_cr_arn"],
    "detail": {
        "sourceCapacityReservationId": "string",
        "instanceType": "string",
        "availabilityZoneId": "string",
        "TotalInstanceCount": "current total count in the source",
        "ReclaimedInstanceCount": "count of instances added to the source",
        "targetInstanceCount": "number"
    }
}
```

## CloudTrail 事件
<a name="cloudtrail-events"></a>

CloudTrail 会对可中断容量预留记录以下事件：
+ `InterruptibleCapacityReservationCreated`：当您创建可中断分配时
+ `InterruptibleCapacityReservationAllocationUpdated`：当您修改分配时
+ `InterruptibleCapacityReservationCancelled`：当您取消分配时
+ `CapacityReservationModified`：当我们修改源预留以进行分配时
+ `InterruptibleCapacityReservationInstancesTerminated`：当我们在回收期间终止实例时

# ML 容量块
<a name="ec2-capacity-blocks"></a>

机器学习容量块允许您在未来预留基于 GPU 的加速型计算实例，以支持您的短期机器学习工作负载。在容量块内运行的实例会自动紧密放置在 [Amazon EC2 UltraClusters](https://aws.amazon.com/ec2/ultraclusters/) 中，以实现低延迟、PB 级非阻塞联网。

您还可以使用容量块为 Amazon EC2 UltraServers 预留容量。UltraServer 在低延迟、高带宽的加速器互连中连接多个 Amazon EC2 实例。您可以使用 UltraServer 来处理训练、微调和推理中最需要计算和内存的 AI/ML 工作负载。有关更多信息，请参阅 [Amazon EC2 UltraServers](https://aws.amazon.com/ec2/ultraservers/)。

使用容量块，您可以了解 GPU 实例容量在未来何时可用，并安排容量块在最适合您的时间启动。当您预留容量块时，您可以获得 GPU 实例的可预测容量保证，同时只需为所需的时间付费。如果您需要 GPU 一次支持几天或几周的 ML 工作负载，并且不想在未使用 GPU 实例时支付预留费用，我们建议您使用容量块。

以下是容量块的一些常见使用案例。
+ **ML 模型训练和微调** - 无中断地访问您为完成 ML 模型训练和微调而预留的 GPU 实例。
+ **ML 实验和原型** - 运行实验并构建需要短期 GPU 实例的原型。

某些 AWS 区域的部分实例类型可使用容量块。有关更多信息，请参阅 [支持的实例类型和区域](#capacity-blocks-prerequisites)。

您可以预留容量块，预留开始时间最长为未来 8 周。每个容量块最多可以有 64 个实例，您最多可以跨容量块拥有 256 个实例。

**Topics**
+ [支持的实例类型和区域](#capacity-blocks-prerequisites)
+ [支持的平台](#capacity-blocks-platforms)
+ [注意事项](#capacity-blocks-considerations)
+ [相关资源](#capacity-blocks-related-resources)
+ [Amazon EC2 容量块工作原理](capacity-blocks-how.md)
+ [容量块定价和计费](capacity-blocks-pricing-billing.md)
+ [查找和购买容量块](capacity-blocks-purchase.md)
+ [使用容量块启动实例](capacity-blocks-launch.md)
+ [查看容量块](capacity-blocks-view.md)
+ [延长容量块期限](capacity-blocks-extend.md)
+ [共享容量块](capacity-blocks-share.md)
+ [为 UltraServer 容量块创建资源组](cb-group.md)
+ [使用 EventBridge 监控容量块](capacity-blocks-monitor.md)
+ [使用 AWS CloudTrail 记录容量块 API 调用](capacity-blocks-logging-using-cloudtrail.md)

## 支持的实例类型和区域
<a name="capacity-blocks-prerequisites"></a>

实例和 UltraServer 容量块可用于以下实例类型和 AWS 区域。

**注意**  
并非所有 AWS 区域 中的所有实例类型都支持 64 个实例的容量块大小。

### 实例容量块
<a name="capacity-blocks-instance-prerequisites"></a>
+ **`p6-b300.48xlarge`**
  + 美国西部（俄勒冈州）– `us-west-2`
+ **`p6-b200.48xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（俄勒冈州）– `us-west-2`
+ **`p5.4xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（俄勒冈州）– `us-west-2`
  + 欧洲地区（伦敦）：`eu-west-2`
  + 亚太地区（孟买）：`ap-south-1`
  + 亚太地区（东京）：`ap-northeast-1`
  + 亚太地区（悉尼）：`ap-southeast-2`
  + 南美洲（圣保罗）：`sa-east-1`
+ **`p5.48xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（北加利福尼亚）：`us-west-1`
  + 美国西部（俄勒冈州）– `us-west-2`
  + 欧洲地区（斯德哥尔摩）：`eu-north-1`
  + 欧洲地区（伦敦）：`eu-west-2`
  + 南美洲（圣保罗）：`sa-east-1`
  + 亚太地区（东京）：`ap-northeast-1`
  + 亚太地区（孟买）：`ap-south-1`
  + 亚太地区（悉尼）：`ap-southeast-2`
  + 亚太地区（雅加达）：`ap-southeast-3`
  + 美国东部（亚特兰大）本地区域：`us-east-1-atl-2a`
+ **`p5e.48xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（北加利福尼亚）：`us-west-1`
  + 美国西部（俄勒冈州）– `us-west-2`
  + 欧洲地区（斯德哥尔摩）：`eu-north-1`
  + 欧洲地区（伦敦）：`eu-west-2`
  + 欧洲（西班牙）：`eu-south-2`
  + 南美洲（圣保罗）：`sa-east-1`
  + 亚太地区（东京）：`ap-northeast-1`
  + 亚太地区（首尔）：`ap-northeast-2`
  + 亚太地区（孟买）：`ap-south-1`
  + 亚太地区（雅加达）：`ap-southeast-3`
  + 美国西部（凤凰城）本地区域：`us-west-2-phx-2a`
+ **`p4d.24xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（俄勒冈州）– `us-west-2`
+ **`p4de.24xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国西部（俄勒冈州）– `us-west-2`
+ **`trn1.32xlarge`**
  + 美国东部（弗吉尼亚州北部）– `us-east-1`
  + 美国东部（俄亥俄州）：`us-east-2`
  + 美国西部（北加利福尼亚）：`us-west-1`
  + 美国西部（俄勒冈州）– `us-west-2`
  + 欧洲地区（斯德哥尔摩）：`eu-north-1`
  + 亚太地区（孟买）：`ap-south-1`
  + 亚太地区（悉尼）：`ap-southeast-2`
  + 亚太地区（墨尔本）：`ap-southeast-4`
+ **`trn2.3xlarge `**
  + 亚太地区（墨尔本）：`ap-southeast-4`
  + 南美洲（圣保罗）：`sa-east-1`
+ **`trn2.48xlarge`**
  + 美国东部（俄亥俄州）：`us-east-2`

### UltraServer 容量块
<a name="capacity-blocks-ultraserver-prerequisites"></a>
+ **`Trn2`**
  + 美国东部（俄亥俄州）：`us-east-2`
+ **`P6e-GB200`**
  + 美国东部（达拉斯）本地区域：`us-east-1-dfw-2a`

## 支持的平台
<a name="capacity-blocks-platforms"></a>

适用于 ML 的容量块目前仅支持具有默认租赁的实例和 UltraServer。当您使用 AWS 管理控制台 购买容量块时，默认平台选项为 Linux/UNIX。当您使用 AWS Command Line Interface（AWS CLI）或 AWS SDK 购买容量块时，可以使用以下平台选项：
+ Linux/Unix
+ Red Hat Enterprise Linux
+ 含有 HA 的 RHEL
+ SUSE Linux
+ Ubuntu Pro

## 注意事项
<a name="capacity-blocks-considerations"></a>

在使用容量块之前，请考虑以下细节和限制。
+ 如果我们检测到影响了 UltraServer 容量块的缺陷，我们会通知您，但通常不会采取措施终止您在容量块上的实例。这是为了最大限度地减少对工作负载的意外中断。收到此通知后，您可以继续按原样使用 UltraServer 容量块，也可以通过终止容量块上的所有实例并提交 AWS 支持案例来请求补救。收到您的支持案例后，我们将在完成补救后通知您，之后您便可以将实例重新启动到 UltraServer 容量块上。
+ 对于 `P6e-GB200` UltraServer 容量块，您必须在容量块结束时间前至少 60 分钟终止实例。
+  要购买和使用 Local Zones 中的容量块，您必须主动启用该本地区域。
+ 每个容量块最多可以有 64 个实例，您最多可以跨容量块拥有 256 个实例。
+ 您可以描述最快 30 分钟内即可启动的容量块产品。
+ 容量块于协调世界时 (UTC) 上午 11:30 结束。
+ 在容量块中运行的实例的终止过程从预留最后一天协调世界时（UTC）上午 11:00 开始。
+ 容量块的预留起始时间最长为未来 8 周。
+ 不允许取消容量块。
+ UltraServer 容量块不能跨 AWS 账户或在 AWS 组织内部共享。
+ 无法[移动](capacity-reservations-move.md)或[拆分](capacity-reservations-split.md)容量块。
+ 只有 UltraServer 容量块可与资源组一起使用。实例容量块不能与资源组一起使用。有关更多信息，请参阅 [为 UltraServer 容量块创建资源组](cb-group.md)。
+ 在特定日期，AWS 组织中所有账户的容量块中可预留的实例总数不能超过 256 个。
+ 要使用容量块，实例必须具体定位预留 ID。
+ 容量块中的实例不计入按需型实例限制。
+ 对于使用自定义 AMI 的 P5 实例，请确保拥有 [EFA 所需的软件和配置](gpu-instances-started.md)。
+ 对于 Amazon EKS 托管式节点组，请参阅[创建带适用于机器学习的 Amazon EC2 容量块的托管式节点组](https://docs.aws.amazon.com/eks/latest/userguide/capacity-blocks-mng.html)。对于 Amazon EKS 自行管理的节点组，请参阅[将适用于机器学习的容量块与自行管理的节点配合使用](https://docs.aws.amazon.com/eks/latest/userguide/capacity-blocks.html)。

## 相关资源
<a name="capacity-blocks-related-resources"></a>

创建容量块后，您可以使用容量块执行以下操作：
+ 在容量块中启动实例。有关更多信息，请参阅 [使用容量块启动实例](capacity-blocks-launch.md)。
+ 创建 Amazon EC2 Auto Scaling 组。有关更多信息，请参阅《Amazon EC2 Auto Scaling 用户指南》**中的[将容量块用于机器学习工作负载](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-template-capacity-blocks.html)。
**注意**  
如果使用 Amazon EC2 Auto Scaling 或 Amazon EKS，则您可以将扩展计划为在容量块预留开始时运行。计划扩展时，AWS 会自动为您处理重试，让您无需担心实现重试逻辑来处理暂时性故障。
+  使用 AWS 并行计算服务增强 ML 工作流。有关更多信息，请参阅 [Capacity Blocks support for AWS Parallel Computing Service](https://aws.amazon.com/blogs/hpc/announcing-capacity-blocks-support-for-aws-parallel-computing-service/)。
+ 使用 AWS ParallelCluster 增强 ML 工作流。有关更多信息，请参阅 [Enhancing ML workflows with AWS ParallelCluster and Amazon EC2 Capacity Blocks for ML](https://aws.amazon.com/blogs/hpc/enhancing-ml-workflows-with-aws-parallelcluster-and-amazon-ec2-capacity-blocks-for-ml/)。

 有关 AWS 并行计算服务的更多信息，请参阅 [What is AWS Parallel Computing Service](https://docs.aws.amazon.com/pcs/latest/userguide/what-is-service.html)。

 有关 AWS ParallelCluster 的更多信息，请参阅[什么是 AWS ParallelCluster](https://docs.aws.amazon.com/parallelcluster/latest/ug/what-is-aws-parallelcluster.html)。

# Amazon EC2 容量块工作原理
<a name="capacity-blocks-how"></a>

您可以预留具有以下规格的容量块：
+ 最早提前 8 周预留开始时间
+ 设置预留时长，时长为 1 至 14 天或 7 天的倍数，最多 182 天（例如：21 天、28 天）
+ 每个容量块最多可配置 64 个实例
+ 多个容量块最多可配置 256 个实例

对于 Amazon EC2 UltraServers，每个 UltraServer 对应一个容量块。您可以通过一次请求来请求多个 UltraServer。

 您可以使用容量块来预留 `p6-b200`、`p5`、`p5e`、`p5en`、`p4d`、`p4de`、`trn1` 和 `trn2` 实例。您可以通过容量块购买以下 UltraServer 类型：`P6e-GB200` 和 `Trn2`（预览版）。

要预留容量块，首先要指定容量需求，包括所需的实例类型或 UltraServer 类型、实例或 UltraServer 数量、时间、最早开始日期和最晚结束日期。然后，您可以看到符合您要求的可用容量块产品。容量块产品包括开始时间、可用区和预留价格等详细信息。容量块产品的价格取决于产品交付时的供需情况。预留容量块后，价格不会改变。有关更多信息，请参阅 [容量块定价和计费](capacity-blocks-pricing-billing.md)。

当您购买容量块产品时，系统会根据您选择的日期和实例数创建预留。当容量块预留开始时，您可以通过在启动请求中指定预留 ID 来定位实例启动。

您可以在容量块结束时间前 30 分钟（适用于实例类型）或 60 分钟（适用于 UltraServer 类型）之前使用您预留的所有实例。在您的容量块预留还剩 30 分钟（适用于实例类型）或 60 分钟（适用于 UltraServer 类型）时，我们将开始终止在容量块中运行的所有实例。我们会利用这段时间清理您的实例，然后将容量块交付给下一个客户。系统将在终止过程开始前 10 分钟通过 EventBridge 发布一个事件。有关更多信息，请参阅 [使用 EventBridge 监控容量块](capacity-blocks-monitor.md)。

# 容量块定价和计费
<a name="capacity-blocks-pricing-billing"></a>

使用适用于 ML 的 Amazon EC2 容量块，您只需为预留的容量付费。容量块的价格取决于购买时容量块的供需情况。在预留之前，您可以查看容量块产品的价格。容量块是在预留时预先收费的。当您搜索某个日期范围内的容量块时，系统会返回价格最低的可用容量块产品。预留容量块后，价格不会改变。

使用容量块时，您需要为实例运行时使用的操作系统付费。有关操作系统价格的更多信息，请参阅[适用于 ML 的 Amazon EC2 容量块定价](https://aws.amazon.com/ec2/capacityblocks/pricing/)。

## 计费
<a name="capacity-blocks-billing"></a>

容量块产品是预先收费的。在您购买容量块后 5 分钟到 12 小时内，将向您的 AWS 账户发送付款账单。在处理您的付款时，您的容量块预留资源仍处于 `payment-pending` 状态。如果无法在您的块开始时间前至少 5 分钟或 12 小时内（以先到者为准）处理您的付款，则您的容量块将被释放，并且预留状态将更改为 `payment-failed`。

成功处理您的付款后，容量块资源状态将从 `payment-pending` 变为 `scheduled`。您会收到一张反映一次性预付款的发票。在发票中，您可以将支付的金额与容量块预留 ID 关联。

当您的容量块预留开始时，您只需按照实例在预留中运行时使用的操作系统付费。您可以在年度账单中查看 AWS 成本和使用情况报告 中的当月使用情况和相关费用。

**注意**  
节省计划和预留实例折扣不适用于容量块。

**查看您的账单**  
您可以在 AWS 账单与成本管理 控制台中查看账单。容量块的预付款显示在您购买预留的月份当中。

预留开始后，您的账单会单独显示一行，显示块预留的已使用和未使用时间。您可以使用这些行项目来查看您的预留使用了多少时间。如果您使用的是高级操作系统，则只会在已使用时间行中看到使用费用。有关更多信息，请参阅 [容量块定价和计费](#capacity-blocks-pricing-billing)。未使用时间无需额外付费。

有关更多信息，请参阅 *AWS 账单与成本管理 用户指南*中的[查看您的账单](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html)。

如果您的容量块的起始月份与您购买预留的月份不同，则预付价格和预留使用情况会显示在单独的账单月份下。在您的 AWS 成本和使用情况报告 中，容量块预留 ID 列在预付费用的 **reservation/ReservationARN** 行项目以及年度账单的 **lineitem/ResourceID** 中，以便您可以将使用情况与相应的预付费用相关联。

# 查找和购买容量块
<a name="capacity-blocks-purchase"></a>

要预留容量块，您首先需要找到符合您需求的可用容量的时间段。要查找可供预留的容量块，请指定以下内容。
+ 您需要的实例数
+ 您需要的实例持续时间
+ 您需要预留的日期范围

要搜索可用的容量块产品，您可以指定预留持续时间和实例数量。您指定预留持续时间必须**以 1 天为增量，最多 14 天；以 7 天为增量，最多 182 天**。每个容量块最多可以有 64 个实例，您最多可以跨容量块拥有 256 个实例。

当您请求符合您规格的容量块时，我们会提供最多 6 个可用块的详细信息。所有容量块均于 UTC 时间上午 11:30 结束，因此同一天开始的块的持续时间将与您所需的持续时间最接近。一个块的持续时间将略小于您所需的持续时间，而另一个块的持续时间将略大于您所需的持续时间。

产品详细信息包括预留开始时间、预留可用区和预留价格。有关更多信息，请参阅 [容量块定价和计费](capacity-blocks-pricing-billing.md)。

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

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

**注意**  
 要购买和使用 Local Zones 中的容量块，您必须主动启用该本地区域。

------
#### [ Console ]

**查找和购买容量块**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 在导航窗格中，依次选择**容量预留**、**创建容量块**。

1. 在**容量块类型**下，选择**实例**或 **UltraServer**。

1. 在**容量属性**下，您可以定义容量块搜索参数。默认情况下，平台为 Linux。如果要选择其他操作系统，请使用 AWS CLI。有关更多信息，请参阅 [支持的平台](ec2-capacity-blocks.md#capacity-blocks-platforms)。

1. 在**总容量**（适用于实例）或 **UltraServer 计数**（适用于 UltraServer）下，指定要预留的实例或 UltraServer 的数量。

1. 在**持续时间**下，输入您需要预留的天数或周数。

1. 在**容量块的搜索日期范围**下，输入预留的最早开始日期。

1. 选择**查找容量块**。

1. 如果有符合您要求的容量块，您将在**推荐的容量块**下方看到产品。如果有多个产品符合要求，则会显示开始日期最早的可用容量块产品。要查看其他容量块产品，请调整搜索输入，然后再次选择**查找容量块**。

1. 当您找到要购买的容量块产品时，选择**下一步**。

1. （可选）在**添加标签**页面上，选择**添加新标签**。

1. **查看和购买**页面列出了开始和结束日期、持续时间、实例总数和价格。
**注意**  
预留后，无法取消容量块。

1. 在**购买容量块**弹出窗口中，键入确认，然后选择**购买**。

------
#### [ AWS CLI ]

**查找实例容量块**  
使用 [describe-capacity-block-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-block-offerings.html) 命令。

以下示例查找实例容量块。

```
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-hours 48 \
--all-availability-zones
```

以下示例查找 UltraServer 容量块。

```
aws ec2 describe-capacity-block-offerings \
--ultraserver-type u-p6e-gb200x72 \
--ultraserver-count 1 \
--start-date-range 2023-08-14T00:00:00Z \
--end-date-range 2023-10-22-T00:00:00Z \
--capacity-duration-hours 48
```

**购买容量块**  
将 [purchase-capacity-block](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-capacity-block.html) 命令与上一个示例输出中容量块的产品 ID 结合使用。

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

------
#### [ PowerShell ]

**查找容量块**  
使用 [Get-EC2CapacityBlockOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityBlockOffering.html) cmdlet。

以下示例查找实例容量块。

```
Get-EC2CapacityBlockOffering `
-InstanceType p5.48xlarge `
-InstanceCount 16 `
-CapacityDurationHour 48 `
-StartDateRange 2023-08-14T00:00:00Z `
-EndDateRange 2023-10-22-T00:00:00Z `
-AllAvailabilityZones $true
```

以下示例查找 UltraServer 容量块。

```
Get-EC2CapacityBlockOffering `
-UltraserverType u-p6e-gb200x72 `
-UltraserverCount  1 `
-CapacityDurationHour 48 `   
-StartDateRange 2023-08-14T00:00:00Z `
-EndDateRange 2023-10-22-T00:00:00Z
```

**购买容量块**  
将 [New-EC2EC2CapacityBlock](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2EC2CapacityBlock.html) cmdlet 与上一个示例输出中容量块的产品 ID 结合使用。

```
New-EC2EC2CapacityBlock `
-CapacityBlockOfferingId cb-0123456789abcdefg `
-InstancePlatform Linux/UNIX
```

------

# 使用容量块启动实例
<a name="capacity-blocks-launch"></a>

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

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

**要求**
+ 您的实例无法在与您的容量块所在可用区不同的可用区的子网中启动。
+ 实例无法使用其平台与容量块上的平台不同的 AMI 启动。
+  要使用 Local Zones 中的容量块，您必须主动启用该本地区域。

------
#### [ Console ]

**要将实例启动到容量块中**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 从 Amazon EC2 控制台控制面板中，选择**启动实例**。

1. 按照程序[启动实例](ec2-launch-instance-wizard.md)。

1. 展开**高级详细信息**，然后在**购买选项**中选择**容量块**。然后，执行以下操作之一：
   + 要将实例启动到特定的容量块，请在**容量预留**中选择**指定容量预留**，然后选择容量块。
   + （*仅限 UltraServer* ）要将实例启动到 UltraServer 容量块资源组中，请在**容量预留**中选择**指定容量预留资源组**，然后选择相应的资源组。

1. 选择**启动实例**。

------
#### [ AWS CLI ]

**要将实例启动到容量块中**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令和 `instance-market-options MarketType` 选项。

以下示例将实例启动到特定的容量块中。

```
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type p5.48xlarge \
--key-name my-key-pair \
--subnet-id subnet-0abcdef1234567890 \
--instance-market-options MarketType='capacity-block' \
--capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=capacity_block_id}
```

以下示例将实例启动到 UltraServer 容量块资源组中。

```
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type p6e-gb200.36xlarge \
--key-name my-key-pair \
--subnet-id subnet-0abcdef1234567890 \
--instance-market-options MarketType='capacity-block' \
--capacity-reservation-specification CapacityReservationTarget={CapacityReservationResourceGroupArn=resource_group_arn}
```

------
#### [ PowerShell ]

**要将实例启动到容量块中**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet，其 `-InstanceMarketOption` 选项定义如下。

```
$marketoption = New-Object Amazon.EC2.Model.InstanceMarketOptionsRequest
$marketoption.MarketType = "capacity-block"
```

以下示例将实例启动到特定的容量块中。

```
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType p5.48xlarge `
-KeyName "my-key-pair" `
-SubnetId subnet-0abcdef1234567890 `
-InstanceMarketOptions $marketoption `
-CapacityReservationTarget_CapacityReservationId capacity_block_id
```

以下示例将实例启动到 UltraServer 容量块资源组中。

```
New-EC2Instance `
-ImageId ami-0abcdef1234567890 `
-InstanceType p6e-gb200.36xlarge `
-KeyName "my-key-pair" `
-SubnetId subnet-0abcdef1234567890 `
-InstanceMarketOptions $marketoption `
-CapacityReservationTarget_CapacityReservationResourceGroupArn "resource_group_arn"
```

------

**相关资源**
+ 要创建将容量块作为目标的启动模板，请参阅[在 Amazon EC2 启动模板中存储实例启动参数](ec2-launch-templates.md)。
+ 要使用 EC2 实例集在容量块中启动实例，请参阅[教程：将 EC2 实例集配置为将实例启动到容量块中](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md)。
+ 要设置带容量块的 EKS 托管式节点组，请参阅《Amazon EKS 用户指南》中的[创建带适用于机器学习的容量块的托管式节点组](https://docs.aws.amazon.com/eks/latest/userguide/capacity-blocks-mng.html)。****
+ 要使用容量块设置 AWS ParallelCluster，请参阅 [ML on AWS ParallelCluster](https://catalog.workshops.aws/ml-on-aws-parallelcluster/en-US)。

# 查看容量块
<a name="capacity-blocks-view"></a>

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

当容量块预留开始时，预留状态从 `scheduled` 变为 `active`。系统通过 Amazon EventBridge 发出一个事件，通知您容量块可以使用。有关更多信息，请参阅 [使用 EventBridge 监控容量块](capacity-blocks-monitor.md)。

容量块具有以下状态：
+ `payment-pending` - 预付款尚未处理。
+ `payment-failed` - 无法在 12 小时内处理付款。您的容量块已释放。
+ `scheduled` - 付款已处理，但容量块预留尚未开始。
+ `active` - 预留容量可供使用。
+ `expired` - 容量块预留将在您的预留请求中指定的日期和时间自动到期。预留容量不再可供您使用。

------
#### [ Console ]

**查看容量块**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

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

1. 有关容量块的更多详细信息，请选择要查看的容量块的预留 ID。**容量预留详细信息**页面将显示预留的所有属性以及容量块中正在使用和可用的实例数。
**注意**  
在容量块预留开始之前，可用容量显示为零。您可以通过使用标签键的以下标签值查看容量块预留开始时有多少可用实例：`aws:ec2capacityreservation:incrementalRequestedQuantity`。

------
#### [ AWS CLI ]

**查看容量块**  
默认情况下，当您使用 [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) 命令时，会列出按需容量预留和容量块预留。要仅查看容量块预留，可通过 `capacity-block` 预留类型进行筛选。

```
aws ec2 describe-capacity-reservations \
    --filters Name=reservation-type,Values=capacity-block
```

------
#### [ PowerShell ]

**查看容量块**  
使用 [Get-EC2CapacityReservation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityReservation.html) cmdlet。默认情况下，会列出按需容量预留和容量块预留。要仅查看容量块预留，可通过 `capacity-block` 预留类型进行筛选。

```
Get-EC2CapacityReservation `
    -Filter @{Name="reservation-type"; Values="capacity-block"}
```

------

# 延长容量块期限
<a name="capacity-blocks-extend"></a>

使用容量块，您可以为工作负载预留计算容量，以确保可用性和一致性。为了满足您不断变化的需求，您可以根据需要延长现有容量块的持续时间。

要延长容量块，其状态必须为 `active` 或 `scheduled`，并且没有处于 `payment-pending` 状态的延期。您可以在容量块过期前，申请将其期限延长至最少 1 小时或最多 56 天。您可以将容量块以 1 天为增量延长至总计最长 14 天，或者以 7 天为增量延长至总计最长 182 天（26 周）。当您延长容量块期限时，其结束日期将会更新，以便您的实例可以继续运行而不中断。
+ 可以应用于容量块的延期数量没有限制
+ 延长块期限后，您的容量预留 ID 将保持不变
+ 只有当具有足够的可用容量来支持容量块时，才能对其进行延期，但这并不能保证。

## 计费
<a name="capacity-blocks-extend-billing"></a>

容量块产品是预先收费的。延期将保持 `payment-pending` 状态，直到账单付清为止。如果您的付款无法在 12 小时内或容量块预计结束前的 35 分钟内处理（以先到者为准），则您的延期将失败，并且状态将更改为 `payment-failed`。您的容量块预留将保持 `active` 状态，并将于原始结束日期终止。

成功处理您的付款后，容量块延期状态将更改为 `payment-succeeded`，并且容量块预留的结束日期将更新为新的结束日期。延期的详细信息可以在控制台的**容量块延期详细信息**部分中查看，也可以使用 [describe-capacity-block-extension-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-block-extension-history.html) 命令查看。

## 延长您的容量块期限
<a name="capacity-blocks-extend-procedure"></a>

------
#### [ Console ]

**延长容量块期限**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 在**容量预留概述**页面上，您会看到一个资源表，其中包含有关所有容量预留资源的详细信息。选择要延期的容量块的预留 ID。

1. 从**操作**下拉菜单中，选择**延长容量块期限**。

1. 在**持续时间**下，输入您需要延长预留的天数或周数。

1. 选择**查找容量块**。

1. 如果有符合您规格的容量块，则会在**推荐的容量块**下显示一个产品。要查看其他容量块产品，请调整搜索输入，然后再次选择**查找容量块**。

1. 当您找到要购买的容量块产品时，请选择**延期**。

1. 在**延长容量块期限**弹出窗口中，输入*确认*，然后选择**延期**。

------
#### [ AWS CLI ]

**查找容量块延期**  
使用 [describe-capacity-block-extension-offerings](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-block-extension-offerings.html) 命令。以下示例搜索指定预留的 48 小时容量块延期。

```
aws ec2 describe-capacity-block-extension-offerings \
    --capacity-reservation-id cr-1234567890abcdefg \
    --capacity-block-extension-duration-hours 48
```

**延长容量块期限**  
使用 [purchase-capacity-block-extension](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-capacity-block-extension.html) 命令。从上一个示例的输出中指定延期产品 ID。

```
aws ec2 purchase-capacity-block-extension \
    --capacity-block-extension-offering-id cbe-0123456789abcdefg \
    --capacity-reservation-id cr-1234567890abcdefg
```

------
#### [ PowerShell ]

**查找容量块延期**  
使用 [Get-EC2CapacityBlockExtensionOffering](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2CapacityBlockExtensionOffering.html) cmdlet。以下示例搜索指定预留的 48 小时容量块延期。

```
Get-EC2CapacityBlockExtensionOffering `
    -CapacityReservationId cr-1234567890abcdefg `
    -CapacityBlockExtensionDurationHour 48
```

**延长容量块期限**  
使用 [Invoke-EC2CapacityBlockExtension](https://docs.aws.amazon.com/powershell/latest/reference/items/Invoke-EC2CapacityBlockExtension.html) cmdlet。从上一个示例的输出中指定延期产品 ID。

```
Invoke-EC2CapacityBlockExtension `
    -CapacityBlockExtensionOfferingId cbe-0123456789abcdefg `
    -CapacityReservationId cr-1234567890abcdefg
```

------

# 共享容量块
<a name="capacity-blocks-share"></a>

 容量块共享使容量块拥有者能够与 AWS 组织内的其他 AWS 账户共享 Amazon EC2 容量块。这样，您便可以最大限度地利用不同团队和项目的预留 GPU 容量，从而有效地使用容量块。

 拥有容量块的 AWS 账户（拥有者）可以与其他 AWS 账户（使用者）共享它。拥有者可以与其 AWS 组织内的特定 AWS 账户、其 AWS 组织内的组织单位或整个 AWS 组织共享容量块。使用者可以像在自己拥有的容量块中启动实例一样，在与他们共享的容量块中启动实例。

## 共享容量块的先决条件
<a name="capacity-blocks-share-prereq"></a>

在共享容量块之前，必须满足下面的条件：
+ **您必须拥有容量块**：您无法共享已与您共享的容量块。
+  **容量块状态必须为活跃或已计划**：处于其他[状态](https://docs.aws.amazon.com/cli/latest/reference/ec2/purchase-capacity-block.html)（例如 `expired` 或`payment-pending`）的容量块无法共享。
+ **仅在您的 AWS 组织内共享**：拥有者可以与其 AWS 组织内的特定 AWS 账户、其 AWS 组织内的组织单位或整个 AWS 组织共享容量块。
+  **不支持 UltraServer 容量块**：您无法共享 Amazon EC2 UltraServers 的容量块。
+ **账户资格**：容量块共享不适用于新的 AWS 账户或具有有限账单历史记录的 AWS 账户。

## 相关服务
<a name="capacity-blocks-share-related"></a>

容量块共享与 AWS Resource Access Manager (AWS RAM) 集成。AWS RAM 是一项服务，允许您与任何 AWS 账户或通过 AWS Organizations 共享 AWS 资源。利用 AWS RAM，您可通过创建*资源共享*来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者可以是单个 AWS 账户或 AWS Organizations 中的组织部门或整个组织。

AWS RAM有关 * 的更多信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/) 用户指南*。

## 共享容量块权限
<a name="capacity-blocks-share-permissions"></a>

### 拥有者的权限
<a name="capacity-blocks-share-permissions-owner"></a>

 容量块拥有者仍然负责管理容量块（如扩展、共享）以及在其中启动的实例。拥有者无法修改使用者启动到已共享的容量块中的实例。

### 使用者的权限
<a name="capacity-blocks-share-permissions-consumer"></a>

 使用者可以在共享容量中启动实例，并负责管理这些实例。使用者无法查看或修改由其他使用者或容量块拥有者拥有的实例。使用者还只能查看共享容量块中的总容量和可用容量。

## 共享容量块
<a name="capacity-blocks-sharing"></a>

要共享容量块，您必须将它添加到资源共享。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。

如果您已将容量块添加到与整个 AWS 组织共享的资源共享，则组织中的使用者将能够访问共享的容量块。

------
#### [ Console ]

**要使用 Amazon EC2 控制台共享您拥有的容量块**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 选择要共享的容量块，然后选择**操作、共享预留**。

1. 选择要将容量块添加到的资源共享，然后选择**共享容量预留**。

   使用者可能需要几分钟的时间才能访问共享容量块。

**要将容量块添加到新的资源共享中**  
必须使用 AWS RAM 控制台先创建资源共享。有关更多信息，请参阅《AWS RAM User Guide》**中的 [Creating a resource share](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

------
#### [ AWS CLI ]

**共享您拥有的容量块**  
 使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 和 [associate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/associate-resource-share.html) 命令。

```
aws ram create-resource-share \
    --name my-resource-share \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE
```

```
aws ram associate-resource-share \
    --resource-share-arn arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE
```

------
#### [ PowerShell ]

**共享您拥有的容量块**  
 使用 [New-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/New-RAMResourceShare.html) 和 [Connect-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/Connect-RAMResourceShare.html) cmdlet。

```
New-RAMResourceShare `
    -Name my-resource-share `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE"
```

```
Connect-RAMResourceShare `
    -ResourceShareArn "arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE" `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE"
```

------

 对于所有账户，无论所有权状态如何，容量块都按**先到先得的原则**运行。当您共享容量块时，如果使用者在拥有者之前启动实例，则这些实例会占用容量，直到使用者终止实例或直到容量块到期前 30 分钟。

## 停止共享容量块
<a name="capacity-blocks-unsharing"></a>

 您可以在容量块到期前 30 分钟随时停止共享容量块。

**停止共享时会发生什么情况：**
+ 使用者无法再在未共享的容量块中启动新实例。
+ 除非使用者终止，否则任何正在运行的实例都会持续运行到容量块到期日前 30 分钟。

------
#### [ Console ]

**要使用 Amazon EC2 控制台停止共享您拥有的容量块**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**容量预留**。

1. 选择容量块并选择**共享**选项卡。

1.  **共享**选项卡列出了已将容量块添加到的资源共享。选择要从中移除容量块的资源共享。

1. 选择**从资源共享中移除**。

------
#### [ AWS CLI ]

**停止共享您拥有的容量块**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

```
aws ram disassociate-resource-share \
    --resource-share-arn arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE
```

------
#### [ PowerShell ]

**停止共享您拥有的容量块**  
使用 [Disconnect-RAMResourceShare](https://docs.aws.amazon.com/powershell/latest/reference/items/Disconnect-RAMResourceShare.html) cmdlet。

```
Disconnect-RAMResourceShare `
    -ResourceShareArn "arn:aws:ram:us-east-2:123456789012:resource-share/7ab63972-b505-7e2a-420d-6f5d3EXAMPLE" `
    -ResourceArn "arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234abcd56EXAMPLE"
```

------

## 监控共享容量块使用情况
<a name="capacity-blocks-shared-monitor-usage"></a>

容量块拥有者可以监控哪些账户正在使用其共享容量块，并跟踪每个账户的实例使用情况。

------
#### [ AWS CLI ]

**监控容量块的使用情况**  
使用 [get-capacity-reservation-usage](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-capacity-reservation-usage.html) 命令。

```
aws ec2 get-capacity-reservation-usage \
    --capacity-reservation-id cr-1234abcd56EXAMPLE
```

**此 API 使拥有者能够：**
+ 查看哪些账户当前正在使用容量块。
+ 查看每个账户正在运行的实例数。

------

## 实例终止通知
<a name="capacity-blocks-shared-instance-termination-notices"></a>

 在容量块中运行实例的拥有者和使用者账户将在容量块预留结束前 40 分钟收到一个 EventBridge 事件，指明预留中运行的所有实例将在 10 分钟后开始终止。有关更多信息，请参阅 [使用 EventBridge 监控容量块](capacity-blocks-monitor.md)。

## 容量块扩展
<a name="capacity-blocks-shared-extend"></a>

容量块可以在共享时进行扩展。只有拥有者账户才能扩展共享容量区块。

 扩展容量块后，拥有者或使用者启动的正在运行的实例会自动继承新的到期日期，使用者可以继续使用共享容量，直到新的到期日，而不会中断任何实例。

## 定价和计费
<a name="capacity-blocks-shared-pricing-billing"></a>

 拥有者需要为他们共享的容量块付费，在购买容量块时需预先支付容量块的费用。拥有者还需为他们在容量块上运行的实例支付操作系统费用。

 使用者只需为他们在共享容量块中运行的实例支付操作系统费用。使用者无需为容量块预留本身付费。

# 为 UltraServer 容量块创建资源组
<a name="cb-group"></a>

您可以使用 AWS Resource Groups 创建 UltraServer 容量块的逻辑集合。创建资源组后，您可以添加您账户中拥有的 UltraServer 容量块。添加 UltraServer 容量块后，您可以将实例启动定位到资源组，而不是单个容量块。针对资源组的实例与组中具有匹配属性和可用容量的任何 UltraServer 容量块匹配。如果资源组没有具有匹配属性和可用容量的 UltraServer 容量块，则实例启动失败。

如果在 UltraServer 容量块有正在运行的实例时将其从资源组中删除，则这些实例将继续在容量块中运行。如果组中的 UltraServer 容量块在具有正在运行的实例时结束，则实例将终止。

您无法将实例容量块添加到资源组。

要为 UltraServer 容量块创建资源组，请使用以下方法之一。

------
#### [ AWS CLI ]

**要为 UltraServer 容量块创建资源组**  
使用 [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) AWS CLI 命令，并为 `--configuration` 指定以下内容：

```
{
  "Configuration": [
    {
      "Type": "AWS::EC2::CapacityReservationPool",
      "Parameters": [
        {
          "Name": "instance-type",
          "Values": [
            "instance_type"
          ]
        },
        {
          "Name": "reservation-type",
          "Values": [
            "capacity-block"
          ]
        }
      ]
    },
    {
      "Type": "AWS::ResourceGroups::Generic",
      "Parameters": [
        {
          "Name": "allowed-resource-types",
          "Values": [
            "AWS::EC2::CapacityReservation"
          ]
        }
      ]
    }
  ]
}
```

------
#### [ PowerShell ]

**要为 UltraServer 容量块创建资源组**  
使用 [New-RGGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-RGGroup.html) cmdlet。对于 `-Configuration`，请指定以下内容：

```
{
  "Configuration": [
    {
      "Type": "AWS::EC2::CapacityReservationPool",
      "Parameters": [
        {
          "Name": "instance-type",
          "Values": [
            "instance_type"
          ]
        },
        {
          "Name": "reservation-type",
          "Values": [
            "capacity-block"
          ]
        }
      ]
    },
    {
      "Type": "AWS::ResourceGroups::Generic",
      "Parameters": [
        {
          "Name": "allowed-resource-types",
          "Values": [
            "AWS::EC2::CapacityReservation"
          ]
        }
      ]
    }
  ]
}
```

------

为 UltraServer 容量块创建资源组后，使用以下方法之一将现有的 UltraServer 容量块添加到其中。

------
#### [ AWS CLI ]

**要将 UltraServer 容量块添加到资源组**  
使用 [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) 命令。对于 `--group`，请指定您创建的资源组的名称。对于 `--resource-arns`，请指定要添加的 UltraServer 容量块的 ARN。

```
aws resource-groups group-resources \
--group MyCRGroup \
--resource-arns CapacityReservationArn
```

------
#### [ PowerShell ]

**要将 UltraServer 容量块添加到资源组**  
使用 [Add-RGResource](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-RGResource.html) cmdlet。对于 `-Group`，请指定您创建的资源组的名称。对于 `-ResourceArn `，请指定要添加的 UltraServer 容量块的 ARN。

以下示例向指定组添加两个容量预留。

```
Add-RGResource `
-Group MyCRGroup `
-ResourceArn CapacityReservationArn
```

------

# 使用 EventBridge 监控容量块
<a name="capacity-blocks-monitor"></a>

当您的容量块预留开始时，Amazon EC2 将通过 EventBridge 发出一个事件，表明您的容量已准备就绪，可以使用。在容量块预留结束前 40 分钟，您会收到另一个 EventBridge 事件，通知您预留中运行的所有实例将在 10 分钟后开始进行终止。有关 EventBridge 事件的更多信息，请参阅 [Amazon EventBridge 事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)。

容量块发出的事件结构如下：

**已交付的容量块**  
以下示例显示了已交付的容量块的事件。

```
{
  "customer_event_id": "[Capacity Reservation Id]-delivered",
  "detail_type": "Capacity Block Reservation Delivered",
  "source": "aws.ec2",
  "account": "[Customer Account ID]",
  "time": "[Current time]",
  "resources": [
    "[ODCR ARN]"
  ],
  "detail": {
    "capacity-reservation-id": "[ODCR ID]",
    "end-date": "[ODCR End Date]"
  }
}
```

**容量块过期警告**  
以下示例显示了容量块过期警告事件。

```
{
  "customer_event_id": "[Capacity Reservation Id]-approaching-expiry",
  "detail_type": "Capacity Block Reservation Expiration Warning",
  "source": "aws.ec2",
  "account": "[Customer Account ID]",
  "time": "[Current time]",
  "resources": [
    "[ODCR ARN]"
  ],
  "detail": {
    "capacity-reservation-id": "[ODCR ID]",
    "end-date": "[ODCR End Date]"
  }
}
```

**容量预留实例中断警告**  
下面的示例显示了 EC2 容量预留实例中断警告事件。

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail_type": "EC2 Capacity Reservation Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "[Customer Account ID]",
    "time": "[Current time]",
    "region": "[Region]",
    "resources": [
        "[Instance ARN]"
    ],
    "detail": {
        "instance-id": "[Instance ID]",
        "instance-action": "terminate",
        "instance-termination-time": "[Current time]",
        "availability-zone-id": "[Availability Zone ID]",
        "instance-lifecycle": "capacity-block"
    }
}
```

# 使用 AWS CloudTrail 记录容量块 API 调用
<a name="capacity-blocks-logging-using-cloudtrail"></a>

容量块与 AWS CloudTrail 集成，后者是一种服务，提供用户、角色或 AWS 服务在容量块中采取的操作的记录。CloudTrail 将容量块的 API 调用作为事件捕获。捕获的调用包含来自容量块控制台的调用以及对容量块 API 操作的代码调用。如果您创建跟踪，则可以将 CloudTrail 事件持续交付到 Amazon S3 存储桶，包括容量块事件。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。使用 CloudTrail 收集的信息，您可以确定向容量块发出的请求、发出请求的 IP 地址、请求方、请求时间以及其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅[《AWS CloudTrail 用户指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

## CloudTrail 中的容量块信息
<a name="capacity-blocks-info-in-cloudtrail"></a>

在您创建 AWS 账户 时，将在该账户上启用 CloudTrail。当容量块中发生活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同记录在**事件历史记录**中。您可以在 AWS 账户 中查看、搜索和下载最新事件。有关更多信息，请参阅[使用 CloudTrail 事件历史记录查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录 AWS 账户 中的事件（包括容量块事件），请创建跟踪。通过*跟踪*，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。默认情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有 AWS 区域。此跟踪记录在 AWS 分区中记录所有区域中的事件，并将日志文件传送至您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅下列内容：
+ [创建跟踪记录概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [为 CloudTrail 配置 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

CloudTrail 会记录所有容量块操作，并记录在 Amazon EC2 API 参考中。例如，对 `CapacityBlockScheduled` 和 `CapacityBlockActive` 操作的调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 AWS Identity and Access Management（IAM）用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 了解容量块日志文件条目
<a name="understanding-service-name-entries"></a>

跟踪记录是一种配置，可用于将事件作为日志文件传送到您指定的 Simple Storage Service（Amazon S3）存储桶。CloudTrail 日志文件包含一个或多个记录条目。一个事件表示来自任何源的一个请求，包括有关所请求的操作、操作的日期和时间、请求参数等方面的信息。CloudTrail 日志文件不是公有 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

以下示例显示了 CloudTrail 日志条目：
+ [TerminateCapacityBlocksInstances](#understanding-capacity-blocks-entries-terminatecapacityblockinstances)
+ [CapacityBlockPaymentFailed](#understanding-capacity-blocks-entries-capacityblockpaymentfailed)
+ [CapacityBlockScheduled](#understanding-capacity-blocks-entries-capacityblockscheduled)
+ [CapacityBlockActive](#understanding-capacity-blocks-entries-capacityblockactive)
+ [CapacityBlockFailed](#understanding-capacity-blocks-entries-capacityblockfailed)
+ [CapacityBlockExpired](#understanding-capacity-blocks-entries-capacityblockexpired)

**注意**  
为了保护数据隐私，已从示例中删除了一些字段。

### TerminateCapacityBlocksInstances
<a name="understanding-capacity-blocks-entries-terminatecapacityblockinstances"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "TerminateCapacityBlockInstances",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "accountId": "123456789012",
      "type": "AWS::EC2::Instance",
      "ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
    }
    {
      "accountId": "123456789012",
      "type": "AWS::EC2::Instance",
      "ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-0598c7d356eba48d7"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      }
}
```

### CapacityBlockPaymentFailed
<a name="understanding-capacity-blocks-entries-capacityblockpaymentfailed"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "CapacityBlockPaymentFailed",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "ARN": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-12345678",
      "accountId": "123456789012",
      "type": "AWS::EC2::CapacityReservation"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      "capacityReservationState": "payment-failed"
      }
}
```

### CapacityBlockScheduled
<a name="understanding-capacity-blocks-entries-capacityblockscheduled"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "CapacityBlockScheduled",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "ARN": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-12345678",
      "accountId": "123456789012",
      "type": "AWS::EC2::CapacityReservation"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      "capacityReservationState": "scheduled"
      }
}
```

### CapacityBlockActive
<a name="understanding-capacity-blocks-entries-capacityblockactive"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "CapacityBlockActive",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "ARN": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-12345678",
      "accountId": "123456789012",
      "type": "AWS::EC2::CapacityReservation"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      "capacityReservationState": "active"
      }
 }
```

### CapacityBlockFailed
<a name="understanding-capacity-blocks-entries-capacityblockfailed"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "CapacityBlockFailed",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "ARN": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-12345678",
      "accountId": "123456789012",
      "type": "AWS::EC2::CapacityReservation"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      "capacityReservationState": "failed"
      }
 }
```

### CapacityBlockExpired
<a name="understanding-capacity-blocks-entries-capacityblockexpired"></a>

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "accountId": "123456789012",
    "invokedBy": "AWS Internal;"
  },
  "eventTime": "2023-10-02T00:06:08Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "CapacityBlockExpired",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "203.0.113.25",
  "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
  "requestParameters": null,
  "responseElements": null,
  "eventID": "a1b2c3d4-EXAMPLE",
  "readOnly": false,
  "resources": [
    {
      "ARN": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-12345678",
      "accountId": "123456789012",
      "type": "AWS::EC2::CapacityReservation"
    }
  ],
  "eventType": "AwsServiceEvent",
  "recipientAccountId": "123456789012",
  "serviceEventDetails": {
      "capacityReservationId": "cr-12345678",
      "capacityReservationState": "expired"
      }
 }
```