Amazon EC2 入门 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon EC2 入门

Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services 云中提供可扩展的计算容量。使用 Amazon EC2 可避免前期的硬件投入,因此您能够快速开发和部署应用程序。

您可以使用 Amazon EC2 启动所需数量的虚拟服务器,配置安全性和联网以及管理存储。Amazon EC2 可让您扩展或缩减以处理需求变化或使用高峰,从而减少预测流量的需求。

创建计算环境

要为 Amazon EC2 编排创建计算环境,请执行以下操作:

  1. 打开 Amazon Batch 控制台首次运行向导

  2. 对于选择编排类型,选择 Amazon Elastic Compute Cloud (Amazon EC2)

  3. 选择下一步

  4. 名称计算环境配置部分,为您的计算环境指定唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

  5. 对于 实例角色,请选择使用附加了所需 IAM 权限的现有实例配置文件。此实例配置文件允许您的计算环境中的 Amazon ECS 容器实例调用所需的 Amazon API 操作。有关更多信息,请参阅 Amazon ECS 实例角色

  6. (可选)标签是为资源分配的标记。要添加标签或 Amazon EC2 标签,请展开标签,然后选择添加标签。输入一个键值对,然后再次选择添加标签

    重要

    如果选择添加标签,则必须输入键值对,然后再次选择添加标签或选择移除标签

  7. (可选)在使用 Amazon EC2 竞价型实例实例配置部分,开启使用竞价型实例启用

  8. (仅限 Spot)对于按需价格的最大百分比,请输入您要为竞价资源支付的最大按需定价百分比。

  9. (可选)(仅限 Spot)对于竞价型实例集角色,选择一个现有的 Amazon EC2 竞价型实例集 IAM 角色以应用于您的 Spot 计算环境。如果您没有现有的 Amazon EC2 竞价型实例集 IAM 角色,则必须先创建一个。有关更多信息,请参阅 Amazon EC2 竞价型实例集角色

    重要

    要在创建时标记您的竞价型实例,您的 Amazon EC2 竞价型队列 IAM 角色必须使用更新的 A mazonEC2 SpotFleetTaggingRole 托管策略。A mazonEC2 SpotFleetRole 托管策略没有标记竞价型实例所需的权限。有关更多信息,请参阅 创建时未标记的竞价型实例对资源加标签

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

  11. 对于 Desired vCPUs,请选择您的计算环境在启动时应使用的 EC2 vCPU 数量。随着作业队列需求的增加, Amazon Batch 所需的 vCPU 数量增加并添加 EC2 实例。vCPU 的数量可以增加到 vCPU 的最大数量。随着需求的 Amazon Batch 减少,减少所需的 vCPU 数量并移除实例。一直减少到 vCPU 的最小数量。

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

  13. 对于允许的实例类型,选择可启动的 Amazon EC2 实例类型。您可以指定实例系列以在这些系列中启动任何实例类型(例如,c5c5np3),或者,您可以指定系列中的特定大小(例如 c5.8xlarge)。Metal 实例类型不在实例系列中。例如,c5 不包括 c5.metal。还可以通过选择 optimal 来选择符合作业队列需求的实例类型(从 C4、M4 和 R4 实例系列中)。

    注意

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

    注意

    Amazon Batch 根据任务队列中所需的数量扩展 GPU。要使用 GPU 计划,计算环境必须包含 p2, p3, p4, p5, g3, g3s, g4g5 系列的实例类型。

    注意

    目前,optimal 使用 C4、M4 和 R4 实例系列中的实例类型。如果没有 Amazon Web Services 区域 这些实例系列的实例类型,则使用C5M5、和R5实例系列中的实例类型。

  14. 展开其他配置

  15. (可选)对于置放群组,输入置放群组名称以对计算环境中的资源进行分组。

  16. (可选)对于 EC2 密钥对,请在连接到实例时选择公钥和私有密钥对作为安全凭证。有关 Amazon EC2 密钥对的更多信息,请参阅 Amazon EC2 密钥对和 Linux 实例

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

  18. (可选)对于 EC2 配置,请选择添加 EC2 配置。选择图像类型映像 ID 覆盖值以提供信息, Amazon Batch 以便为计算环境中的实例选择 Amazon 系统映像 (AMI)。如果未为每种图像类型指定镜像 ID 覆盖,则 Amazon Batch 选择最近经过亚马逊ECS优化的 AMI。如果未指定图像类型,则对于非 GPU、非 G Amazon raviton 实例,默认为 Amazon Linux 2

    重要

    要使用自定义 AMI,请选择映像类型,然后在映像 ID 覆盖框中输入自定义 AMI ID。

    Amazon Linux 2

    所有 Amazon 基于 Graviton 的实例系列(例如、C6gM6g、和T4g)均为默认值R6g,并且可用于所有非 GPU 实例类型。

    Amazon Linux 2(GPU)

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

    Amazon Linux

    可用于非 GPU、非 G Amazon raviton 实例系列。对 Amazon Linux AMI 的标准支持已结束。有关更多信息,请参阅 Amazon Linux AMI

    注意

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

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

    注意

    在启动模板中,您可以指定自己创建的自定义 AMI。

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

    重要

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

  21. 网络配置部分:

    1. 对于虚拟私有云(VPC)ID,选择一个 Amazon VPC。

    2. 对于子网,将列出您的 Amazon Web Services 账户 子网。如果要创建一组自定义子网,请选择清除子网,然后选择所需的子网。

      重要

      计算资源必须通过 VPC 端点或多个公有 IP 地址与 Amazon ECS VPC 端点通信。有关更多信息,请参阅 Amazon ECS 接口 VPC 端点 (Amazon PrivateLink)。如果您的实例未配置VPC 端点或公有 IP 地址,则可以使用网络地址转换(NATI)。有关 NAT 的更多信息,请参阅 NAT 网关以及 创建虚拟私有云

    3. 对于安全组,选择要与实例关联的 Amazon EC2 安全组。如果要创建一组自定义的安全组,请选择清除安全组。然后,选择您想要的安全组。

  22. 选择下一步

创建作业队列

任务队列会存储您提交的作业,直到 Amazon Batch 调度器在您的计算环境中的资源上运行该作业。有关更多信息,请参阅 作业队列

要为 Amazon EC2 编排创建作业队列,请执行以下操作:

  1. 作业队列配置部分的名称中,为您的计算环境指定一个唯一的名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

  2. 优先级中,为作业队列输入 0 到 100 之间的整数。

    重要

    Amazon Batch 调度器会为较大的整数值分配更高的优先级。

  3. 选择下一步

创建任务定义

Amazon Batch 作业定义指定作业的运行方式。虽然每个作业必须引用作业定义,但可在运行时覆盖作业定义中指定的许多参数。

创建作业定义:

  1. 常规配置部分:

    1. 名称常规配置部分,为您的计算环境指定一个唯一的名称。名称长度不超过 128 个字符。名称可以包含大小写字母、数字、连字符(-)和下划线(_)。

    2. (可选)在执行超时中,输入终止未完成作业后的持续时间(以秒为单位)。

      重要

      最小超时值为 60 秒。

    3. (可选)标签是为资源分配的标记。要添加标签,请展开标签,然后选择添加标签。输入一个键值对,然后再次选择添加标签

      重要

      如果选择添加标签,则必须输入键值对,然后再次选择添加标签或选择移除标签

    4. (可选)开启传播标签以将标签传播到 Amazon Elastic Container Service 任务。

  2. 容器配置部分:

    1. 映像中,输入用于启动容器的映像的名称。默认情况下,Docker Hub 注册表中的所有映像均可用。您也可以使用 repository-url/image:tag 格式指定其他存储库。该参数最长可包含 255 个字符。该参数可以包含大小写字母、数字、连字符(-)、下划线(_)、冒号(:)、句点(.)、正斜杠(/)和数字符号(#)。此参数可映射到 Docker Remote API创建容器部分中的 Imagedocker runIMAGE 参数。

      注意

      Docker 映像架构必须与为它们安排的计算资源的处理器架构相匹配。例如,基于 Arm 的 Docker 映像只能在基于Arm的计算资源上运行。

      • Amazon ECR 公有存储库中的映像使用完整的registry/repository[:tag]registry/repository[@digest]命名惯例(例如,public.ecr.aws/registry_alias/my-web-app:latest)。

      • Amazon ECR 存储库中的映像使用完整的registry/repository:tag命名惯例(例如,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest)。

      • Docker Hub 上的官方存储库中的映像使用一个名称 (例如,ubuntumongo)。

      • Docker Hub 上其他存储库中的映像通过组织名称 (例如,amazon/amazon-ecs-agent) 进行限定。

      • 其他在线存储库中的映像由域名 (例如,quay.io/assemblyline/ubuntu) 进行进一步限定。

    2. 对于 Command,指定要传递到容器的命令。此参数映射到 Docker Remote API 创建容器部分中的Cmd,以及docker runCOMMAND参数。有关 Docker CMD参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

      注意

      您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅 参数

    3. (可选)对于执行角色,指定一个 IAM 角色,该角色授予 Amazon ECS 容器代理代表您进行 Amazon API 调用的权限。此功能使用 Amazon ECS IAM 角色执行任务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 任务执行 IAM 角色

    4. (可选)要配置 Job 角色,请选择有权访问 Amazon API 的 IAM 角色。此功能使用 Amazon ECS IAM 角色执行任务。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务的 IAM 角色

      注意

      此处仅显示具有 Amazon Elastic Container Service Task Role 信任关系的角色。有关为您的 Amazon Batch 任务创建 IAM 角色的更多信息,请参阅 A mazon Elastic Container 服务开发者指南中的为任务创建 IAM 角色和策略

    5. (可选)您可以将参数作为键值映射添加到作业定义中,以覆盖作业定义的默认值。若要添加参数:

      1. 对于参数,选择添加参数。输入键值对,然后再次选择添加参数

        重要

        如果选择添加参数,则必须至少配置一个参数或选择移除参数

    6. vCPU环境配置部分中,指定要为容器预留的 vCPU 数量。此参数将映射到 Docker Remote API创建容器部分中的CpuShares以及docker run--cpu-shares选项。每个 vCPU 相当于 1024 个 CPU 份额。

    7. 对于内存,指定要提供给作业容器的内存硬限制 (以 MiB 为单位)。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数将映射到 Docker Remote API创建容器部分中的Memory以及docker run--memory选项。

    8. GPU 数量中,选择要为容器预留的 GPU 数量。

    9. (可选)对于环境变量配置,请选择添加环境变量以添加要传递到容器的环境变量。此参数将映射到 Docker Remote API创建容器部分中的Env以及docker run--env选项。

    10. (可选)对于密钥,选择添加密钥,将密钥添加为名称-值对。这些密钥暴露在容器中。有关更多信息,请参阅 的 Job 定义参数 ContainerProperties 中的 secretOptions

    11. (可选)在 Linux 配置部分中:

      1. 对于 User,输入要在容器内使用的用户名。此参数将映射到 Docker Remote API创建容器部分中的User以及docker run--user选项。

      2. 要授予作业容器对主机实例(类似于 root 用户)的更高权限,请向右拖动权限滑块。此参数将映射到 Docker Remote API创建容器部分中的Privileged以及docker run--privileged选项。

      3. 开启启用 Init 处理以在容器内运行 init 进程。该进程转发信号和获得进程。

    12. (可选)在文件系统配置部分:

      1. 开启启用只读文件系统以移除对卷的写入权限。

      2. 共享内存大小中,输入 /dev/shm 卷的大小(以 MiB 为单位)。

      3. 最大交换大小中,输入容器可使用的总交换内存量(以 MiB 为单位)。

      4. Swappiness 中输入一个介于 0 和 100 之间的值,以指示容器的 swappiness 行为。如果不指定值且启用了交换,则值默认值为 60。有关更多信息,请参阅 的 Job 定义参数 ContainerProperties 中的 swappiness

      5. (可选)展开 其他配置

      6. 对于 Tmpfs,请选择添加 tmpfs 以添加 tmpfs 挂载。

      7. 对于设备,选择添加设备以添加设备:

        1. 对于容器路径,指定容器实例中的路径以公开映射到主机实例的设备。如果将其留空,则在容器中使用主机路径。

        2. 对于主机路径,指定主机实例中设备的路径。

        3. 对于权限,选择要应用于设备的一个或多个权限。可用权限包括读取写入MKNOD

      8. (可选)对于 Ulimits 配置,请选择添加 ulimit 为容器添加一个 ulimits 值。输入名称软限制硬限制值,然后选择添加 ulimit

  3. 选择下一步

创建作业

要创建作业,请执行以下操作:

  1. 作业配置部分的名称中,为该作业指定一个唯一的名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

  2. 选择下一步

审核和创建

查看和创建页面上,检查配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择创建资源