Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services ECS服务自动缩放和自动缩放组_Amazon Web Services_Amazon Ec2_Autoscaling_Amazon Ecs - Fatal编程技术网

Amazon web services ECS服务自动缩放和自动缩放组

Amazon web services ECS服务自动缩放和自动缩放组,amazon-web-services,amazon-ec2,autoscaling,amazon-ecs,Amazon Web Services,Amazon Ec2,Autoscaling,Amazon Ecs,我决定开始使用AWS ECS服务,并创建了集群和一个服务。我的问题是,我想将其连接到AWS自动缩放组。 我遵循了以下几点 指南是有效的,我的问题是这完全是浪费钱 指南说,当我的服务保留的CPU单元总数超过75时,我需要添加机器,但实际上我的服务总是保留100% 因为我不想浪费钱,把3个nodejs任务放在2个cpu的机器上也没用,反正也没有硬性限制 几天来,我一直在为此事绞尽脑汁,我不知道如何让他们一起正常工作 编辑: 目前情况是这样的: CPU提高到75%以上,服务扩展在同一台服务器上创建了两

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

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

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

几天来,我一直在为此事绞尽脑汁,我不知道如何让他们一起正常工作

编辑: 目前情况是这样的:

  • CPU提高到75%以上,服务扩展在同一台服务器上创建了两个新任务,这意味着现在我有一个实例和4个任务

  • 实例保留现在为100%,自动缩放组正在创建新实例

  • 创建新实例后,服务扩展将从旧实例中删除2个任务,并向新实例中添加2个新任务


  • 是我还是整个过程都是浪费时间?是真的应该这样还是(可能)我做错了什么?

    我认为你缺少一些见解

    要使ECS自动缩放正常工作,您还必须在服务器上设置缩放

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

  • ECS服务达到100%已用CPU,并有100%保留CPU
  • ECS服务通过启动额外任务来扩展,使保留的CPU总量达到200%
  • 自动缩放组发现保留容量大于可用容量,并启动一台新机器

  • 此外,您可以在一台2 CPU的机器上完美地运行多个nodejes任务。特别是在微服务环境中,这些nodejs服务可以非常小(例如128个CPU),并且在同一台主机上运行得非常好。

    最终,我想,我想要做的是不可能的。 不可能像Kubernetes那样使用ECS创建资源优化集群。 (当然,除非你用lambda写了一些魔术)


    服务自动缩放和自动缩放组不能一起工作,但是,您可以使其与fargate完美配合,但其扩展性很强,主要问题是您没有触发群集保留超过100%

    我不明白,ECS服务不能达到200%保留,您得到的错误是,您没有足够的CPU进行扩展,保留的指标保持在100%而不是200%,然后它将通过使用自动缩放组添加一个新的EC2实例。这是我不想要的,我希望能够保留集群的100%,并且我只想在需要200%的情况下创建新机器。例如:我有2台CPU机器,我启动了1个服务,其中包含2个任务的nodejs应用程序,每个任务占用1024个cpu单元,如果我现在这样做,它将毫无理由地扩大我的规模,您可以完全保留100%,并在需要200%时在EC2上扩展。这正是我在回答中所说的。您需要在ECS服务和基础EC2实例上添加扩展检查,如果有效,我将亲自到您家拥抱您