AWS上的Docker - 弹性Beanstalk和ECS之间有什么区别?

4
我想从Heroku迁移到Amazon AWS,并希望使用Docker镜像部署我的应用程序。因此,该应用程序包括以下内容:
  • Web服务器(node.js -> docker镜像)
  • Worker(node.js -> docker镜像)
  • Postgres数据库(Amazon RDS)
  • Redis实例(Amazon ElastiCache?)
对于我的应用程序(Web+Worker):
  • 我必须能够手动或自动地扩展Web和Worker实例。
  • 使用新镜像进行零停机更新
  • 查看实时/历史指标
  • 查看实时/历史日志
在研究Amazon文档时,我发现了“弹性Beanstalk”和“Amazon EC2容器服务(ECS)”。我想知道哪个应该用于管理我的应用程序(docker镜像)?它们之间有什么区别?
1个回答

7

AWS弹性Beanstalk在其多容器Docker环境下使用Amazon EC2容器服务,而两者的区别在于相应的FAQAmazon ECS与AWS Elastic Beanstalk有何不同?中有所说明。

AWS Elastic Beanstalk保持构建块(例如EC2、RDS、Elastic Load Balancing、Auto Scaling、CloudWatch)的配置、应用程序的部署和健康监测与用户分离,以便他们只需专注于编写代码。您只需指定要部署的容器图像、CPU和内存要求、端口映射和容器链接即可。Elastic Beanstalk将处理诸如配置Amazon ECS集群、负载平衡、自动缩放、监视和在整个集群中放置容器等所有详细信息。如果您需要更精细的控制来定制应用程序架构,则可以直接使用Amazon ECS。
此外,只有 Elastic Beanstalk 支持 Heroku 的推送部署模型(请参见 EB 命令行界面deploy 命令),因此针对您的情况,我强烈建议您研究 Elastic Beanstalk 的 多容器 Docker 环境,而不是直接使用 Amazon ECS

1
如果您能列出ECS中我们无法在EB中获得的细粒度控制,那将是非常好的。 - Lakshman Diwaakar
@LakshmanDiwaakar 提到了以下内容:“配置 Amazon ECS 集群、负载均衡、自动扩展、监控以及在集群中放置容器”。 - LoMaPh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接