亚马逊 ECS 服务扩展执行块 - Amazon 应用程序恢复控制器(ARC)

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

亚马逊 ECS 服务扩展执行块

作为多区域恢复过程的一部分,ECS 服务扩展执行块允许您在目标区域扩展 ECS 服务。您可以定义相对于区域切换故障转移或停用的区域的容量百分比。

配置

要配置 ECS 服务扩展执行块,请输入以下值。

重要

在配置执行块之前,请确保您有正确的 IAM 策略。有关更多信息,请参阅 Amazon ECS 服务扩展执行区块策略示例

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

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

  3. 区域资源:对于每个区域,输入 ECS 集群 ARN 和 ECS 服务 ARN。

  4. 与来源区域任务数相匹配的百分比:输入源区域中正在运行的任务的所需百分比,以便在激活的区域中与之匹配。

  5. 容量监控方法:选择以下方法之一来监控 Amazon ECS 的容量:

    • 24 小时内采样的最大运行容量:选择此选项可在您的 Amazon ECS 服务中使用正在运行的任务计数值。此选项不会产生额外成本,但可能不如使用其他选项( CloudWatch 指标)那么准确。

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

      有关更多信息,请参阅《亚马逊弹性容器服务开发人员指南》中的自动扩展您的 Amazon ECS 服务。

    • 通过容器见解在 24 小时内采样的最大运行容量:选择此选项可使用 Amazon ECS 容器洞察指标。使用该选项可能更准确,但使用容器见解会产生额外费用。

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

      要使用此选项,必须先启用 “容器见解”。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的设置容器见解

  6. 超时:输入超时值。

然后,选择保存步骤。

工作原理

在计划中配置执行块后,区域交换机确认只有一个源 ECS 服务和一个目标服务。如果有多个服务,则区域切换会返回执行区块的警告。区域切换将这些数据存储在您为其配置计划的所有区域中。目标容量定义为在 ECS 服务上设置的所需容量。

对于一种 active/passive 方法,区域切换计算目标(激活)区域中 ECS 服务的新所需容量。将新的所需容量与目标 ECS 服务的所需容量进行比较。Region switch 用来计算所需容量的公式如下:ceil(percentToMatch * Source Auto Scaling group capacity),其中 ceil () 是一个将任何分数结果四舍五入的函数。如果目标 ECS 服务的当前所需数量高于计算出的 ECS 服务新的所需容量,则计划将继续执行。请注意,区域切换不会缩小 ECS 的服务容量。

如果 ECS 服务启用了应用程序自动缩放,则区域切换会更新应用程序自动缩放中的最低容量,还会更新 ECS 服务中的所需数量。

当区域切换执行 ECS 服务块时,区域切换会尝试扩展目标区域 ECS 容量以匹配所需容量。然后,区域切换将等待,直到目标区域的 ECS 服务满足了请求的 ECS 服务容量,然后区域切换才会继续执行计划的下一步。如果你愿意,你可以将步骤配置为在完成配送之前完成,方法是为区域切换等待容量完成的时间设置超时限制。

如果您使用的是一种 active/active 方法,则区域切换将使用其他已配置的区域作为来源。也就是说,如果某个区域处于停用状态,则区域切换将使用另一个活动区域作为来源来匹配要缩放的百分比。

作为计划评估一部分的评估内容

当区域切换评估您的计划时,区域切换会对您的 ECS 服务执行块配置和权限执行多项检查。区域切换会验证 ECS 服务是否同时存在于源区域和目标区域,并进行检查以确保为目标区域的 ECS 服务设置的最大容量足以处理目标区域容量的指定百分比匹配。区域切换还可以验证计划的 IAM 角色是否具有 ECS 服务的正确权限。有关区域切换执行块所需权限的更多信息,请参阅ARC 中区域切换的基于身份的策略示例

此外,Region switch 会检查是否ResourceMonitor已成功收集和存储了 ECS 服务的必要监控数据,并捕获正在运行的任务数量的计数。

如果任何检查失败,区域切换将返回警告消息,您可以在控制台中查看这些消息。或者,您可以通过 EventBridge 或使用 API 操作来接收验证警告。