了解从哪里开始在 AWS 上进行批处理

Understanding where to begin with batch processing on AWS

我有一组计算需要 运行 批处理,并且工作负载很容易跨机器并行化。要完成的工作已经在 Docker 容器中完成。我正在尝试了解在 AWS 上以高度并行的方式 运行 此工作负载的最简单方法。然而,在试图弄清楚从哪里开始时,我很难找到正确的入口点。我阅读了有关 AWS Batch 和 AWS Fargate 的信息,但每次我尝试沿着其中一条路径走下去以更详细地了解它们时,每篇文章都会出现​​更多 AWS 服务(Lamdas、Step Functions、ECS、AutoScaling 组)有不同的组合。此外,我开始将问题视为 Batch vs Fargate 问题,然后我找到另一篇关于 Batch + Fargate 或 X + ECS + ....

的文章

我找不到合适的选择介绍,所以我可以开始设置一些东西并获得一些经验。有没有关于我可能去哪个方向的指示或一些可供我查看的资源?

这里是 AWS 容器服务团队成员。你的问题触发了我所有的按钮,因为我一直在努力解决一些困惑(“我从哪里开始 xyz?”)。我可以尝试在这里简要回答你的问题,但如果你想阅读更多内容(可能比你需要的更多,请随时离线联系我(mreferre at amazon dot com 会起作用)。

首先,它不是 V,而是 AND。想一想您提到的所有这些产品分布在堆栈的不同层(这是可交付成果中的视觉草稿):

Fargate 代表容量(您的容器是 运行),ECS 代表核心容器编排器,Batch 是容器编排器之上的配置器之一。 Lambda 是独立的东西,独立存在。您的特定用例的选项似乎是:

  • 拉姆达
  • ECS/Fargate
  • 批量/ECS/Fargate
  • Step Functions/ECS/Fargate(这个不在分析范围内,你在我的视觉中看不到它 - 想知道我是否应该添加它)。

正如其他人所暗示的,如果您的模型是事件驱动的(例如,如果您想为每个事件启动专用函数,例如上传到 S3 的新文件),您可能希望使用 Lambda。

您可能不想使用裸露的 ECS/Fargate 解决方案,因为它需要更多的工作来处理批处理作业的触发和调度。

您可能想使用 Batch 或 Step Functions 在 ECS/Fargate 上安排作业。如果您有需要处理的基本工作流程,我认为 SF 很好;如果您需要大规模管理复杂的作业,则我认为 SF 很好。也许 this 35 mins presentation 我去年做的可以提供更多关于这些批次与 SF 差异的背景。

如果您有任何其他问题,请告诉我,因为此讨论对我试图建立的定位非常有用。