AWS - Batch与Fargate的比较

6
我有一个Docker镜像。我想要定期创建容器并且设为作业,比如每小时一次,通过创建 "CloudWatch Rule" 来实现。
因为我们使用AWS云服务,所以我看了看 "AWS Batch" 服务。有趣的是还有一个 "ECS Scheduled task"。
这两者之间有什么区别?
注意:我有一个初始化容器-也就是说我有两个Docker容器要依次运行。使用 "ECS Scheduled Task" 看起来是可能的。但是 "Batch" 不行。
3个回答

7
其他答案都很准确。我只想补充一点,去年我们(AWS容器团队)在re:Invent举行了一场会议,涵盖了这些选项,并提供了使用其中一个选项的提示。该会议涵盖了ECS、EC2和Fargate之间的关系(经常被忽视),以及何时使用“原始”的ECS,与使用Step Functions或Batch作为批处理作业入口点相比。这里是会议链接。

4

AWS Batch 是用于批处理作业的,例如并行处理许多图像或视频(每个图像/视频一个容器)。这在研究类批处理工作负载中非常有用。

AWS Batch 基于 ECS(也支持 EC2),它允许您轻松运行容器。它没有特定的用例,更加通用。如果您没有批处理类型的项目,则 ECS 可能是更好的选择。


-1
如果你想在AWS Fargate上按顺序运行两个容器,那么你可能需要使用AWS Step Functions进行编排。Step Functions可以让你串行地调用任意任务,并且与AWS Fargate直接集成。
Amazon EventBridge Rule (hourly) ----- uses AWS IAM role to gain permission to trigger Step Functions

|
| triggers
|

AWS Step Functions ----- Uses AWS IAM role to gain permission to trigger Fargate

|
| triggers
|

AWS Fargate (Amazon ECS) Task Definition

AWS Batch旨在处理需要跨多个节点扩展的数据处理任务。如果您的用例只是按顺序启动几个容器,则AWS Batch将过于复杂。

CloudWatch事件规则

请注意,CloudWatch事件规则仍然有效,但该服务已更名为Amazon EventBridge。我建议您使用Amazon EventBridge控制台和API,而不是Amazon CloudWatch Events API。


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