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

创建计算资源 AMI

您可以创建您自己的自定义计算资源 AMI 以用于托管计算环境和非托管计算环境,前提是您遵循计算资源 AMI 规范。在创建自定义 AMI 后,您可以创建一个使用该 AMI 的计算环境,将此环境与一个任务队列关联,然后开始将任务提交到该队列。

创建自定义计算资源 AMI

  1. 选择从中启动的基本 AMI。基本 AMI 必须使用 HVM 虚拟化,并且不能是 Windows 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

    经 Amazon ECS 优化的 AMI 是托管计算环境中的计算资源的默认 AMI。AWS 工程师将在 AWS Batch 上预配置和测试经 Amazon ECS 优化的 AMI。这是可供您开始操作并快速获取 AWS 上运行的计算资源的最简单 AMI。有关更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的经 Amazon ECS 优化的 AMI

    或者,您可以选择另一个 Amazon Linux 变体,并使用以下命令安装 ecs-init 程序包:

    sudo yum install -y ecs-init

    例如,如果您需要在 AWS Batch 计算资源上运行 GPU 工作负载,可以首先使用 Amazon Linux Deep Learning AMI,并对其进行配置以便能够运行AWS Batch 任务。有关更多信息,请参阅使用 GPU 工作负载 AMI

    重要

    如果您选择不支持 ecs-init 程序包的基本 AMI,则必须配置一种方式以使 Amazon ECS 代理在系统启动时启动并确保其保持运行状态。要查看使用 systemd 启动和监视 Amazon ECS 容器代理的几个示例用户数据配置脚本,请参阅 Amazon Elastic Container Service Developer Guide 中的示例容器实例用户数据配置脚本

  2. 使用适用于 AMI 的存储选项从选定的基本 AMI 启动实例。您可以配置附加的 Amazon EBS 卷或实例存储卷 (如果选定实例类型支持实例存储卷) 的大小和数量。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的启动实例Amazon EC2 实例存储

  3. 使用 SSH 连接到您的实例并执行任何必要的配置任务,例如:

    • 安装 Amazon ECS 容器代理。有关更多信息,请参阅 Amazon Elastic Container Service Developer Guide 中的安装 Amazon ECS 容器代理

    • 配置脚本以设置实例存储卷的格式。

    • 将实例存储卷或 Amazon EFS 文件系统添加到 /etc/fstab 文件,以便它们在系统启动时挂载。

    • 配置 Docker 选项 (启用调试、调整基本映像大小等)。

    • 安装程序包或复制文件。

    有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的使用 SSH 连接到您的 Linux 实例

  4. 如果您在实例上启动了 Amazon ECS 容器代理,则必须先停止它并在创建 AMI 之前删除持久数据检查点文件;否则,代理将不会在从您的 AMI 启动的实例上启动。

    1. 停止 Amazon ECS 容器代理。

      • Amazon ECS-optimized Amazon Linux 2 AMI:

        sudo systemctl stop ecs
      • Amazon ECS-optimized Amazon Linux AMI:

        sudo stop ecs
    2. 删除持久性数据检查点文件。默认情况下,此文件位于 /var/lib/ecs/data/ecs_agent_data.json 中。可使用以下命令删除此文件。

      sudo rm -rf /var/lib/ecs/data/ecs_agent_data.json
  5. 从正在运行的实例创建新的 AMI。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 指南中的创建 Amazon EBS 支持的 Linux AMI

将新 AMI 与 AWS Batch 结合使用

  1. 当 AMI 创建过程完成时,请使用新 AMI 创建计算环境 AMI(确保选择启用用户指定的 AMI ID 并在步骤 5.i 中指定自定义 AMI ID)。有关更多信息,请参阅创建计算环境

    注意

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

  2. 创建作业队列并关联新计算环境。有关更多信息,请参阅 创建作业队列

    注意

    与作业队列关联的所有计算环境必须共享相同架构。AWS Batch 不支持在单个作业队列中混用计算环境架构类型。

  3. (可选)将示例作业提交到新作业队列。有关更多信息,请参阅作业定义示例创建作业定义提交作业