

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# ODCRs 与 AWS PCS 一起使用
<a name="capacity-reservations-odcr"></a>

 您可以选择 AWS PCS 如何使用您的预留实例。如果您创建了**开放**的 ODCR，则您的账户中 AWS PCS 或其他进程启动的任何匹配实例都将计入预留中。对于**定**向 ODCR，只有使用特定预留 ID 启动的实例才会计入预留。对于时间敏感型工作负载，定向 ODCRs 更为常见。

 您可以将 AWS PCS 计算节点组配置为使用目标 ODCR，方法是将其添加到启动模板中。以下是执行此操作的步骤：

1.  使用 [Amazon EC2 创建容量预留用户指南创建有针对性的按需容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html) (ODCR)。

1.  将 ODCR 与启动模板关联。有两种方法可以做到这一点：

   1.  **直接关联 ODCR：**直接在启动模板中引用 ODCR ID。这种方法提供了严格的容量控制并且不支持实例回填（如果计算节点组请求的实例数超过 ODCR 中的可用实例，则不会启动其他实例）。

   1.  **容量预留组关联：**将 ODCR 添加到容量预留组并在启动模板中引用该组。此方法支持实例回填，允许 AWS PCS 在超过预留容量时启动其他按需实例。

1.  创建或更新 AWS PCS 计算节点组以使用启动模板。有关更多信息，请参阅 [AWS PCS 计算节点组用户指南](https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng.html)。

   1. 将计算节点组`purchaseOption`的设置为`ONDEMAND`。

## 示例：预留并使用带有目标 ODCR 的 hpc6a.48xlarge 实例
<a name="capacity-reservations-odcr-example"></a>

 此示例命令为 32 个 hpc6a.48xlarge 实例创建目标 ODCR。要在置放群组中启动预留实例，请`--placement-group-arn`向命令中添加。您可以使用`--end-date`和定义停止日期`--end-date-type`，否则预留将一直持续到手动终止。

```
aws ec2 create-capacity-reservation \
    --instance-type hpc6a.48xlarge \
    --instance-platform Linux/UNIX \
    --availability-zone us-east-2a \
    --instance-count 32 \
    --instance-match-criteria targeted
```

 此命令的结果将是新 ODCR 的 ARN。ODCR ID 可以从 `"arn:aws:ec2:us-east-2:123456789012:capacity-reservation/ODCR-ID"` ARN 中检索，也可以使用 A [mazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCapacityReservations.html) 检索。 DescribeCapacityReservations

 **直接 ODCR 关联：**将 ODCR ID 添加到启动模板中。以下是引用 ODCR ID 的启动模板示例。

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationTarget": {
      "CapacityReservationId": "cr-1234567890abcdef1"
    }
  }
}
```

 **容量预留组关联：**创建容量预留组并将该组添加到启动模板中。以下命令创建名为的容量预留组`EXAMPLE-CR-GROUP`。

```
aws resource-groups create-group \
    --name EXAMPLE-CR-GROUP \
    --configuration \
        '{"Type": "AWS::EC2::CapacityReservationPool"}' \
        '{"Type": "AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

 以下命令将 ODCR 添加到容量预留组。

```
aws resource-groups group-resources --group EXAMPLE-CR-GROUP \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234567890abcdef1
```

 创建 ODCR 并将其添加到容量预留组后，现在可以通过将其添加到启动模板来将其连接到 AWS PCS 计算节点组。以下是引用容量预留组的启动模板示例。

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/EXAMPLE-CR-GROUP"
  }
}
```

 最后，创建或更新 AWS PCS 计算节点组以使用 hpc6a.48xlarge 实例，并使用引用 ODCR 的启动模板。对于静态节点组，将最小和最大实例数设置为预留的大小 (32)。对于动态节点组，请将最小实例数设置为 0，将最大实例设置为所需的实例大小。

 此示例是为一个计算节点组配置的单个 ODCR 的简单实现。但是， AWS PCS 支持许多其他设计。例如，您可以将一个大型 ODCR 或容量预留组细分为多个计算节点组。或者 ODCRs ，您可以使用其他 AWS 账户创建并与您共享的账户。

 有关更多信息，请参阅 *Amazon 弹性计算云用户指南*中的[机器学习按需容量预留和容量块](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-overview.html)。