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

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

计算环境

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

托管计算环境

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

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

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

注意

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

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

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

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

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

非托管计算环境

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

注意

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

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

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

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

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

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