【问题标题】:Running multiple ECS services in single EC2 instance using Elastic beanstalk使用 Elastic beanstalk 在单个 EC2 实例中运行多个 ECS 服务
【发布时间】:2018-04-29 02:11:39
【问题描述】:
我为 Web 服务创建了 10 个微服务 docker,并将创建的图像推送到 ECS 并使用弹性 beanstalk 部署它们。将所有 docker 放在单个任务定义中,并为应用程序级自动缩放创建了一个服务。它通过在自动缩放时复制它来创建另一个任务。
我只想为 docker 应用自动缩放,而不是为任务应用。如果一个 docker 受 CPU 或内存负载影响,自动缩放应该只创建特定 docker 的副本(而不是整个任务)。如何使用 Elastic Beanstalk 在 ECS 中实现这一点?是否可以创建 10 个服务,每个服务包含单个任务和单个 docker 容器来解决此问题?
【问题讨论】:
标签:
docker
amazon-elastic-beanstalk
microservices
amazon-ecs
【解决方案1】:
如果一个 docker 受 CPU 或内存负载影响,自动缩放应该只创建特定 docker 的副本(而不是整个任务)。如何在 ECS 中使用 Elastic Beanstalk 实现这一目标?
ECS 只能扩展整个任务定义。这是在 ECS 服务级别使用service auto scaling 定义的。不幸的是,我无法谈论 Elastic Beanstalk 是如何处理这个问题的,因为我不将它用于容器管理。
是否可以创建 10 个服务,每个服务包含单个任务和单个 docker 容器来解决此问题?
简而言之,是的,这就是您解决问题的方法。这 10 种服务仍然可以在任意数量的集群实例上共存。