当前位置: 首页 > 知识库问答 >
问题:

我应该使用AWS弹性Beanstalk还是Amazon EC2容器服务(ECS)来扩展Docker容器?

黄扬
2023-03-14

我不知道缩放机制是如何工作的。例如:我的弹性豆茎环境中有5个docker容器。现在只有第五个docker容器负载很重,因为它有巨量的SQS消息要处理,其他四个几乎是空闲的,因为它们不需要多少CPU,或者可能没有很多SQS消息。让我们假设第5个容器运行一个JBoss应用服务器。据我所知,即使有足够的CPU/内存可用,服务器也只能消耗有限数量的并行请求。

如果JBoss Docker容器无法处理大量的请求,但有足够的CPU/内存可用,我当然希望在同一实例上自动启动第二个Docker/JBoss容器。但是,如果我没有足够的CPU/内存,会发生什么呢?当然,我想在第二个实例上旋转,它可以通过EB中的自动缩放组进行配置。现在第二个实例旋转起来,但是除了第5个容器之外,每个容器几乎都是空闲的,当然,我不希望它们在第二个实例中也产生不必要的4个容器,这将是资源的浪费。只有第5个应该生成,其他的应该根据可配置的参数(例如:CPU/Memory/SQS),像第5个规模一样进行规模扩展。

我不知道Amazon ECS是否正在这样做,或者是否有可能,但我在internet上找不到任何关于这个主题的来源,通常说,基于实例/容器的缩放。

共有1个答案

狄旭
2023-03-14

EB vs ECS真的是要靠控制。你是想控制你的缩放和容量,还是想让它更抽象,而不是把主要精力放在你的应用程序上。ECS将给予您控制权,因为您必须指定集群中节点的大小和数量,以及是否应该使用自动缩放。使用EB,您只需提供一个Dockerfile,而EB负责调整节点的数量和大小,您基本上可以忘记使用EB路由的基础结构。

下面是关于Docker的EB文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.html

使用ECS,在开始部署Dockerfile之前,您必须首先构建基础设施,因此这实际上取决于1)您对基础设施的熟悉程度和2)您希望在基础设施和应用程序上花费的精力水平。

 类似资料:
  • 我正在使用AWS的云形成,我最近花了相当多的时间试图弄清楚为什么我创建并附加策略的角色没有使我的ECS任务能够将消息发送到简单队列服务(SQS)队列。 我意识到我将SQS权限策略错误地附加到执行角色,而我本应将该策略附加到任务角色。我找不到好的文档来解释这两个角色之间的差异。其中两个的CloudFormation文档位于此处:ExecutionRole和TaskRole

  • 我有一个包含4种类型容器的多容器Elastic Beanstek应用程序。其中一个容器是,它的设计方式是您可以设置容器应该关闭的最大内存限制,然后想法是您使用策略再次启动它来运行它。 从Dockerrun中我可以看到。aws。json语法没有什么比正常的docker compose重启策略更需要定义的了。根据我在其他资源上的发现,推荐的方法是创建一个ECS服务,在任务失败时重新启动任务。 但是--

  • 我正在尝试使用AWS ECS在docker容器中运行boto3 python脚本。我的脚本需要访问SQS(获取 为了让docker容器在我的本地机器上运行,我能够使用以下docker run命令将我的aws凭据传递到docker容器中。 <代码>docker run-v ~/。aws:/root/。aws 最近ECS宣布: 亚马逊ECS现在支持任务的IAM角色。为任务指定IAM角色时,其容器可以使

  • 我使用docker-composing创建了一个Docker容器。在我的本地环境中,我能够毫无问题地启动我的应用程序。 现在,我想将所有docker容器部署到AWS EC2(ECS)。在阅读了ECS文档后,我发现我们可以使用相同的docker compose在ECS中使用ECS-CLI进行部署。但ECS-CLI目前不适用于windows实例。因此,现在我不知道如何使用docker compose使

  • 问题内容: 我正在重构几个node.js服务。所有这些以前都是在虚拟服务器上开始的,如果进程崩溃,它们只会重新启动。 现在,转向容器化和无状态的应用程序结构,我认为该过程应该退出,并且应该在发生故障时重新启动容器。 那是对的吗?有好处还是不利? 问题答案: 我的想法是不要使用容器内进程管理器(永远是pm2),而是通过(或该选项的其他一种方式)使用docker restart策略。这与整个docke

  • 我想使用docker容器,而不必使用弹性beanstek或ec2容器服务。我想上传一个描述容器的文件(就像您对弹性beanstek所做的那样),并让一个通用的ec2实例使用docker运行它。 当查看运行docker容器的beanstalk创建的ec2实例的用户数据部分时,我看到一个cloud init脚本,它下载一个完成所有设置的大型shell脚本(示例)。我假设elastic beanstal