创建计算资源 AMI - 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 优化Amazon Linux 2AMI的 是托管计算环境中计算资源AMI的默认值。Amazon ECS 工程师Amazon Linux 2AMI在 上预配置并测试AWS Batch了优化AWS的 。这是可供AMI您开始操作并AWS快速获取 上运行的计算资源的最简单 。有关更多信息,请参阅 Amazon ECS AMI 中的Amazon Elastic Container Service Developer Guide优化。

    或者,您也可以选择另一个Amazon Linux 2变体并使用以下命令安装 ecs-init 程序包。有关更多信息,请参阅 中的Amazon ECS在 Amazon Linux 2 EC2 实例上安装 容器代理Amazon Elastic Container Service Developer Guide

    $ sudo amazon-linux-extras disable docker $ sudo amazon-linux-extras install ecs-init

    例如,如果您需要在AWS Batch计算资源上运行 GPU 工作负载,则可以从 Amazon Linux 深度学习 AMI 开始,并将其配置为能够运行AWS Batch作业。有关更多信息,请参阅使用 GPU 工作负载 AMI

    重要

    如果您选择了AMI不支持 ecs-init 程序包的基本 ,则必须配置在启动时启动Amazon ECS代理并使它保持运行的方式。要查看使用 systemd 启动和监控 Amazon ECS 容器代理的几个示例用户数据配置脚本,请参阅 中https://docs.amazonaws.cn/AmazonECS/latest/developerguide/example_user_data_scripts.html的示例容器实例用户数据配置脚本Amazon Elastic Container Service Developer Guide

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

  3. 使用 SSH 连接到您的实例并执行任何必要的配置任务。这可能包括以下任意或所有步骤:

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

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

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

    • 配置 Docker 选项,例如启用调试或调整基本映像大小。

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

    有关更多信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html 中的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/ 目录中。使用以下命令删除任何此类文件。

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

将新 AMI 与 AWS Batch 结合使用

  1. 创建 AMI 后,使用新 AMI 创建计算环境。确保选择 Enable user-specified AMI ID (启用用户指定的 ID) 并在 中指定自定义 AMI 步骤 3ID。有关更多信息,请参阅创建计算环境

    注意

    为一个计算环境选择的 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. (可选)将示例作业提交到新作业队列。有关更多信息,请参阅示例作业定义创建作业定义提交作业