ECS服务自动缩放和自动缩放组

时间:2018-05-29 11:33:27

标签: amazon-web-services amazon-ec2 autoscaling amazon-ecs

我决定开始使用AWS ECS服务,并创建群集和一项服务我的问题是我想将其连接到AWS自动缩放组。 我遵循了以下guide

指南有效,我的问题是它完全浪费钱。

指南说当我的服务预留的CPU单位总量超过75时,我需要添加机器,但实际上我的服务总是保留100% 因为我不想浪费钱,在3台cpu机器上放3个nodejs任务也没什么用,反正没有硬限制。

我现在突破了几天,我不知道如何让它们一起工作正确

修改 目前正是如此:

  1. CPU达到75%以上,服务扩展在同一台服务器上创建2个新任务,这意味着现在我有1个实例,包含4个任务

  2. 实例预留现在是100%,Auto Scaling Group正在创建新实例

  3. 创建新实例后,Service Scaling将从旧实例中删除2个任务,并向新实例添加2个新任务

  4. 它只是我或整个过程看起来像浪费时间?这是真的应该如何或(可能)我做错了什么?

2 个答案:

答案 0 :(得分:1)

我认为你错过了一些见解。

要使ECS自动缩放正常工作,您还必须在ECS Service level上设置缩放。

然后,缩放流程将如下所示:

  1. ECS服务已达到100%使用的CPU且具有100%预留CPU
  2. ECS服务通过启动其他任务进行扩展,使预留的CPU总计为200%
  3. 自动扩展组看到预留容量超过可用容量并启动新计算机。
  4. 此外,您可以在2 CPU机器上完美地运行多个nodejes任务。特别是在微服务环境中,这些nodejs服务可以非常小(例如128个CPU),并且在同一台主机上仍可以完美地运行。

答案 1 :(得分:1)

最终我想,我想做的事是不可能的。 像kubernetes一样,无法使用ECS创建资源优化的集群。 (当然,除非您用lambda编写一些魔术)

服务自动缩放和自动缩放组不能同时使用,但是您可以使其与Fargate完美配合,但它的扩展性很强,主要问题是您没有触发集群预订超过100%