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

Amazon 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 Elastic Container Service 开发人员指南》中的自动扩展 Amazon ECS 服务

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

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

      要使用此选项,您必须先启用 Container Insights。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的设置 Container Insights

  6. 超时:输入超时值。

然后,选择保存步骤

工作方式

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

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

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

当区域切换执行 ECS 服务块时,会尝试纵向扩展目标区域 ECS 容量以匹配所需容量。然后,区域切换将等待目标区域的 ECS 服务满足 ECS 服务容量要求后,再继续执行计划的下一步。您也可以为区域切换等待容量完成的时长设置超时限制,从而将步骤完成时间配置为早于满足容量要求的完成时间。

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

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

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

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

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