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

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

创建计算环境

您需要先创建计算环境,然后才能在 AWS Batch 中运行作业。您可以创建托管计算环境,其中 根据您的规范AWS Batch管理环境中Amazon EC2的实例或AWS Fargate资源。或者,您也可以创建一个非托管计算环境,在其中处理环境中Amazon EC2的实例配置。

使用 AWS Fargate 资源创建托管计算环境

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

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

  3. 在导航窗格中,依次选择 Compute environments (计算环境) 和 Create (创建)。

  4. 配置环境。

    1. 对于 Compute environment type,选择 Managed

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

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

    4. 对于 Additional settings (其他设置):服务角色、实例角色EC2 密钥对

      1. 对于 Service role (服务角色),选择 Batch service-linked role (批处理服务相关角色)。该角色允许 AWS Batch 服务代表您调用所需的 AWS API 操作。有关更多信息,请参阅 的服务相关角色权限AWS Batch

  5. 配置您的实例配置。

    1. 对于 Provisioning model (预置模型),选择 Fargate 以启动Fargate按需资源,或选择 Fargate Spot 以使用 Fargate Spot 资源。

    2. 对于 Maximum vCPUs (最大 vCPU),选择您的计算环境可以扩展到的最大 vCPUs数,而不考虑作业队列需求。

  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. (可选)展开 Additional settings: Security groups, EC2 tags。

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

  7. (可选)在 Tags (标签) 部分中,您可以指定要与计算环境关联的每个标签的键和值。有关更多信息,请参阅标记 AWS Batch 资源

  8. 选择 Create compute environment (创建计算环境) 以完成。

使用 EC2 资源创建托管计算环境

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

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

  3. 在导航窗格中,依次选择 Compute environments (计算环境) 和 Create (创建)。

  4. 配置环境。

    1. 对于 Compute environment type,选择 Managed

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

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

    4. (可选)展开 Additional settings: service role、instance EC2 key pair。

      1. 对于 Service role (服务角色),选择 Batch service-linked role (批处理服务相关角色)。该角色允许 AWS Batch 服务代表您调用所需的 AWS API 操作。有关更多信息,请参阅 的服务相关角色权限AWS Batch

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

      3. 对于 EC2 密钥对,选择在启动时与该实例关联的现有 Amazon EC2 密钥对。您可以使用此密钥对通过 SSH 连接到您的实例。确保验证您的安全组是否允许端口 22 上的传入流量。

  5. 配置您的实例配置。

    1. 对于 Provisioning model (预置模型),选择 On-Demand (按需) 以启动Amazon EC2按需实例,或选择 Spot 以使用 Amazon EC2 Spot 实例。

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

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

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

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

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

    6. 对于 Allowed instance types (允许的实例类型),选择可以启动Amazon EC2的实例类型。您可以指定实例系列以启动这些系列中的任何实例类型(例如,c5c5np3),也可以指定系列中的特定大小(例如,c5.8xlarge)。请注意,金属实例类型不在实例系列中。例如, c5 不包含 c5.metal。您还可以选择optimal根据需要选择实例类型(从 C4、M4 和 R4 实例系列),以满足作业队列的需求。

      注意

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

      注意

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

      注意

      目前,optimal 使用 C4、M4 和 R4 实例系列中的实例类型。在没有来自这些实例系列的实例类型的区域中,使用 C5、M5 和 R5 实例系列的实例类型。

    7. 对于分配策略,选择在从允许的实例类型列表中选择实例类型时要使用的分配策略。BEST_FIT_PROGRESSIVE 通常是 EC2 按需计算环境以及 EC2 Spot 计算环境的 SPOT_CAPACITY_OPTIMIZED 的最佳选择。有关更多信息,请参阅分配策略

    8. (可选)展开 Additional settings: launch template, user specified AMI。

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

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

        重要

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

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

        注意

        为一个计算环境选择的 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

      4. (可选)对于 EC2 配置,选择 Image type (映像类型) 和 Image ID override values (映像 ID 覆盖值AWS Batch),以便 为计算环境中的实例选择 Amazon 系统映像 (AMIs) 的信息。如果没有为每个映像类型指定映像 ID 覆盖, 会AWS Batch选择最近Amazon ECS优化的 AMI。如果未指定映像类型,则默认值为非 GPU、非 Graviton 实例的 AmazonAWS Linux。以后,对于所有非 GPU 实例,此默认值将更改为 Amazon Linux 2。

        Amazon Linux 2

        所有基于 AWS Graviton 的实例系列(例如C6g,、M6g、 和 R6g)的默认值T4g,可用于所有非 GPU 实例类型。

        Amazon Linux 2 (GPU)

        所有 GPU 实例系列(例如 P4G4)的默认值,可用于所有非基于 AWS Graviton 的实例类型。

        Amazon Linux

        所有非 GPU、非 AWS Graviton 实例系列的默认值。Amazon Linux 即将到达标准支持的生命周期结束。有关更多信息,请参阅 Amazon Linux 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. (可选)展开 Additional settings: Security groups, EC2 tags。

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

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

        注意

        使用 或 Fargate Spot 预置模型时EC2 标签Fargate不可用。

  7. (可选)在 Tags (标签) 部分中,您可以指定要与计算环境关联的每个标签的键和值。有关更多信息,请参阅标记 AWS Batch 资源

  8. 选择 Create compute environment (创建计算环境) 以完成。

使用 EC2 资源创建非托管计算环境

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

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

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

  4. 对于 Compute environment type,选择 Unmanaged

  5. 对于 Compute environment name,为您的计算环境指定唯一名称。名称的长度最多为 128 个字符。它可以包含大小写字母、数字、连字符 (-) 和下划线 (_)。

  6. 对于 Service role (服务角色),选择 Batch service-linked role (批处理服务相关角色)。该角色允许 AWS Batch 服务代表您调用所需的 AWS API 操作。有关更多信息,请参阅 的服务相关角色权限AWS Batch

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

    在手动启动非托管计算环境之前,该环境没有任何计算资源。