AWS Batch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

什么是 AWS Batch?

利用 AWS Batch,您可以在 AWS 云上运行批量计算工作负载。批量计算是开发人员、科学家和工程师用来访问大量计算资源的常见方法,并且 AWS Batch 将消除配置和管理所需基础设施的千篇一律的繁重工作,与传统批量计算软件相似。此服务可以有效地预配置资源以响应提交的作业,以便消除容量限制、降低计算成本和快速交付结果。

作为一项完全托管服务,AWS Batch 可让您运行任意规模的批量计算工作负载。AWS Batch 将根据工作负载的数量和规模自动预置计算资源并优化工作负载分配。有了 AWS Batch 之后,不再需要安装或管理批量计算软件,从而使您可以将精力放在分析结果和解决问题上。

AWS Batch 组成部分

AWS Batch 是一种区域服务,可让您轻松地在一个区域内跨多个可用区运行批处理任务。您可以在新的或现有的 VPC 中创建 AWS Batch 计算环境。在计算环境就绪并与任务队列关联后,您可以定义任务定义,以指定要运行任务的 Docker 容器映像。容器映像将在容器注册表中存储和提取,可能存在于您的 AWS 基础设施的内部或外部。

工作

提交到 AWS Batch 的工作单位 (如 shell 脚本、Linux 可执行文件或 Docker 容器映像)。它具有名称,并在您的计算环境中的 Amazon EC2 实例上作为容器化应用程序运行 (使用您在任务定义中指定的参数)。任务可以按名称或按 ID 引用其他任务,并且可以依赖于其他任务的成功完成。有关更多信息,请参阅 工作

作业定义

任务定义指定任务如何运行;您可以把它看成是任务中的资源的蓝图。您可以为您的任务提供 IAM 角色,以便对其他 AWS 资源进行编程访问,还可以指定内存和 CPU 要求。任务定义还可以控制容器属性、环境变量和持久性存储的挂载点。任务定义中的许多规范可以通过在提交单个任务时指定新值来覆盖。有关更多信息,请参阅 作业定义

作业队列

当您提交 AWS Batch 任务时,会将其提交到特定的任务队列中,然后它驻留在那里直到被安排到计算环境中为止。您将一个或多个计算环境与一个任务队列相关联,并且可以为这些计算环境甚至跨任务队列本身分配优先级值。例如,您可以有一个高优先级队列用以提交时间敏感型任务,以及一个低优先级队列供可在计算资源较便宜时随时运行的任务使用。

计算环境

计算环境是一组用于运行任务的托管或非托管计算资源。托管计算环境能让您在多个详细级别指定所需的实例类型。您可以设置使用特定类型实例的计算环境,例如 c4.2xlargem4.10xlarge,或者只需指定您希望使用最新实例类型的计算环境。您还可以指定环境的最小、期望和最大 vCPU 数量,以及您愿意为 Spot 实例支付的金额占按需实例价格的百分比以及目标 VPC 子网集。AWS Batch 将根据需要有效地启动、管理和终止 EC2 实例。您还可以管理自己的计算环境。在这种情况下,您负责在 AWS Batch 为您创建的 Amazon ECS 集群中设置和扩展实例。有关更多信息,请参阅计算环境

入门

通过在 AWS Batch 控制台中创建任务定义、计算环境和任务队列来开始使用 AWS Batch。

AWS Batch 首次运行向导为您提供了创建计算环境和作业队列并提交示例 hello world 作业的选项。如果您具有要在 AWS Batch 中启动的 Docker 镜像,则可以使用此映像创建作业定义并改为将此定义提交到您的队列。有关更多信息,请参阅 AWS Batch 入门

本页内容: