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

创建计算环境

您需要先创建计算环境,然后才能在 AWS Batch 中运行作业。您可以创建一个托管计算环境,其中 AWS Batch 会基于您的规范管理环境中的实例;您也可以创建一个非托管计算环境,您可在该环境中处理实例配置。

创建托管计算环境

  1. https://console.amazonaws.cn/batch/ 打开 AWS Batch 控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择 Compute environmentsCreate environment

  4. 配置环境。

    1. 对于 Compute environment type,选择 Managed

    2. 对于 Compute environment name,为您的计算环境指定唯一名称。您可以使用最多 128 个字母 (大写形式和小写形式)、数字、连字符和下划线。

    3. 对于 Service role,选择创建新角色或使用现有角色。该角色允许 AWS Batch 服务代表您调用所需的 AWS API。有关更多信息,请参阅AWS Batch 服务 IAM 角色。如果您选择创建新角色,则将为您创建所需的角色 (AWSBatchServiceRole)。

    4. 对于 Instance role (实例角色),请选择创建新的实例配置文件或使用附加了所需 IAM 权限的现有实例配置文件。该实例配置文件允许为您的计算环境创建的 Amazon ECS 容器实例代表您调用所需的 AWS API。有关更多信息,请参阅 Amazon ECS 实例角色。如果您选择创建新实例配置文件,则将为您创建所需的角色 (ecsInstanceRole)。

    5. 对于 EC2 密钥对,选择在启动时与该实例关联的现有 Amazon EC2 密钥对。利用此密钥对,您可以使用 SSH 连接到实例 (确保安全组允许通过端口 22 访问)。

    6. 请务必选择启用计算环境,使计算环境能够接受来自 AWS Batch 任务计划程序的任务。

  5. 配置您的计算资源。

    1. 对于预配置模型,选择按需以启动 Amazon EC2 按需实例,或选择 Spot 以使用 Amazon EC2 Spot 实例。

    2. 在选择使用 Spot 实例的情况下:

      1. (可选) 对于最高价,选择在启动实例之前与该实例类型的按需价格进行比较时 Spot 实例价格可达到的最大百分比。例如,如果最高价为 20%,则 Spot 价格必须低于该 EC2 实例的当前按需价格的 20%。您始终支付最低 (市场) 价格,并且绝不会高于您的最大百分比。如果将此字段留空,则默认值为按需价格。

      2. 对于 Spot 队组角色,选择一个现有 Amazon EC2 Spot 队组 IAM 角色以应用于您的 Spot 计算环境。如果您没有现有的 Amazon EC2 Spot 队组 IAM 角色,则必须先创建一个。有关更多信息,请参阅Amazon EC2 Spot 队列角色

        重要

        要在创建时标记 Spot 实例(请参阅步骤 7),您的 Amazon EC2 Spot 队组 IAM 角色必须使用较新的 AmazonEC2SpotFleetTaggingRole 托管策略。AmazonEC2SpotFleetRole 托管策略不具有标记 Spot 实例所需的权限。有关更多信息,请参阅在创建时未标记的 Spot 实例

    3. 对于允许的实例类型,选择可启动的 Amazon EC2 实例类型。您可以指定实例系列以启动这些系列中的任何实例类型(例如,c5c5np3),也可以指定系列中的特定大小(例如,c5.8xlarge)。请注意,裸机实例类型不包括在实例系列中(例如,c5 不包括 c5.metal)。 您也可以选择 optimal 以(从最新的 C、M 和 R 实例系列中)动态选取符合作业队列要求的实例类型。

      注意

      在创建一个计算环境时,为该计算环境选择的实例类型必须共享同一架构。例如,您不能在同一个计算环境中混用 x86 和 ARM 实例。

      注意

      AWS Batch 将根据您的作业队列中所需的数量扩展 GPU。要使用 GPU 计划,计算环境必须包含 p2p3 系列的实例类型。

    4. (可选)对于 Launch template (启动模板),选择现有的 Amazon EC2 启动模板以配置计算资源;将自动填充默认版本的模板。有关更多信息,请参阅启动模板支持

    5. (可选)对于 Launch template version (启动模板版本),输入 $Default$Latest 或要使用的特定版本号。

    6. 对于 Minimum vCPUs,选择您的计算环境应保留的 EC2 vCPU 的最小数目,而无论作业队列需求如何。

    7. 对于 Desired vCPUs,请选择您的计算环境在启动时应使用的 EC2 vCPU 数量。当作业队列需求增大时,AWS Batch 会增加计算环境中所需的 vCPU 数量并添加 EC2 实例 (最高可达最大 vCPU 数)。当需求减少时,AWS Batch 会减少计算环境中所需的 vCPU 数量并删除实例 (减少至最小 vCPU 数)。

    8. 对于 Maximum vCPUs,选择您的计算环境可以向外扩展到的 EC2 vCPU 的最大数目,而无论作业队列需求如何。

    9. (可选)选中启用用户指定的 AMI ID 以使用您自己的自定义 AMI。默认情况下,AWS Batch 托管计算环境将最近批准的经 Amazon ECS 优化的 AMI 版本用于计算资源。您可以根据计算资源 AMI 规范,在计算环境中创建和使用您自己的 AMI。有关更多信息,请参阅计算资源 AMI

      注意

      为一个计算环境选择的 AMI 必须与要为该计算环境使用的实例类型的架构匹配。例如,如果您的计算环境使用 A1 实例类型,您选择的计算资源 AMI 必须支持 ARM 实例。Amazon ECS 同时提供经 Amazon ECS 优化的 Amazon Linux 2 AMI 的 x86 和 ARM 版本。有关更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的经 Amazon ECS 优化的 Amazon Linux 2 AMI

      1. 对于 AMI ID,粘贴您的自定义 AMI ID,然后选择验证 AMI

  6. 配置网络。

    重要

    need access to communicate with the Amazon ECS service endpoint. This can be through an interface VPC endpoint or through your having public IP addresses.

    For more information about interface VPC endpoints, see .

    If you do not have an interface VPC endpoint configured and your do not have public IP addresses, then they must use network address translation (NAT) to provide this access. For more information, see NAT Gateways in the Amazon VPC 用户指南. For more information, see Tutorial: Creating a VPC with Public and Private Subnets for Your .

    1. 对于 VPC ID,选择在其中启动实例的 VPC。

    2. 对于 Subnets,选择选定 VPC 中应托管实例的子网。默认情况下,将选择选定 VPC 中的所有子网。

    3. 对于 Security groups,选择要附加到实例的安全组。默认情况下,将选择您的 VPC 的默认安全组。

  7. (可选) 为实例添加标签。例如,您可以指定 "Name": "AWS Batch Instance - C4OnDemand" 作为标签,以便计算环境中的每个实例均具有此名称。这对于在 Amazon EC2 控制台中识别您的 AWS Batch 实例很有用。

  8. 选择 Create 以完成。

创建非托管计算环境

  1. https://console.amazonaws.cn/batch/ 打开 AWS Batch 控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择 Compute environmentsCreate environment

  4. 对于 Compute environment type,选择 Unmanaged

  5. 对于 Compute environment name,为您的计算环境指定唯一名称。您可以使用最多 128 个字母 (大写形式和小写形式)、数字、连字符和下划线。

  6. 对于服务角色,选择创建新角色或使用现有角色,后者允许 AWS Batch 服务代表您调用所需的 AWS API。有关更多信息,请参阅AWS Batch 服务 IAM 角色。如果您选择创建新角色,则将为您创建所需的角色 (AWSBatchServiceRole)。

  7. 请务必选择启用计算环境,使计算环境能够接受来自 AWS Batch 任务计划程序的任务。

  8. 选择 Create 以完成。

  9. (可选) 在 Amazon ECS 集群 ARN 中检索关联集群。以下 AWS CLI 命令提供计算环境的 Amazon ECS 集群 ARN:

    aws batch describe-compute-environments --compute-environments unmanagedCE --query computeEnvironments[].ecsClusterArn
  10. (可选) 在关联的 Amazon ECS 集群中启动容器实例。有关更多信息,请参阅 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

    注意

    您的非托管计算环境不具有任何计算资源,直到您手动启动它们。