AWS 应用程序扩展 - 分步扩展策略

Posted

技术标签:

【中文标题】AWS 应用程序扩展 - 分步扩展策略【英文标题】:AWS Application Scaling - Step Scaling policies 【发布时间】:2021-08-07 06:36:30 【问题描述】:

我正在阅读此 AWS DOC https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html 周围的 Application Auto Scaling Step 策略,因为目标 Auto Scaling 策略不适用于我的用例。

我不清楚的一点是,如果我定义一个 Step 来增加 1 个容量,例如 ECS 服务的任务数,它会跟踪警报阈值 X(以百分比衡量),甚至在扩展之后行动 X 百分比保持相对静止,如果这将继续增加任务数量(在冷却期之后)。

例如:

T0

任务数 = 10 指标 X = 60% 具有在 X >= 70% 时横向扩展的步进扩展策略

T1

指标 X 上升到 80% 已触发横向扩展操作

T2

任务数现在是 11 新任务减轻负担,指标 X 降低到 75%

那么问题来了;该逐步扩展策略是否会触发另一个扩展(假设指标 X 仍然 > 70%)?

【问题讨论】:

【参考方案1】:

是的,cloudwatch 警报处于警报状态的每一分钟都会触发 AutoScaling 操作。因此,只要警报在冷却结束后触发策略,它就会再次扩展(请记住,冷却直到第一个扩展操作 /finishes/ 才开始)。

您还可以定义多个步骤,如果在第一个步骤仍在进行时触发了更大的步骤,则差异将发生允许另一个横向扩展。例如:

T0 步骤策略触发 +1

T1(在 +1 进行时 1 分钟后):在 +3 步时触发步数策略。现在将添加另外 2 个任务。

附带说明一下,为什么目标跟踪对您不起作用,您使用的是什么指标?如果在 CLI 之外创建策略以使用非预定义指标,您可以定义自定义指标规范

【讨论】:

以上是关于AWS 应用程序扩展 - 分步扩展策略的主要内容,如果未能解决你的问题,请参考以下文章

使用 boto3 在 aws 中其 CPU 扩展策略低于特定阈值的所有自动扩展组的列表

AWS 中的 Kubernetes 自动缩放

AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限

DynamoDB 使用 Cloudformation 自动扩展

为啥 AWS Auto Scaling 在扩展期间会启动多个实例?

AWS 实例调度程序和自动扩展组