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

计算环境

作业队列映射到一个或多个计算环境。计算环境包含用于运行容器化批处理作业的 Amazon ECS 容器实例。还可以将一个给定计算环境映射到一个或多个作业队列。在作业队列中,每个关联的计算环境均有一个顺序,计划程序使用此顺序来确定用于置放准备好执行的作业的位置。如果第一个计算环境具有免费的资源,则针对该计算环境中的一个容器实例计划作业。如果计算环境无法提供合适的计算资源,计划程序将尝试在下一个计算环境中运行作业。

托管计算环境

利用托管计算环境,您可以描述您的业务要求。在托管计算环境中,AWS Batch 将根据您在创建计算环境时定义的计算资源规范来管理环境中的计算资源的容量和实例类型。您可以选择在您的托管计算环境中使用 Amazon EC2 按需实例或 Spot 实例。您可以选择设置最高价,以便 Spot 实例仅在 Spot 实例价格低于按需价格的某个指定百分比时启动。

托管计算环境在您创建计算环境时指定的 VPC 和子网中启动 Amazon ECS 容器实例。Amazon ECS 容器实例需要外部网络访问以便与 Amazon ECS 服务终端节点进行通信。如果您的容器实例没有公有 IP 地址 (因为您选择的子网在默认情况下不提供该地址),则容器实例必须使用网络地址转换 (NAT) 来提供此访问。有关更多信息,请参阅 Amazon VPC 用户指南 中的 NAT 网关。要获取有关创建 VPC 的帮助,请参阅Tutorial: Creating a VPC with Public and Private Subnets for Your

默认情况下,AWS Batch 托管计算环境将最近批准的经 Amazon ECS 优化的 AMI 版本用于计算资源。但是,您可能出于各种原因需要创建自己的 AMI 以用于您的托管计算环境。有关更多信息,请参阅计算资源 AMI

注意

AWS Batch 不会升级计算环境中的已创建 AMI(例如,当较新版本的经 Amazon ECS 优化的 AMI 可用时)。您负责管理来宾操作系统(包括更新和安全补丁)以及您在计算资源上安装的任何其他应用程序软件或实用程序。要为您的 AWS Batch 作业使用新的 AMI,请执行以下操作:

  1. 使用新的 AMI 创建新计算环境。

  2. 将计算环境添加到现有作业队列。

  3. 从您的作业队列中删除旧的计算环境。

  4. 删除旧的计算环境。

非托管计算环境

在非托管计算环境中,您需要管理自己的计算资源。您必须确保用于计算资源的 AMI 符合 Amazon ECS 容器实例 AMI 规范。有关更多信息,请参阅 计算资源 AMI 规范创建计算资源 AMI

在创建非托管计算环境后,可使用 DescribeComputeEnvironments API 操作查看计算环境详细信息。找到与环境关联的 Amazon ECS 集群,然后手动在该 Amazon ECS 集群中启动您的容器实例。

以下 AWS CLI 命令还提供了 Amazon ECS 集群 ARN:

aws batch describe-compute-environments --compute-environments unmanagedCE --query computeEnvironments[].ecsClusterArn

有关更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的启动 Amazon ECS 容器实例。当您启动计算资源时,使用以下 Amazon EC2 用户数据指定资源将注册到的 Amazon ECS 集群 ARN。将 ecsClusterArn 替换为使用上一条命令获取的集群 ARN。

#!/bin/bash echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config