一般信息

问:什么是 AWS Batch?
AWS Batch 是一系列批处理管理功能,能够让开发人员、科学家和工程师轻松高效地在 AWS 上运行成千上万个批处理计算作业。AWS Batch 可根据提交的批处理作业的卷和特定资源需求动态预置最佳的计算资源(如 CPU 或内存优化计算资源)数量和类型。借助 AWS Batch,您无需安装和管理批处理计算软件或服务器集群,从而使您能够集中精力分析结果和解决问题。AWS Batch 使用 Amazon EC2(提供 Spot 实例)以及包含 AWS Fargate 或 Fargate Spot 的 AWS 计算资源来计划、安排和执行批处理计算工作负载。

问:什么是批处理计算?
批处理计算是指在一台或多台计算机上无需人工干预而执行一系列程序(“作业”)的流程。输入参数可通过脚本、命令行参数、控制文件或作业控制语言进行预定义。给定的批处理作业可能会取决于先前作业的完成情况或特定输入的可用性,从而使多项作业的排序和排程变得至关重要,并且与交互式处理不兼容。

问:批处理计算有哪些优势?
  • 可将处理作业的时间转换到有更大或更加实惠的可用容量的时段。
  • 可避免计算资源闲置,而且无需频繁地进行人工干预和监管。
  • 可提高计算资源的使用率,从而提高效率。
  • 支持按优先级对作业排序,从而使资源分配与业务目标保持一致。
 
问:何时应在 Fargate 中运行我的作业?何时应在 EC2 中运行我的作业?
当您希望 AWS Batch 处理来自 EC2 基础设施的完全抽象化的计算预置时,应在 Fargate 上运行作业。如果您需要访问特定的实例配置(特定的处理器、GPU 或架构)或非常大的工作负载,则应在 EC2 上运行作业。
 
根据您的用例,使用 EC2 或 Fargate 可能会更快地开始作业。Fargate 作业在初始扩展工作时能够更快地开始,因为无需等待 EC2 实例启动。但是,对于较大的工作负载,EC2 实例可能更快,因为 Batch 会重用实例和容器镜像来运行后续作业。
 
问:我可以从 Fargate CE 溢出到 Fargate Spot CE 或反过来吗?
可以。您可以将 Fargate CE 设置为具有最大 vCPU,这是该 CE 中当前运行的所有作业的 vCPU 总量。当 vCPU 数量达到 CE 中的最大 vCPU 数量时,Batch 将开始在下一个 Fargate CE 上按附加到队列的顺序安排作业(如果有)。如果您想将 Fargate CE 设置为某个最低业务要求,然后在 Fargate Spot 上运行其余工作负载,则这种方法很有用。
 
如果将 Fargate Spot CE 设置为第一个,将 Fargate CE 设置为第二个,那么仅当作业使用的 vCPU 大于该 CE 的最大 vCPU 时,Batch 才会溢出到 Fargate 中。如果收回了 Fargate Spot,则将无法满足最大 vCPU,并且 Batch 将不会在后续的 CE 中请求 Fargate 资源来运行您的作业。
 
不允许将 AWS Batch 作业队列连接到 Fargate/Fargate Spot CE 和 EC2 或 Spot CE。

为什么选择 AWS Batch

问:为何我应该使用 AWS Batch?
AWS Batch 可执行作业和管理计算资源,从而让您能够集中精力开发应用程序或分析结果,而不是设置和管理基础设施。如果您正在考虑运行批处理工作负载或将其迁移到 AWS,则应该考虑使用 AWS Batch。

问:AWS Batch 针对哪些使用案例进行了优化?
AWS Batch 针对能够通过并行执行多项作业来进行扩展的批处理计算和应用程序进行了优化。深度学习、基因组学分析、金融风险模型、蒙地卡罗模拟、动画渲染、媒体转码、图像处理和工程模拟都是批处理计算应用程序的出色示例。

功能

问:AWS Batch 有哪些主要功能?
AWS Batch 可以管理计算环境和作业队列,从而使您能够使用 Amazon EC2 和 EC2 Spot 实例以及 AWS Fargate 轻松运行数千项任意规模的作业。您只需定义批处理作业并将其提交到队列中即可。在作出响应时,AWS Batch 可选择在何处运行作业,从而在需要时启动其他 AWS 容量。AWS Batch 会严密监控您的作业进度。当不再需要容量时,AWS Batch 会将其删除。借助 AWS Batch,您还可以提交属于管道或工作流程一部分的作业,从而使您能够在提交作业时说明各项作业之间存在的依赖关系。

问:AWS Batch 支持哪些类型的批处理作业?
AWS Batch 支持可作为 Docker 容器执行的任何作业。作业会指定其内存要求和 vCPU 数量。 

问:什么是计算资源?
AWS Batch 计算资源是一种 EC2 实例或 AWS Fargate 计算资源。

问:什么是计算环境?
AWS Batch 计算环境是一个计算资源集合,作业将在这些资源上执行。AWS Batch 支持两类计算环境:由 AWS 预置和管理的托管计算环境和由客户管理的非托管计算环境。非托管计算环境可提供一个便于利用专用资源(如专用主机、更大的存储配置和 Amazon EFS)的机制。

问:什么是作业定义?
作业定义描述了需要执行的作业、参数、环境变量、计算要求以及用于优化作业执行的其他信息。作业定义是在提交作业之前定义的,并且您可以与他人共享该定义。

问:什么是 Amazon ECS 代理?AWS Batch 如何使用它?
AWS Batch 使用 Amazon ECS 来执行容器化作业,因此要求您的 AWS Batch 计算环境中的计算资源上必须安装有 ECS 代理。托管计算环境中预安装了 ECS 代理。

问:AWS Batch 如何让您能够更轻松地使用 Spot 实例?
AWS Batch 计算环境由 EC2 Spot 实例组成。在创建托管计算环境时,只需指定您想使用 EC2 Spot 实例,并提供您愿意支付的按需定价百分比,AWS Batch 将负责其余工作。非托管计算环境还可以包含您启动的 Spot 实例,其中包括 EC2 Spot 队列启动的实例。

定价

问:AWS Batch 如何定价?
AWS Batch 无需额外付费。您只需为存储和运行您的批处理作业而创建的 AWS 资源(如 EC2 实例或 AWS Fargate)付费。

GPU 安排

问:我可以将加速器与 AWS Batch 配合使用吗?
是的,您可以使用 Batch 指定作业所需的加速器的数量和类型,作为作业定义输入变量,以及当前的 vCPU 和内存选项。AWS Batch 将根据所需的加速器扩展适合您的作业实例,并根据每个作业的需要隔离加速器,因此只有合适的容器才能访问它们。

问:为什么我应该将加速器与 AWS Batch 配合使用?
通过将加速器与 Batch 配合使用,您可以根据加速器需求动态安排和预置作业,Batch 将确保为您的作业保留适当数量的加速器。Batch 将在您需要时扩展您的 EC2 加速实例,并在完成后缩减它们,使您可以专注于您的应用程序。Batch 与 EC2 Spot 进行原生集成,这意味着使用加速实例时,加速作业可以节省高达 90% 的成本。

问:哪些加速器可以与 AWS Batch 配合使用?
您目前可以在 P 和 G 加速实例上使用 GPU。
 
问:如何将需要加速实例的作业提交到 Batch?
您可以在“作业定义”中指定加速器的数量和类型。您可以通过描述加速器类型(例如,GPU – 目前唯一支持的加速器)以及您的作业所需类型的数量来指定加速器。指定的加速器类型必须存在于计算环境中指定的某个实例类型上。例如,如果您的作业需要 2 个 GPU,还要确保在计算环境中指定了 P 系列实例。

来自 API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],

问:提交作业时是否可以覆盖作业定义中的加速器变量?
与 vCPU 和内存要求类似,您可以在提交作业时覆盖加速器的数量和类型。

问:加速实例可以用于不需要加速器的作业吗?
考虑今天的行为,在可能的情况下,Batch 将避免安排不需要加速实例加速的作业。这是为了避免长时间运行的作业占用加速实例而不利用加速器,从而增加成本。在极少数情况下,使用 Spot 定价并将加速实例作为允许类型时,Batch 可能会确定加速实例是运行作业的最便宜方式,无论加速器需求如何。

如果您将作业提交给仅允许 Batch 启动加速实例的 CE,则 Batch 将在这些实例上运行作业,而不管其加速器需求如何。

问:Batch 如何使用经过 ECS GPU 优化的 AMI?
从现在开始, p 类型实例将默认启动经过 ECS GPU 优化的 AMI。此 AMI 包含运行基于 GPU 的应用程序所需的库和运行时。创建 CE 时,您始终可以根据需要指向自定义 AMI。

入门

问:如何开始使用?
请遵循我们文档中的入门指南开始使用。

问:需要预置哪些内容才能开始使用?
您无需手动启动自己的计算资源即可开始使用。AWS Batch Web 控制台将指导您完成首个计算环境和作业队列的创建流程,以便您可以提交第一项作业。计算环境中的资源将在其他作业可运行时进行扩展,并随着可运行作业数量的减少而缩减。

了解有关何时应该使用 AWS Batch 的更多信息

访问使用案例页面
准备好开始构建了?
开始使用 AWS Batch
还有更多问题?
联系我们