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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

计算环境

作业队列映射到一个或多个计算环境。计算环境包含用于运行容器化批处理作业的 Amazon ECS 容器实例。特定计算环境也可以映射到一个或多个作业队列。在作业队列中,每个关联的计算环境都有一个顺序,计划程序使用该顺序来确定准备好运行的作业应运行在何处。如果第一个计算环境具有可用资源,则作业将安排到该计算环境中的容器实例。如果计算环境无法提供合适的计算资源,计划程序将尝试在下一个计算环境中运行作业。

托管计算环境

您可以使用托管计算环境来满足业务需求。在托管计算环境中, AWS Batch 可帮助您管理环境中计算资源的容量和实例类型。这基于您在创建计算环境时定义的计算资源规范。您可以选择使用 EC2 按需实例和 EC2 Spot 实例。或者,您也可以在托管计算环境中使用 Fargate 和 Fargate Spot 容量。您可以选择设置最高价,以便 Spot 实例仅在 Spot 实例价格低于按需价格的指定百分比时启动。

托管计算环境在您创建计算环境时指定的 VPC 和子网中启动 Amazon ECS 容器实例。Amazon ECS 容器实例需要外部网络访问以便与 Amazon ECS 服务终端节点进行通信。某些子网不提供具有公有 IP 地址的容器实例。如果您的容器实例没有公有 IP 地址,则必须使用网络地址转换 (NAT) 才能获得此访问权限。有关更多信息,请参阅 中的 NAT Amazon VPC 用户指南网关。有关如何创建 VPC 的更多信息,请参阅教程:为您的计算环境创建带有公有和私有子网的 VPC

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

注意

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

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

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

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

  4. 删除早期的计算环境。

非托管计算环境

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

注意

AWS Fargate 非托管计算环境中不支持 资源。

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

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

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

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

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