Fargate 扩大规模始终如一,但缩小规模并不始终如一

Posted

技术标签:

【中文标题】Fargate 扩大规模始终如一,但缩小规模并不始终如一【英文标题】:Fargate scaling up works consistently but scaling down is not working consistently 【发布时间】:2021-05-19 12:09:33 【问题描述】:

我们有一个针对基于 CPU 和内存的 ecs 容器化应用程序配置的目标跟踪自动缩放的简单示例。我们有 4 个由以下代码自动配置的警报(2 个 CPU - 1 个放大,1 个缩小,2 个内存,1 个放大和 1 个缩小)

我们看到,当触发自动扩展的 cloudwatch 警报时,我们的 ecs 服务任务会立即自动扩展(在 ecs 方面,有事件立即出现,将所需的计数向上设置)。 但是,当触发自动缩减的 cloudwatch 警报时,我们会观察到不同的行为:

    有时 ecs 服务任务会立即缩减(缩减警报会立即响起,并在 ecs 端立即设置所需的向下计数事件) 有时 ecs 服务任务会延迟缩减,例如7-15 分钟后,甚至几个小时后(缩小警报立即响起,但在 ecs 端设置所需的向下计数事件延迟 7-15 分钟,或几个小时后) 有时 ecs 服务任务根本没有缩减(我们在周末看到缩减警报被触发,但 ecs 服务任务从未在 48 小时内缩减并且设置所需的向下计数事件从未到达 ecs 端)

在 cloudwatch 警报方面,我们观察到警报总是在预期的放大和缩小时响起,我们认为问题存在于 ecs 方面。

自动缩放代码如下:

resource aws_appautoscaling_target this 
  max_capacity = 5
  min_capacity = 1
  resource_id = "service/dev/service1"
  scalable_dimension = "ecs:service:DesiredCount"
  service_namespace = "ecs"


resource aws_appautoscaling_policy memory 
  name               = "memory"
  policy_type        = "TargetTrackingScaling"
  resource_id        = aws_appautoscaling_target.this.resource_id
  scalable_dimension = aws_appautoscaling_target.this.scalable_dimension
  service_namespace  = aws_appautoscaling_target.this.service_namespace

  target_tracking_scaling_policy_configuration 
    predefined_metric_specification 
      predefined_metric_type = "ECSServiceAverageMemoryUtilization"
    

    scale_in_cooldown = 60
    scale_out_cooldown = 60
    target_value       = 50
  


resource aws_appautoscaling_policy cpu 
  name = "cpu"
  policy_type = "TargetTrackingScaling"
  resource_id = aws_appautoscaling_target.this.resource_id
  scalable_dimension = aws_appautoscaling_target.this.scalable_dimension
  service_namespace = aws_appautoscaling_target.this.service_namespace

  target_tracking_scaling_policy_configuration 

    predefined_metric_specification 
      predefined_metric_type = "ECSServiceAverageCPUUtilization"
    

    scale_in_cooldown = 60
    scale_out_cooldown = 60
    target_value = 60
  

有没有人看到这种行为,即 cloudwatch 中的警报正确响起,ecs 服务总是按预期扩大,但并不总是按预期缩小?我们是否在这里遗漏了一些明显的东西?,非常感谢您的帮助

【问题讨论】:

【参考方案1】:

检查您的策略配置。当您有多个扩展策略时,它们都必须准备好一起缩减。

如果您的目标是在不活动后缩减规模,您可以尝试在某些策略上禁用缩减以减少缩减变量和/或提高某些策略的目标利用率。如果存在间歇性活动,则可能是给定策略的信号,表明它不应该缩减。它需要持续的低活动才能缩小规模。

【讨论】:

以上是关于Fargate 扩大规模始终如一,但缩小规模并不始终如一的主要内容,如果未能解决你的问题,请参考以下文章

安波福将扩大自动驾驶车队规模,暂无在国内申请牌照计划

随着物业规模扩大,如何实施多项目管理

包装行业渠道商分销系统开发方案:提升协同效率,快速扩大渠道规模

云计算第一股净利降7成 优刻得紧急澄清称为扩大市场规模降价

数商云包装行业渠道商管理系统解决方案:提升协同效率,快速扩大渠道规模

亚洲形体健身学院的发展规模