

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

# Amazon EC2 Auto Scaling 组
<a name="arc-zonal-shift.resource-types.ec2-auto-scaling-groups"></a>

Amazon EC2 Auto Scaling 组包含一组亚马逊 EC2 实例，出于自动扩展和管理的目的，这些实例被视为逻辑分组。另外，自动扩缩组让您能够使用 Amazon EC2 Auto Scaling 功能，如运行状况检查替换和扩展策略。保持 Auto Scaling 组中的实例数量和自动扩展都是 Amazon EC2 Auto Scaling 服务的核心功能。

## 为 Auto Scaling 组使用区域移动
<a name="using-asg-zs"></a>

可使用以下方法之一启动可用区转移。

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

**对新组启用可用区转移（控制台）**

1. 按照使用启动模板[https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)创建 Auto Scaling 组中的说明完成过程中的每个步骤，直到步骤 10。

1. 在**与其他服务集成**页面上，对于 **ARC 可用区转移**，请选中复选框以启用可用区转移。

1. 对于**运行状况检查行为**，请选择“忽略运行状况不佳”或“替换运行状况不佳”。如果设置为 `replace-unhealthy`，处于活跃可用区转移状态的可用区中运行状况不佳的实例将会被替换。如果设置为 `ignore-unhealthy`，处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。

1. 继续使用启动模板[创建 Auto Scaling 组中的步骤](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)。

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

**要在新群组上启用分区移动 (AWS CLI)**  
将 `--availability-zone-impairment-policy` 参数添加到 [create-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/create-auto-scaling-group.html) 命令。

`--availability-zone-impairment-policy` 参数有两个选项：
+ **ZonalShiftEnabled**— 如果设置为`true`，Auto Scaling 使用 ARC 区域偏移注册 Auto Scaling 组，您可以在 ARC 控制台[上](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)启动、更新或取消区域偏移。如果设置为 `false`，Auto Scaling 会从 ARC 可用区转移中取消注册自动扩缩组。必须启用了可用区转移才能将设置为 `false`。
+ **ImpairedZoneHealthCheckBehavior**— 如果设置为`replace-unhealthy`，则可用区中运行状况不佳的实例将替换为活跃的分区移动。如果设置为 `ignore-unhealthy`，处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。

以下示例对名为 `{{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}} \
  --availability-zones {{us-east-1a}} {{us-east-1b}} {{us-east-1c}} \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": {{true}},
      "ImpairedZoneHealthCheckBehavior": {{IgnoreUnhealthy}}       
    }'
```

------

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

**对现有组启用可用区转移（控制台）**

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

1. 在屏幕顶部的导航栏上，选择您在其中创建 Auto Scaling 组的。 AWS 区域 

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

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

1. 在**集成**选项卡上的 **ARC 可用区转移**下，选择**编辑**。

1. 选中复选框以启用可用区转移。

1. 对于**运行状况检查行为**，请选择**忽略运行状况不佳**或**替换运行状况不佳**。
   + 如果运行状况检查设置为“忽略运行状况不佳”，处于活跃可用区转移状态的可用区中运行状况不佳的实例*不*会被替换。
   + 如果运行状况检查行为设置为“替换运行状况不佳”，处于活跃可用区转移状态的可用区中运行状况不佳的实例会被替换。

1. 选择**更新**。

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

**在现有群组上启用分区移动 (AWS CLI)**  
将 `--availability-zone-impairment-policy` 参数添加到 [update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。

`--availability-zone-impairment-policy` 参数有两个选项：
+ **ZonalShiftEnabled**— 如果设置为`TRUE`，Auto Scaling 使用 ARC 区域偏移注册 Auto Scaling 组，您可以在 ARC 控制台[上](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)启动、更新或取消区域偏移。如果设置为 `FALSE`，Auto Scaling 会从 ARC 可用区转移中取消注册自动扩缩组。必须先启用可用区转移，才能将其设置为 `FALSE`。
+ **ImpairedZoneHealthCheckBehavior**— 如果设置为`replace-unhealthy`，则可用区中运行状况不佳的实例将替换为活跃的分区移动。如果设置为 `ignore-unhealthy`，处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。

以下示例对指定自动扩缩组启用了可用区转移。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": {{true}},
      "ImpairedZoneHealthCheckBehavior": {{IgnoreUnhealthy}}       
    }'
```

------

要启动可用区转移，请参阅[启动、更新或取消可用区转移](arc-zonal-shift.start-cancel.md)。

## 自动扩缩组可用区转移的工作原理
<a name="how-it-works-asg-zs"></a>

假设有一个包含以下可用区的自动扩缩组：
+ `us-east-1a`
+ `us-east-1b`
+ `us-east-1c`

您注意到 `us-east-1a` 中出现故障并启动可用区转移。在 `us-east-1a` 中启动可用区转移时，会出现以下行为。
+ **横向扩展 ** — Auto Scaling 会在运行状况良好的可用区（`us-east-1b`和`us-east-1c`）中启动所有新的容量请求。
+ **动态扩展 ** — Auto Scaling 可阻止扩展策略减少所需的容量。Auto Scaling 不会阻止扩展策略增加所需容量。
+ **实例刷新 ** — Auto Scaling 会延长在活动分区转移期间延迟的任何实例刷新过程的超时时间。


<table>
<tbody>
</tbody>
</table>


## 使用可用区转移的最佳实践
<a name="best-practices-asg-zs"></a>

要在使用可用区转移时保持应用程序的高可用性，建议遵循以下最佳实践。
+ 监控 EventBridge 通知以确定何时出现持续的可用区受损事件。有关更多信息，请参阅使用[ EventBridge](https://docs.aws.amazon.com/autoscaling/ec2/userguide/automating-ec2-auto-scaling-with-eventbridge.html)自动扩展 Amazon EC2 自动扩展。
+ 使用具有适当阈值的扩缩策略，确保容量足以应对丢失一个可用区这一情况。
+ 设置运行状况良好的百分比至少为 100% 的实例维护策略。进行这种设置之后，Auto Scaling 会等待新实例准备就绪，然后终止运行状况不佳的实例。

对于预缩放客户，我们还建议采取以下措施：
+ 选择**忽略运行状况不佳**作为受影响可用区的运行状况检查行为，因为在发生问题事件期间无需更换运行状况不佳的实例。
+ 在 ARC 中为自动扩缩组使用可用区转移。中的分区自动转移功能 Amazon 应用程序恢复控制器 (ARC) 允许在 AWS 检测 AWS 到可用区损坏时将资源的流量转移出可用区。有关更多信息，请参阅 [ARC 中的可用区自动转移](arc-zonal-autoshift.md)。

对于使用已禁用跨区域功能的负载均衡器的客户，我们还建议采取以下措施：
+ 在可用区分配中使用**仅均衡**。
+ 如果您在 Auto Scaling 组和负载均衡器上都使用分区移动，请务必先取消您的 Auto Scaling 组的分区移动。然后，等待所有可用区的容量实现均衡，再取消对负载均衡器的可用区转移。
+ 由于当您启用分区转移并使用跨区域禁用的负载均衡器时，可能会出现容量不均衡，因此 Auto Scaling 具有额外的验证。如果您遵循最佳实践，则可以通过选中 AWS 管理控制台 或中的复选框来确认这种可能性`AttachTrafficSources`。`skip-zonal-shift-validation` `CreateAutoScalingGroup` `UpdateAutoScalingGroup`