创建计算环境 - 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 计划,计算环境必须包含 p2p3g3g3sg4 系列的实例类型。

    4. 对于分配策略,选择在从允许的实例类型列表中选择实例类型时要使用的分配策略。有关更多信息,请参阅分配策略

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

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

      重要

      创建计算环境后,即使更新启动模板的 $Default$Latest 版本,也不会更改使用的启动模板版本。要使用新的启动模板版本,请创建新的计算环境,将新的计算环境添加到现有作业队列,从作业队列中移除旧的计算环境,然后删除旧的计算环境。

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

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

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

    10. (可选)选中启用用户指定的 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. 配置网络。

    重要

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

    有关接口 VPC 终端节点的更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的 Amazon ECS 接口 VPC 终端节点 (AWS PrivateLink)

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

    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
    注意

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