首页 > 解决方案 > 如果我可以使用 EC2 自动扩展组部署多服务 docker 容器,为什么还要使用 AWS ECS?

问题描述

我在 docker-compose 文件中使用了三个服务:Django API、Celery 和 Redis。我可以使用 AWS ECS 运行它,我必须为此创建 3 个服务(每个服务一个),并且为每个创建的服务至少创建三个任务,与我可以通过运行 docker 部署 3 个服务的 AWS EC2 实例相比,这似乎很昂贵-compose 命令,我还可以通过创建我的实例的图像并将负载均衡器附加到它来附加自动缩放组以进行水平缩放。

我不明白为什么要使用 ECS,它主要用于自动扩展多服务 dockerized 应用程序,而我可以使用简单的 EC2 自动扩展组来做同样的事情。我错过了什么吗?

标签: amazon-ec2docker-composeamazon-ecsaws-application-load-balanceraws-auto-scaling

解决方案


“为什么要使用ECS”本质上是一个“为什么要使用抽象”的问题。为了回答这个问题,ECS 将自己称为“完全托管的容器编排服务”,并在 EC2 实例集群之上提供抽象(由您或 AWS 运行和管理,具体取决于您做出的选择)。这将归结为您在选择使用(或不选择)ECS 之前要考虑的这些选择:

  1. 您想自己将容器映射到 EC2 实例,还是希望您的容器编排引擎为您处理它?

  2. 您是否想了解底层 EC2 实例并因此负责运行和修补它们,或者您是否希望您的容器编排引擎为您处理它?

  3. 您想自己负责在所有 EC2 实例上单独重新部署新建和测试的容器,还是希望您的容器编排引擎和相关的计算平台(例如 Fargate)为您处理它?


推荐阅读