5

我想从 Heroku 迁移到 Amazon AWS,我想在 Docker 映像中部署我的应用程序。所以该应用程序包括:

  • Web 服务器(node.js -> docker 镜像)
  • 工人(node.js -> 码头工人形象)
  • Postgres 数据库 (Amazon RDS)
  • Redis 实例(Amazon ElatiCache?)

使用我的应用程序我(Web+Worker):

  • 我必须能够手动或自动扩展 web 和 worker 实例。
  • 使用零停机时间更新新图像
  • 查看实时/历史指标
  • 查看实时/历史日志

现在,在研究 Amazon 文档时,我发现了“Elastic Beanstalk”和“Amazon EC2 Container Services (ECS)”。我想知道我应该使用哪一个来管理我的应用程序(docker 图像)?它们之间有什么区别?

4

1 回答 1

7

AWS Elastic Beanstalk在其Multicontainer Docker Environments的底层使用Amazon EC2 容器服务,不同之处由相应的解决方案解决。常见问题Amazon 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 的Multicontainer Docker Environments,而不是直接使用Amazon ECS

于 2015-09-02T00:38:00.530 回答