教程:创建计算资源 AMI - AWS Batch

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

教程:创建计算资源 AMI

您可以创建您自己的自定义计算资源 AMI 以用于托管计算环境和非托管计算环境。有关说明,请参阅 计算资源 &AMI; 规范。在创建自定义 AMI 后,您可以创建一个使用该 AMI 的计算环境,将此环境与一个任务队列关联,然后开始将任务提交到该队列。最后,开始向该队列提交作业。

创建自定义计算资源 &AMI;
  1. 选择从中启动的基本 &AMI;。AMI 必须使用 HVM 虚拟化。基础 AMI 不能是 Windows AMI。

    注意

    您为计算环境选择的 AMI 必须与您希望用于该计算环境的实例类型的架构匹配。例如,如果您的计算环境使用 A1 实例类型,您选择的计算资源 AMI 必须支持 Arm 实例。Amazon ECS 两者兼而有之 x86 以及 Arm 亚马逊 ECS 的版本优化了亚马逊 Linux 2 AMI。有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的经过 Amazon ECS 优化的 Amazon Linux 2 AMI

    经 Amazon ECS 优化的 Amazon Linux 2 AMI 是托管计算环境中的计算资源的默认 AMI。优化的亚马逊 ECS Amazon Linux 2 AMI 已 AWS Batch 由 AWS 工程师进行预配置和测试。这是一款最低限度的 AMI,您可以开始使用它并让您的计算资源 AWS 快速运行。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 经Amazon ECS 优化的 AMI

    或者,您可以选择另一个 Amazon Linux 2 变体,并使用以下命令安装 ecs-init 程序包:有关更多信息,请参阅亚马逊弹性容器服务开发人员指南中的在 Amazon Linux 2 EC2 实例上安装 Amazon ECS 容器代理

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

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

    重要

    您可以选择不支持 ecs-init 软件包的基础 AMI。但是,如果这样做,则必须配置一种在启动时启动 Amazon ECS 代理并使其保持运行的方法。您还可以查看几个使用 systemd 启动和监控 Amazon ECS 容器代理的用户数据配置脚本示例。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的示例容器实例用户数据配置脚本

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

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

    • 安装 Amazon ECS 容器代理 有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的安装 Amazon ECS 容器代理

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

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

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

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

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

  4. 如果您在实例上启动了 Amazon ECS 容器代理,则在创建 AMI 之前,必须将其停止并移除所有永久性数据检查点文件。否则,如果您不这样做,代理不会在从您的 AMI 启动的实例上启动。

    1. 停止 Amazon ECS 容器代理。

      • 经 Amazon ECS 优化的 Amazon ECS Amazon Linux 2 AMI:

        sudo systemctl stop ecs
      • 经 Amazon ECS 优化的 Amazon ECS Amazon Linux AMI:

        sudo stop ecs
    2. 删除持久性数据检查点文件。默认情况下,该文件位于以下 /var/lib/ecs/data/ 目录中。使用以下命令删除这些文件(如果有)。

      sudo rm -rf /var/lib/ecs/data/*
  5. 从正在运行的实例创建新的 &AMI;。有关更多信息,请参阅亚马逊 EC2 用户指南指南中的创建由亚马逊 EBS 支持的 Linux AMI

要将您的新 AMI 与 AWS Batch
  1. 使用新的 AMI 创建新计算环境。为此,请在创建 AWS Batch 计算环境时选择映像类型并在映像 ID 覆盖框中输入自定义 AMI ID。有关更多信息,请参阅 教程:使用 Amazon EC2 资源创建托管计算环境

    注意

    您为计算环境选择的 AMI 必须与您希望用于该计算环境的实例类型的架构匹配。例如,如果您的计算环境使用 A1 实例类型,您选择的计算资源 AMI 必须支持 Arm 实例。Amazon ECS 两者兼而有之 x86 以及 Arm 亚马逊 ECS 的版本优化了亚马逊 Linux 2 AMI。有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的经过 Amazon ECS 优化的 Amazon Linux 2 AMI

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

    注意

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

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