AWS Fargate 上的扩展和扩展如何工作?

Posted

技术标签:

【中文标题】AWS Fargate 上的扩展和扩展如何工作?【英文标题】:How does scale in and scale out works on AWS Fargate? 【发布时间】:2019-09-06 17:22:49 【问题描述】:

我已经设置了一个由 AWS Fargate 备份的 ECS 集群。分配了最小 CPU (256) 和内存 (512) 以测试此集群的扩展和扩展。此集群根据负载成功扩展和扩展。但是,在负载达到超过 50%(即 CPU 使用率的 AutoScalingTargetValue)后大约 10 分钟会触发横向扩展操作。同样,在负载降至 15% 的 CPU 使用率后,大约需要 20 分钟才能进行缩减。

我不明白我应该如何配置 Autoscaling 组才能让策略在一分钟内响应负载的变化。

【问题讨论】:

【参考方案1】:

听起来您需要将自动缩放规则配置得更快一些。请注意,自动缩放规则由 CloudWatch 警报触发,并且仅在警报响起时才会生效。检查以确保警报没有很长的警报周期或冷却时间,因为这会导致警报等待一段时间然后再响起,或者在再次调整之前进行一段时间的冷却。

【讨论】:

感谢@nathanpeck 的宝贵意见。我确实查看了这个用于高和低触发器的 cloudwatch 指标。默认情况下,它们被配置为在 3 分钟内发生 3 个事件以进行纵向扩展,在 15 分钟内配置为 15 个事件以进行缩减。我已在 1 分钟内将其减少为 1 个事件,以进行放大和缩小。这种配置改进了时序。但是,即使负载为 0,仍然需要持续 6 分钟才能拆除每个容器。 检查负载均衡器目标组上的“取消注册延迟”设置。 (docs.aws.amazon.com/elasticloadbalancing/latest/application/…) 默认情况下,如果有任何正在进行的请求,它会等待最多 5 分钟以关闭连接。在大多数情况下,您可以将此排放阶段减少到低得多的值。我通常将其设置为仅 30 秒。这将大大加快拆解速度 谢谢@nathanpack。这对我有用。我已在 1 分钟内将 cloudwatch 警报高/低值手动更新为 1 个数据点。 CloudFormation 模板中需要什么样的配置来自动设置这些值?你想让我再提一个问题吗? 是的,这可能最好是它自己的问题 @kk。 :您是否为 CloudFormation 设置打开了另一个 SO 问题?如果是这样,你能把它链接在这里吗?我遇到了完全相同的事情:在 CF 上,当我创建自己的警报时,它们会触发,但扩展策略操作失败。

以上是关于AWS Fargate 上的扩展和扩展如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS ECS Fargate 进行水平和垂直自动扩展

AWS ECS Fargate 上的 Jenkins 工作人员:并行运行几个作业

如何加快 AWS Fargate 上的部署?

扩展 Fargate 服务任务以匹配 CloudWatch 指标

Node.js 进程在 AWS Fargate 中的行为如何?

AWS Fargate 集群无法使用 NAT 和 Internet 网关访问 Internet [关闭]