Amazon ECS 服务扩展执行块
作为多区域恢复过程的一部分,ECS 服务扩展执行块允许您在目标区域扩展 ECS 服务。您可以定义相对于区域切换失效转移或停用所属区域的容量百分比。
配置
要配置 ECS 服务扩展执行块,输入以下值。
重要
在配置执行块之前,请确保您具有正确的 IAM 策略。有关更多信息,请参阅 Amazon ECS 服务扩展执行块示例策略。
步骤名称:输入名称。
步骤描述(可选):输入步骤的描述。
区域资源:对于每个区域,输入 ECS 集群 ARN 和 ECS 服务 ARN。
与来源区域任务量相匹配的百分比:输入来源区域中所需的运行任务数量百分比,以匹配激活区域。
容量监控方法:选择以下方法之一来监控 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。
超时:输入超时值。
然后,选择保存步骤。
工作方式
在计划中配置执行块后,区域切换回确认只有一个来源 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 操作来接收验证警告。