

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

# 为自动扩缩组设置实例维护策略
<a name="set-instance-maintenance-policy-on-group"></a>

您可以在创建自动扩缩组时创建实例维护策略。也可以为现有的组创建此功能。

通过为自动扩缩组设置实例维护策略，您不必再为实例刷新功能指定最低和最高运行正常百分比，除非您想覆盖实例维护策略。

在控制台中，Amazon EC2 Auto Scaling 提供了可帮助您入门的选项。

**Topics**
+ [设置实例维护政策](set-instance-maintenance-policy.md)
+ [删除实例维护策略](remove-instance-maintenance-policy.md)

# 设置实例维护政策
<a name="set-instance-maintenance-policy"></a>

要在自动扩缩组上设置实例维护策略，请使用以下方法之一：

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

**为新的组设置实例维护策略（控制台）**

1. 按照 [使用启动模板创建 Auto Scaling 组](create-asg-launch-template.md) 中的说明完成过程中的每个步骤，直到步骤 11。

1. 在**配置组大小和扩展策略**中，对于**所需容量**，输入要启动的初始实例数。

1. 在**扩展**部分的**扩展限制**下，如果**所需容量**的新值大于**所需的最小容量**和**最大所需容量**，则**所需的最大容量**将自动增加到新的所需容量值。您可以按需更改这些限制。

1. 对于**自动扩缩**，请选择是否要创建目标跟踪扩展策略。您也可以在创建自动扩缩组后再创建此策略。

   如果您选择**目标跟踪扩展策略**，请按照 [创建目标跟踪扩缩策略](policy_creating.md) 中的说明创建策略。

1. 在**实例维护策略**部分，选择下列可用选项之一：
   + **终止前启动**：必须先配置新实例，然后才能终止现有实例。对于偏向于可用性而不是成本节约的应用程序来说，这是一个不错的选择。
   + **终止并启动**：在终止现有实例的同时配置新实例。对于偏向于节省成本而不是可用性的应用程序来说，这是一个不错的选择。对于启动容量不应超过当前可用容量的应用程序来说，它也是一个不错的选择。
   + **自定义策略**：此选项允许您在替换实例时使用自定义的最小和最大容量范围来设置策略。这可以帮助您在成本和可用性之间取得适当的平衡。

1. 对于**设置运行正常百分比**，为以下一个或两个字段输入值。根据您在上一步中选择的选项，启用的字段会有所不同。
   + **最小**：设置继续替换实例所需的最低运行正常百分比。
   + **最大**：设置替换实例时可能的最高运行正常百分比。

1. 展开**根据所需容量在更换期间查看容量**部分，以确认**最小值**和**最大值**的值如何适用于您的组。使用的确切值取决于所需的容量值，如果组发生扩缩，该值将发生变化。

1. 继续完成[使用启动模板创建 Auto Scaling 组](create-asg-launch-template.md)中的步骤。

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

**为新组设置实例维护策略 (AWS CLI)**  
将该`--instance-maintenance-policy`选项添加到[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)命令中。以下示例对名为的新自动扩缩组设置实例维护策略`my-asg`。

```
aws autoscaling create-auto-scaling-group \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --auto-scaling-group-name my-asg \
  --min-size 1 \
  --max-size 10 \
  --desired-capacity 5 \
  --default-instance-warmup 20 \
  --instance-maintenance-policy '{
      "MinHealthyPercentage": 90,
      "MaxHealthyPercentage": 120       
    }' \
  --vpc-zone-identifier "subnet-5e6example,subnet-613example,subnet-c93example"
```

------

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

**为现有的组设置实例维护策略（控制台）**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 在屏幕顶部的导航栏中，选择您在其中创建了自动扩缩组的 AWS 区域 。

1. 选中 Auto Scaling 组旁边的复选框。

   这时将在页面底部打开一个拆分窗格。

1. 在**详细信息**选项卡上，选择**实例维护策略**，**编辑**。

1. 要为组设置实例维护策略，请选择下列可用选项之一：
   + **终止前启动**：必须先配置新实例，然后才能终止现有实例。对于偏向于可用性而不是成本节约的应用程序来说，这是一个不错的选择。
   + **终止并启动**：在终止现有实例的同时配置新实例。对于偏向于节省成本而不是可用性的应用程序来说，这是一个不错的选择。对于启动容量不应超过当前可用容量的应用程序来说，它也是一个不错的选择。
   + **自定义策略**：此选项允许您在替换实例时使用自定义的最小和最大容量范围来设置策略。这可以帮助您在成本和可用性之间取得适当的平衡。

1. 对于**设置运行正常百分比**，为以下一个或两个字段输入值。根据您在上一步中选择的选项，启用的字段会有所不同。
   + **最小**：设置继续替换实例所需的最低运行正常百分比。
   + **最大**：设置替换实例时可能的最高运行正常百分比。

1. 展开**根据所需容量在更换期间查看容量**部分，以确认**最小值**和**最大值**的值如何适用于您的组。使用的确切值取决于所需的容量值，如果组发生扩缩，该值将发生变化。

1. 选择**更新**。

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

**为现有组设置实例维护策略 (AWS CLI)**  
将该`--instance-maintenance-policy`选项添加到[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)命令中。以下示例为指定的自动扩缩组设置实例维护策略。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --instance-maintenance-policy '{
      "MinHealthyPercentage": 90,
      "MaxHealthyPercentage": 120       
    }'
```

------

# 删除实例维护策略
<a name="remove-instance-maintenance-policy"></a>

如果您想停止在自动扩缩组使用实例维护策略，则可以将其删除。

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

**删除实例维护策略（控制台）**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 在屏幕顶部的导航栏中，选择您在其中创建了自动扩缩组的 AWS 区域 。

1. 选中 Auto Scaling 组旁边的复选框。

   这时将在页面底部打开一个拆分窗格。

1. 在**详细信息**选项卡上，选择**实例维护策略**，**编辑**。

1. 选择**无实例维护策略**。

1. 选择**更新**。

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

**删除实例维护策略 (AWS CLI)**  
将该`--instance-maintenance-policy`选项添加到[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)命令中。以下示例从指定的自动扩缩组删除实例维护策略。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --instance-maintenance-policy '{
      "MinHealthyPercentage": -1,
      "MaxHealthyPercentage": -1       
    }'
```

------