AWS Batch

公瑞
2023-12-01

什么是 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.2xlarge 或 m4.10xlarge,或者只需指定您希望使用最新实例类型的计算环境。您还可以指定环境的最小、所需和最大 vCPU 数,以及 Spot 市场上的出价百分比值和 VPC 子网的目标集。AWS Batch 将根据需要高效地启动、管理和终止 EC2 实例。您还可以管理自己的计算环境。在这种情况下,您负责在 AWS Batch 为您创建的 Amazon ECS 集群中设置和扩展实例。有关更多信息,请参阅计算环境

入门

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

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

 

作业在 RUNNABLE 状态卡住

如果您的计算环境包含计算资源,但您的作业在 RUNNABLE 状态停止,无法继续,则表明出现问题,导致作业无法被实际放置在计算资源上。以下是此问题的一些常见原因:

您的计算资源上未配置 awslogs 日志驱动程序

AWS Batch 任务将它们的日志信息发送到 CloudWatch Logs。为了做到这一点,您必须将您的计算资源配置为使用 awslogs 日志驱动程序。如果您的计算资源 AMI 基于经 Amazon ECS 优化的 AMI(或 Amazon Linux),则该驱动程序默认向 ecs-init 程序包注册。如果使用不同的基础 AMI,则必须确保在启动 Amazon ECS 容器代理时,使用 ECS_AVAILABLE_LOGGING_DRIVERS 环境变量将 awslogs 日志驱动程序指定为可用的日志驱动程序。有关更多信息,请参阅 计算资源 AMI 规范 和 创建计算资源 AMI

资源不足

如果您的作业定义指定的 CPU 或内存资源超出可分配的计算资源量,那么您的作业将永远不会被放置。例如,如果您的作业指定了 4 GiB 的内存,而您的可用计算资源少于此数量,则无法将作业放置在这些计算资源上。在这种情况下,您必须减少作业定义中指定的内存,或者向您的环境中添加更大的计算资源。为 Amazon ECS 容器代理和其他关键系统进程保留了i一些内存。有关更多信息,请参阅 内存管理

没有 Internet 访问权限,无法获得计算资源

需要访问权限以便与 Amazon ECS 服务终端节点通信。这可以通过接口 VPC 终端节点或通过具有公有 IP 地址的完成。

有关接口 VPC 终端节点的更多信息,请参阅。

如果您没有配置接口 VPC 终端节点并且您的没有公有 IP 地址,则它们必须使用网络地址转换 (NAT) 来提供此访问。有关更多信息,请参阅 Amazon VPC 用户指南 中的 NAT 网关。有关更多信息,请参阅教程:为您的创建带有公有和私有子网的 VPC

已达到 Amazon EC2 实例限制

您的账户可在 AWS 区域中启动的 Amazon EC2 实例的数量由您的 EC2 实例限制决定。某些实例类型也有基于实例类型的限制。有关您的账户的 Amazon EC2 实例限制的更多信息(包括如何请求限制提升),请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 服务限制

 

转载于:https://www.cnblogs.com/cloudrivers/p/11237586.html

 类似资料:

相关阅读

相关文章

相关问答