

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

# 亚马逊 EC2 Auto Scaling 组执行区块
<a name="ec2-auto-scaling-block"></a>

EC2 Auto Scaling 组执行区块允许您在多区域恢复过程中扩展 EC2 实例。您可以定义相对于您要离开的区域（来源和目的地）的容量百分比。

## 配置
<a name="ec2-auto-scaling-block-config"></a>

配置 EC2 Auto Scaling 组执行区块时，您需要输入与您的计划相关的特定区域的 EC2 自动扩展 ARN。在计划执行期间，您应该在要扩大规模的每个区域输入 EC2 Auto Scaling ARN。

**重要**  
在配置执行区块之前，请确保计划的执行角色具有正确的 IAM 策略。有关更多信息，请参阅 [EC2 Auto Scaling 执行区块示例策略](security_iam_region_switch_ec2_autoscaling.md)。

要配置 EC2 Auto Scaling 组执行区块，请输入以下值：

1. **步骤名称：**输入名称。

1. **步骤描述（可选）：**输入步骤的描述。

1. **区域的 EC2 Auto Scaling 组 ARN*：为您的计划*输入每个**区域中 EC2 Auto Scaling 组的 ARN。

1. **匹配激活区域容量的百分比：**输入 Auto Scaling 组中与激活区域相匹配的运行实例数量的所需百分比。

1. **容量监控方法：**选择以下方法之一来监控 EC2 Auto Scaling 组的容量：
   + **24 小时内采样的最大运行容量**：选择此选项可使用在 EC2 Auto Scaling 组配置中指定的**所需容量**值。此选项不会产生额外成本，但可能不如使用其他选项（ CloudWatch 指标）准确。

     在区域切换 API 中，此选项对应于指定 `sampledMaxInLast24Hours`。

     有关更多信息，请参阅 Amazon EC2 Auto Scaling 用户指南[中的为您的自动扩展组](https://docs.amazonaws.cn/autoscaling/ec2/userguide/asg-capacity-limits.html)设置扩展限制。
   + **在 24 小时内采样的最大运行容量 CloudWatch**：选择此选项可使用亚马逊 CloudWatch 在 EC2 Auto Scaling 中指定的指标。使用该选项可能更准确，但使用 CloudWatch 指标会产生额外费用。

     在区域切换 API 中，此选项对应于指定 `autoscalingMaxInLast24Hours`。

     要使用此选项，必须先为 Auto Scaling 组启用群组指标。有关更多信息，请参阅 Amazon EC2 Auto Scaling 用户指南[中的](https://docs.amazonaws.cn/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html#as-enable-group-metrics)启用自动扩展组指标。

1. **超时：**输入超时值。

然后，选择**保存步骤**。

## 工作原理
<a name="ec2-auto-scaling-block-how"></a>

配置 EC2 Auto Scaling 执行区块后，区域交换机确认只有一个源 Auto Scaling 组和一个目标 Auto Scaling 组。如果有多个 Auto Scaling 组，则执行块在计划评估期间失败。目标容量定义为状态设置为 `InService` 的实例数量。有关更多信息，请参阅 [ EC2 Auto Scaling 实例生命周期](https://docs.amazonaws.cn/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html)。

根据您为匹配百分比指定的值（在配置 Auto Scaling 执行区块时），Region Switch 计算目标 Auto Scaling 组所需的新容量。将新的所需容量与目标 Auto Scaling 组的所需容量进行比较。区域切换用来计算所需容量的公式如下：`ceil(percentToMatch * Source Auto Scaling group capacity)`，其中 ceil() 是一个将任何分数结果四舍五入的函数。如果目标 Auto Scaling 组的当前所需容量大于或等于区域交换机计算的新 Auto Scaling 组的所需容量，则执行区块将继续执行。请注意，区域切换不会缩小 Auto Scaling 组的容量。

当区域切换执行 Auto Scaling 区块时，区域切换会尝试扩大目标区域 Auto Scaling 组的容量以匹配所需的容量。然后，区域切换会等到目标区域的 Auto Scaling 组中请求的 Auto Scaling 组容量满足，然后区域切换才会进入计划的下一步。

**注意**  
执行此区块会修改 Auto Scaling 组的最小和所需容量设置，如果您通过基础设施即代码工具或其他自动化来管理这些值，则可能会导致配置偏差。确保您的配置管理流程将这些更改考虑在内，以防止意外回滚。

如果你使用一种 active/active 方法，区域切换会使用另一个配置的区域作为来源。也就是说，如果某个区域处于停用状态，则区域切换将使用另一个活跃区域作为来源来匹配要扩展的百分比。

此块支持优雅和非优雅的执行模式。在区域切换进入计划的下一步之前，您可以通过指定目标区域中要匹配的最小计算容量百分比来配置非优雅执行。