- 首页›
- 亚马逊云科技文档概述›
- Amazon Batch 文档
Amazon Batch 文档
概述
使用 Amazon Batch,您可以打包批处理作业的代码,指定其依赖关系,然后使用亚马逊云科技管理控制台、CLI 或软件开发工具包提交批处理作业。Amazon Batch 允许您指定执行参数和作业依赖关系,并便于与各类批处理计算工作流引擎及语言(如 Pegasus WMS、Luigi、Nextflow、Metaflow、Apache Airflow 和 Amazon Step Functions)集成。Amazon Batch 会根据作业需求预置和扩展 Amazon EC2 实例、竞价型实例,或者利用 Fargate 与 Fargate Spot。此外,Amazon Batch 还提供默认作业队列和计算环境定义,以帮助您开始使用。
计算资源预置和扩展
将 Fargate 或 Fargate Spot 与 Batch 结合使用时,您只需在 Batch 中配置少量核心组件(CE、作业队列和作业定义),即可获得完整的队列、调度程度和计算架构,无需管理底层计算基础设施。
如果您需要使用 EC2 实例,Amazon Batch 提供托管计算环境,可根据所提交作业的数量和资源需求,自动预置并扩展计算资源。您可以为托管计算环境配置各类需求,例如 EC2 实例类型、VPC 子网配置、所有实例的最小/最大/期望虚拟 CPU(vCPU)数量,以及您愿意为竞价型实例支付的费用(按按需型实例价格的百分比计算)。
此外,如果您需要为 EC2 实例配置托管计算环境未提供的特殊参数(如更大的 EBS 卷或其他操作系统),也可以选择在 Amazon Batch 非托管计算环境中自行预置和管理计算资源。您可以预置包含 Amazon ECS 代理且运行受支持的 Linux 版本和 Docker 的 EC2 实例。然后,Amazon Batch 会在您预置的 EC2 实例上运行批处理作业。
包含 Fargate 的 Amazon Batch
包含 Fargate 资源的 Amazon Batch 可让您为批处理作业提供无服务器的架构。在 Fargate 中,每个作业都会收到其请求的确切 CPU 和内存量(在允许的 Fargate SKU 范围内),因此不会浪费资源时间,也无需等待 EC2 实例启动。
如果您目前在使用 Batch,Fargate 允许从 EC2 分离出一个额外的层。Fargate 旨在将与 Fargate 兼容的作业提交到 Batch 中时,对于在 EC2 和 Fargate 上运行的工作负载,则无需维护两种不同的服务。
亚马逊云科技提供配有托管队列的原生云计划程序,并且可以指定优先级、重试、依赖项、超时等。Batch 可帮助您管理提交至 Fargate 的文件以及作业的生命周期。
Fargate 还帮助提供了安全优势(例如,SOX、PCI 合规性),以及每个作业的计算资源之间的隔离。
支持紧密耦合的 HPC 工作负载
Amazon Batch 支持多节点并行作业,这可以帮助您跨 EC2 实例运行单个作业。此功能允许您使用 Amazon Batch 运行工作负载,例如,大规模紧密耦合的高性能计算 (HPC) 应用程序或分布式 GPU 模型训练。Amazon Batch 还支持 Elastic Fabric Adapter,这是一种网络接口,专为在亚马逊云科技上运行需要大规模节点间高速通信的应用程序而设计。
精细的作业定义与简单的作业依赖建模
Amazon Batch 允许您通过指定资源需求(如 vCPU、内存)、Amazon Identity and Access Management(IAM)角色、卷挂载点、容器属性和环境变量来定义作业的运行方式。Amazon Batch 将您的作业作为在 Amazon ECS 上运行的容器化应用程序来执行。此外,Batch 还能帮助您定义不同作业之间的依赖关系。例如,您的批处理作业可能包含多个处理阶段,且各阶段的资源需求不同。通过依赖关系,您可以创建具有不同资源需求的作业,使后续作业依赖于前序作业的完成。
基于优先级的作业安排
Amazon Batch 旨在可以设置多个具有不同优先级的队列。批处理任务会一直存储在队列中,直到计算资源可用于执行任务。Amazon Batch 计划程序会根据每个任务的资源要求评估已提交给队列的任务的执行时间、执行位置及执行方式。该计划程序会评估每个队列的优先级并按最优计算资源(如内存与优化型 CPU)的优先级执行作业,只要这些作业依赖关系确定即可。
支持 GPU 调度
通过 GPU 安排,您可以指定作业所需的加速器的数量和类型,作为 Amazon Batch 中的作业定义输入变量。Amazon Batch 将根据所需的 GPU 数量扩展适合您的作业实例,并根据每个作业的需要隔离加速器,因此只有合适的容器才能访问它们。
支持工作流引擎
Amazon Batch 可与商业和开源工作流引擎和语言(如 Pegasus WMS、Luigi、Nextflow、Metaflow、Apache Airflow 和 Amazon Step Functions)集成,帮助您使用工作流语言构建批处理计算流水线。
与 EC2 启动模板集成
Amazon Batch 目前支持 EC2 启动模板,您可借助该模板为计算资源构建自定义模板,并使 Batch 能够根据这些需求扩展实例。您可以指定 EC2 启动模板来实施添加存储卷、指定网络接口或配置权限等功能。EC2 启动模板可将所有启动参数捕捉到一个资源中,从而减少配置 Batch 环境所需的步骤。
灵活的分配策略
Amazon Batch 支持客户选择如何分配计算资源。这些策略能帮助客户在决定让 Amazon Batch 如何代表其扩展实例时兼顾吞吐量和价格。
集成的监控和日志记录
Amazon Batch 会在亚马逊云科技管理控制台中显示您的批处理作业的操作指标。您可以查看与计算容量相关的指标,以及正在运行、待处理和已完成的作业。您可以在亚马逊云科技管理控制台中查看您的作业日志(如 STDERR 和 STDOUT),也可以将其写入 Amazon CloudWatch Logs。
访问控制
Amazon Batch 使用 IAM 来控制和监控作业可以访问的亚马逊云科技资源,例如 Amazon DynamoDB 表。您可以通过 IAM 为组织中的不同用户定义策略。例如,管理员可以拥有对所有 Amazon Batch API 操作的完全访问权限,开发人员可以拥有与配置计算环境及注册作业相关的有限权限,而最终用户只能拥有提交和删除作业所需的权限。
其他信息
有关服务控制、安全特性及功能的其他信息,包括有关存储、检索、修改、限制和删除数据的信息,请参见 https://docs.amazonaws.cn/。以上链接包含的信息不构成光环新网关于亚马逊云科技(北京区域)的客户协议或西云数据关于亚马逊云科技(宁夏区域)的客户协议的“文档”的一部分,也不构成您与光环新网或西云数据之间就您使用亚马逊云科技中国区域服务达成的其他协议的任何部分。