View a markdown version of this page

亚马逊 EC2 Auto Scaling 群组执行块 - Amazon 应用程序恢复控制器(ARC)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

亚马逊 EC2 Auto Scaling 群组执行块

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

配置

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

重要

在配置执行块之前,请确保计划的执行角色具有正确的 IAM 策略。有关更多信息,请参阅 EC2 Auto Scaling 执行区块示例策略。

要配置 EC2 Auto Scaling 组执行块,请输入以下值:

  1. 步骤名称:输入名称。

  2. 步骤描述(可选):输入步骤的描述。

  3. 针对区域的 EC2 Auto Scaling 组 ARN:输入您计划的每个区域中 EC2 Auto Scaling 组的 ARN。

  4. 与@@ 已激活区域容量相匹配的百分比:输入 Auto Scaling 组中正在运行的实例数量的所需百分比,以匹配已激活的区域。

  5. 容量监控方法:选择以下方法之一来监控 EC2 Auto Scaling 组的容量:

    • 24 小时内采样的最大运行容量:选择此选项可使用在 EC2 Auto Scaling 组配置中指定的所需容量值。此选项不会产生额外成本,但可能不如使用其他选项( CloudWatch 指标)那么准确。

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

      有关更多信息,请参阅 Amazon EC2 A uto Scaling 用户指南中的为 Auto Scaling 组设置扩展限制。

    • 24 小时内采样的最大运行容量 CloudWatch:选择此选项可使用亚马逊 CloudWatch 中为 EC2 Auto Scaling 指定的指标。使用该选项可能更准确,但使用 CloudWatch 指标会产生额外费用。

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

      要使用此选项,必须先为 Auto Scaling 群组启用群组指标。有关更多信息,请参阅 Amazon EC2 A uto Scaling 用户指南中的启用 Auto Scaling 组指标。

  6. 等待目标组运行状况:区域切换是否等待 Auto Scaling 组的实例在其关联的 Elastic Load Balancing 目标组中恢复正常运行后再完成该步骤。

    • 启用后,区域切换将在扩展容量后检查目标组的运行状况。在每个关联的目标组都报告所需的实例数量之前,区域切换不会继续执行下一步操作healthy。所需的数字是 Region switch 为该步骤计算的所需容量,与扩展时等待的容量相同。

    • 禁用后,只要目标 Auto Scaling 组达到所需的InService实例容量,该步骤就会完成,无需检查目标组的运行状况。

    在区域切换 API 中,此选项对应于指定waitELBTargetGroupHealthy为enabled或disabled。

  7. 超时:输入超时值。

然后,选择保存步骤。

工作原理

区块运行时,区域切换会读取源区域在过去 24 小时内的最大运行容量,该容量由您选择的容量监控方法进行衡量。它使用公式计算目标容量ceil(percentToMatch * source capacity),其中 ceil () 将任何分数结果四舍五入,并根据状态中的实例数来衡量容量。InService然后,它会向上扩展目标组以匹配此容量。仅当目标组的当前所需容量小于计算的目标时,区域切换才会向上扩展。如果当前所需的容量已经大于或等于目标容量,则区块将继续进行而不进行扩展(区域切换永远不会缩小)。此计算适用于 active/passive 和 active/active 计划。

源容量始终是其他区域的容量。在 active/active 计划中,区域切换使用另一个配置的区域作为激活和停用工作流程的来源。

区域切换会等到目标组的容量用完后再继续下一步。启用等待目标组运行状况时,区域切换将在目标组达到其所需容量后检查目标组的运行状况。它会读取附加到该组的 Elastic Load Balancing 目标组,并轮询其生命值,直到每个连接的目标组都报告所需的容量为healthy。无论是否进行了扩展,都会进行此检查,因此,即使该组已经具有所需的容量,区域切换也会在完成该步骤之前验证目标组的运行状况。对于不雅的执行,它会等待容量的最小百分比到达。healthy

只有当实例位于 Auto Scaling 组且其匹配InService的目标组条目为时,该实例才计入健康总数healthy。区域切换通过 EC2 实例 ID 识别实例,并在每次轮询中重新读取该组,因此,仍在启动、运行生命周期挂钩或保存在温池中的实例在到达InService之前不会计算在内。只有在每个连接的目标组中所有必需的实例都运行正常后,该步骤才会完成。如果该组没有关联的目标组,则区域切换会跳过检查并完成该步骤。如果所需实例在超时之前没有恢复正常,则该步骤将失败。

注意

等待目标组运行状况选项仅支持 Application Load Balancer (ALB) 和网络负载均衡器 (NLB) 目标组。它不支持 Classic Load Balancer。如果您的 Auto Scaling 组仅与 Classic Load Balancer 关联,则启用此选项无效。

该区块支持优雅和不雅的执行。对于不雅的执行,在继续切换区域之前,您需要指定目标区域中要匹配的最小计算容量百分比。您在执行块中指定的容量百分比,或者作为不正常执行的最低百分比,适用于扩展和等待目标组运行状况。

注意

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