【问题标题】:Does AWS ECS support per container dynamic scalability?AWS ECS 是否支持每个容器的动态可扩展性?
【发布时间】:2015-06-26 12:54:41
【问题描述】:

Amazon 的EC2 Container Service 允许您运行任意数量的容器,它会选择一个 EC2 实例来自动运行容器。这是很棒的功能。但是,我们真的很关心自动可扩展性

场景:

  1. 我通过 AWS ECS 控制台启动了一个容器。
  2. HTTP 请求开始出现。
  3. HTTP 负载随时间显着增加。
  4. 容器的 CPU(或 RAM)使用率接近 100%。

问题 1:ECS 会自动再运行一个容器吗?

问题 2:当 CPU(或 RAM)负载变低时,ECS 会自动关闭其中一个容器吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 docker


    【解决方案1】:

    不,您无法通过基本 ECS 实现全自动扩展。您可以做的是在负载变高时创建警报,并让警报触发更新以增加集群大小。

    2017 年 11 月 29 日更新

    AWS Fargate 是一种适用于 Amazon ECS 和 EKS* 的技术,可让您 无需管理服务器或集群即可运行容器。使用 AWS Fargate,您不再需要预置、配置和扩展 运行容器的虚拟机集群。

    这允许扩展容器,而无需担心底层基础架构与 ECS 服务级别扩展配置一起使用。

    【讨论】:

    • 谢谢伙计。我希望 ELB+ECS 集成在每个容器的基础上工作。说 ELB+ECS 集成在使用率高的时候不知道要启动哪个 TaskDefifitions 是否正确?
    【解决方案2】:

    截至 2017 年 12 月,亚马逊宣布了名为 Fargate 的新服务。引用链接:

    AWS Fargate 可让您轻松扩展应用程序。您不再需要担心为容器应用程序配置足够的计算资源。在您定义应用程序要求(例如 CPU、内存等)后,AWS Fargate 会管理以高可用性方式运行容器所需的所有扩展和基础设施。您不再需要决定何时扩展集群或打包集群以获得最佳利用率

    我假设粗体文本意味着 Fargate 将为我向上和向下扩展资源。虽然不是 100% 确定。

    【讨论】:

      【解决方案3】:

      理想情况下,您应该在 ec2 和 ecscontainer 级别进行缩放。

      如果您使用 ASG,可以在 ASG 上配置基于 cloudwatch 警报的 ec2 扩展。

      对于容器扩展,您必须编写一个 lambda 函数或具有某种可以在 cloudwatch 警报上触发的应用程序才能进行扩展。


      2016 年 5 月 18 日,ECS 发布了自动伸缩功能。您不需要 Lambda 来构建服务级别的扩展能力。

      请参阅下面的版本和功能文档

      https://aws.amazon.com/about-aws/whats-new/2016/05/amazon-ec2-container-service-supports-automatic-service-scaling/

      http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html

      【讨论】:

        【解决方案4】:

        所以它并没有这么明确地说,Nathaniel 肯定是正确的,但 this blog from April 9th 今年似乎暗示至少你可以做你所要求的

        长时间运行的应用程序 以前,Amazon ECS 包括两种方法 在集群上调度 Docker 容器。您可以运行一次任务 执行工作然后停止的批处理作业等进程。你 还可以调用 Amazon ECS API 来检索状态 有关集群的信息,然后用它来为第三方供电 或自定义编写的调度程序。

        随着今天的发布,您还可以使用新的 Amazon ECS 服务 调度程序来管理长时间运行的应用程序和服务。这 服务调度程序帮助您维护应用程序的可用性和 允许您向上或向下扩展容器以满足您的需求 应用程序的容量要求。以下是它为您做的事情:

        负载平衡 – 服务调度程序允许您分发 使用 Elastic Load Balancing 跨容器的流量。亚马逊 ECS 将自动注册和注销您的容器 关联的负载均衡器。健康管理——服务 调度程序还将自动恢复成为 不健康(ELB 健康检查失败)或停止运行以确保 您有所需数量的可运行的健康容器 你的申请。扩大规模和缩小规模——您可以扩大规模 通过更改您想要的容器数量来上下应用程序 要运行的服务。更新管理 - 您可以更新您的 通过更改其定义或使用新图像来应用程序。这 调度程序将使用新的自动启动新容器 定义和停止运行先前版本的容器。它会 如果使用 ELB,则等待 ELB 连接耗尽。你也可以使用 这些新设施实现了基本的服务发现模型。你 可以列出集群中运行的服务,然后使用 ELB 作为服务端点。

        【讨论】:

        • 它说的是负载平衡,但没有提到自动缩放。手动缩放不是我们想要的。
        猜你喜欢
        • 2020-05-21
        • 2014-02-06
        • 2020-08-13
        • 2021-09-17
        • 2018-01-21
        • 2019-02-03
        • 1970-01-01
        • 2019-12-01
        • 1970-01-01
        相关资源
        最近更新 更多