Amazon web services 云计算服务将并行运行数千个容器

Amazon web services 云计算服务将并行运行数千个容器,amazon-web-services,docker,google-cloud-platform,cluster-computing,devops,Amazon Web Services,Docker,Google Cloud Platform,Cluster Computing,Devops,有没有提供这种开箱即用选项的提供商?我需要运行至少1K个无头web浏览器(firefox)并发会话(docker容器)来进行复杂的UI测试。我有一个Docker镜像,我只想在一秒钟内部署并扩展到1000个1CPU/1GB实例,不需要花时间维护服务器集群(我需要在完成任务后将它们全部关闭),只需关注代码。到目前为止,我发现最接近的是Amazon ECS/Fargate,但它们的限制对我来说毫无意义(“在生产环境中运行容器化应用程序”->最大限制:50个任务->生产->确定)。我错过什么了吗 您可以

有没有提供这种开箱即用选项的提供商?我需要运行至少1K个无头web浏览器(firefox)并发会话(docker容器)来进行复杂的UI测试。我有一个Docker镜像,我只想在一秒钟内部署并扩展到1000个1CPU/1GB实例,不需要花时间维护服务器集群(我需要在完成任务后将它们全部关闭),只需关注代码。到目前为止,我发现最接近的是Amazon ECS/Fargate,但它们的限制对我来说毫无意义(“在生产环境中运行容器化应用程序”->最大限制:50个任务->生产->确定)。我错过什么了吗

您可以使用lambda层来运行无头浏览器(我知道在github上有几种chromium/selenium实现,但不确定firefox)

或者,您可以尝试联系AWS团队,了解Fargate上并发任务的限制可以增加多少。如您所能,50任务是一个软限制,可以提高

请注意,如果您通过Fargate启动,每秒的请求会受到一些API限制。您需要确保您或您使用了

在任何情况下,启动1000个任务都需要1000秒,这可能不是您所期望的

如果您使用ECS,这些限制是不存在的,但是在这种情况下,您需要管理集群,因此探索lambda选项可能是一个好主意。

我认为这可能是一个更好的解决方案。您定义一个“计算环境”,提供一定级别的容量,然后提交在该计算环境上运行的任务

我不认为你会发现任何东西可以在“一秒钟”内启动一个环境并部署大量任务:根据我的经验,批处理大约需要一到两分钟的启动时间,尽管一旦机器启动并运行,它们就能够快速排序作业。您还应该考虑同时运行所有1000个作业是否合理;这将取决于你想从测试中得到什么


您还需要知道任何可能被限制的位置(例如,从AWS参数存储中检索配置)。去年的纽约峰会涵盖了演讲者在部署数千个并发任务时遇到的一些问题。

亚马逊的初始限制可能会大幅提高。他们只是让你要求支持,因为他们不想向在学习系统时出错并意外启动数千台服务器的人退款2万美元。好的,谢谢你提供的信息,我还没有试着问支持就我所知,没有办法运行firefox w/lambda谢谢你的评论。我在lambda上见过Chromium,但我不记得见过Firefox,所以你可能是对的,存在某种不兼容,或者可能是需要花费一些时间来集成。我还没有详细看过。一个潜在的解决方法是探索使用Chromium而不是Firefox的可能性(如果可以接受)注意,ECS允许您通过单个RunTask API调用启动多达10个任务,因此启动这些任务不一定需要1000个RunTask API调用和1000秒。我已经检查了AWS批处理文档,但我仍然不清楚——是否有可能在那里运行firefox(在Docker容器ofc中)?你能澄清一下我可以同时在那里运行的集装箱数量的实际限制吗?这里我可以找到作业的最大队列大小,但它们将如何处理?()逐个?批处理只是一种调度Docker容器的机制。如果您已经创建了一个Docker容器来运行Firefox,那么它可以批量运行。关于容器的最大数量,这将取决于您的帐户可用的计算资源:您可以使用2048 vCPU指定一个托管环境,我希望AWS将分配任何适当的实例类型来实现这一点。但是,我不能确定,因为我只使用了更小的集群。似乎我的批处理限制将基于我的EC2限制(每个区域20个实例)