

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

# 使用 EC2 Auto Scaling 进行可中断的容量预留
<a name="asg-interruptible-capacity-reservations"></a>

可中断容量预留是指 AWS 组织内按需容量预留所有者借给您的备用容量。这些预留适用于可中断的工作负载，因为容量所有者可以随时收回容量，发出中断通知 2 分钟，之后实例就会终止。有关可中断容量预留及其工作原理的概述，请参阅 *Amazon EC2 用户*指南中的[可中断容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)。

首先，您可以通过从账户中的任何按需容量预留中分配未使用的容量来创建可中断的预留。接下来，创建启动模板，指定可中断容量预留 ID 和相应的市场类型。最后，创建您的 Auto Scaling 群组以使用您创建的启动模板。

**注意**  
可中断容量预留不支持混合实例组。
可中断的容量预留将显示在您的账户中，新属性`interruptible`设置为。`true`

**Topics**
+ [操作指导方针](#operational-guidelines)
+ [在启动模板中指定可中断容量预留](#specify-interruptible-cr)
+ [限制](#limitations)
+ [相关资源](#related-resources)

## 操作指导方针
<a name="operational-guidelines"></a>

以下是在 Auto Scaling 组中使用可中断容量预留时应遵循的基本操作准则。
+ 从可中断的容量预留中启动的实例可以在容量回收后提前 2 分钟通知终止。设计您的应用程序以应对正常关机。
+ Amazon EC2 会在实例终止前 2 分钟发送 EventBridge 通知。虽然 Auto Scaling 不会自动对这些事件做出反应，但您可以设置自定义自动化以响应中断通知。
+ 当实例因容量回收而终止时，Auto Scaling 的运行状况检查器将检测终止情况，并根据您的组的配置自动启动替换实例。
+ 指向启动模板的特定版本，而不是`$Default`或`$Latest`版本，以确保一致性。

**注意**  
回收可中断容量预留实例时，您的 Auto Scaling 组的扩展活动将显示：`taken out of service in response to an Amazon EC2 health check that indicated it had been terminated or stopped`。Auto Scaling 将尝试替换实例，方法与替换任何未通过运行状况检查的实例的方式相同。

## 在启动模板中指定可中断容量预留
<a name="specify-interruptible-cr"></a>

要创建针对您的 Auto Scaling 组的特定可中断容量预留的启动模板，请使用以下方法之一：

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

**在启动模板中指定可中断容量预留（控制台）**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在顶部导航栏上，选择可中断容量预留 AWS 区域 的位置。

1. 在导航窗格中的**实例**下，选择**启动模板**。

1. 选择**创建启动模板**，然后创建启动模板。根据需要包括 AMI 的 ID、实例类型和任何其他启动模板设置。

1. 展开**高级详细信息**部分以查看高级设置。

1. 对于**购买选项**，选择**可中断容量预留**。

1. 在 “**容量预留**” 中，选择 “**按 ID 定**位”，然后在 “**容量预留-按 ID 定**位” 中，选择现有可中断容量预留的容量预留的容量预留 ID。

1. 完成后，选择**创建启动模板**。

有关使用启动模板创建自动扩缩组的帮助，请参阅[使用启动模板创建 Auto Scaling 组](create-asg-launch-template.md)。

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

**在启动模板中指定可中断容量预留 ()AWS CLI**  
使用以下[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)命令创建用于指定现有可中断容量预留 ID 的启动模板。将每个用户输入占位符替换为您自己的信息。

```
aws ec2 create-launch-template --launch-template-name my-template-for-interruptible-cr \
  --version-description AutoScalingVersion1 --region us-east-2 \
  --launch-template-data file://config.json
```

**提示**  
如果此命令引发错误，请确保已将 AWS CLI 本地版本更新到最新版本。

`config.json` 的内容：

```
{
    "ImageId": "ami-04d5cc9b88example",
    "InstanceType": "t3.nano",
    "SecurityGroupIds": [
        "sg-903004f88example"
    ],
    "KeyName": "MyKeyPair",
    "InstanceMarketOptions": {
        "MarketType": "interruptible-capacity-reservation"
    },
    "CapacityReservationSpecification": {
        "CapacityReservationTarget": {
            "CapacityReservationId": "cr-02168da1478b509e0"
        }
    }
}
```

下面是示例输出：

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-068f72b724example",
        "LaunchTemplateName": "my-template-for-interruptible-cr",
        "CreateTime": "2023-10-27T15:12:44.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

您可以使用以下[describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html)命令验证与启动模板关联的可中断容量预留 ID：

```
aws ec2 describe-launch-template-versions --launch-template-names my-template-for-interruptible-cr \
  --region us-east-2
```

------

**Auto Scaling 组级别配置**  
您可以选择在 Auto Scaling 组级别指定容量预留设置以覆盖启动模板设置：
+ **容量预留首选项**：`capacity-reservations-only`仅支持可中断的容量预留。不支持该`capacity-reservations-first`首选项。
+ **目标规范**：您可以在组级别指定不同的可中断容量预留 ID 来覆盖启动模板设置。

## 限制
<a name="limitations"></a>
+ 可中断容量预留不支持混合实例策略。
+ 您必须在启动模板中指定正确的市场类型 (`interruptible-capacity-reservation`) 以及容量预留 ID。

## 相关资源
<a name="related-resources"></a>
+ 有关创建和管理可中断容量预留的信息，请参阅 *Amazon EC2 用户*指南中的可中[断容量预留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)。
+ 有关在 Auto Scaling 中使用容量预留的一般信息，请参阅[使用容量预留在特定可用区中预留容量](use-ec2-capacity-reservations.md)。
+ 有关 Auto Scaling 组运行状况检查的信息，请参阅 [Auto Scaling 组中实例的运行状况](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)检查。