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

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

AWS Batch 入门

通过在 AWS Batch 控制台中创建作业定义、计算环境和作业队列来开始使用 AWS Batch。

通过 AWS Batch 首次运行向导,您可以创建计算环境和作业队列,并可以选择提交示例 hello world world 作业。如果您具有要在 AWS Batch 中启动的 Docker 镜像,则可以使用此映像创建作业定义并改为将此定义提交到您的队列。

重要

开始之前,请确保您已完成使用 AWS Batch 设置并且您的 AWS 用户具有所需的权限。管理员用户不需要担心权限问题。有关更多信息,请参阅 。创建您的第一个 IAM 管理员用户和组中的IAM 用户指南。

步骤 1: 定义作 Job

在此部分,您选择定义您的作业定义或在没有作业定义的情况下继续创建计算环境和作业队列。

配置作业选项

  1. 打开 AWS Batch 控制台首次运行向导https://console.aws.amazon.com/batch/home#/wizard

  2. 要创建 AWS Batch 作业定义、计算环境和作业队列,然后提交您的作业,请选择使用 Amazon EC2。要仅创建计算环境和作业队列而不提交作业,请选择 No job submission

  3. 如果您选择创建作业定义,请完成首次运行向导下面的四个部分。他们是Job 运行时环境参数, 和环境变量。然后选择 Next。如果您不创建作业定义,请选择下一页,然后转到步骤 2: 配置计算环境和 Job 队列

指定作业运行时间

  1. 如果您要创建新的作业定义,请在Job 定义名称中,指定作业定义的名称。

  2. (可选)Job 角色中,指定一个 IAM 角色,该角色为作业中的容器提供使用 AWS API 的权限。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关此功能的更多信息,包括配置先决条件,请参阅。任务的 IAM 角色中的Amazon Elastic Container Service 开发指南

    注意

    只有具有Amazon Elastic Container Service Task Role (Amazon Elastic Container Service 任务角色)此处显示信任关系。有关为 AWS Batch 作业创建 IAM 角色的说明,请参阅为任务创建 IAM 角色和策略中的Amazon Elastic Container Service 开发指南

  3. 对于 Container image,选择要用于您的作业的 Docker 映像。默认情况下,Docker Hub 注册表中的映像可用。或者,您也可以使用指定其他存储库repository-url/image:tag。此参数最长可达 255 个字符。它可以包含大写和小写字母、数字、连字符 (-)、下划线 (_)、冒号 (:)、句点 (.)、正斜杠 (/) 和数字符号 (#)。参数映射到Image中的创建容器的 部分Docker 远程 APIIMAGE的参数docker run

    注意

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

    • 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) 进行进一步限定。

为环境指定资源

  1. 对于 Command,指定要传递到容器的命令。此参数可将Cmd中的创建容器的 部分Docker 远程 APICOMMAND将参数设置为docker run。有关 Docker CMD 参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

    注意

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

  2. 对于 vCPUs,指定要为容器预留的 vCPU 数量。此参数可将CpuShares中的创建容器的 部分Docker 远程 API--cpu-shares选项docker run。每个 vCPU 相当于 1024 个 CPU 份额。

  3. 对于 Memory,指定要提供给作业容器的内存硬限制 (以 MiB 为单位)。如果您的容器尝试超出此处指定的内存,该容器将会停止。此参数可将Memory中的创建容器的 部分Docker 远程 API--memory选项docker run

  4. 对于 Job attempts,指定尝试作业的最大次数 (在尝试失败的情况下)。有关更多信息,请参阅 自动作业重试

Parameters

(可选)在命令中指定参数替代默认值和占位符。有关更多信息,请参阅 Parameters

  1. 对于 Key,指定参数的键。

  2. 对于 Value,指定参数的值。

指定环境变量

(可选)指定要传递到您的作业容器的环境变量。此参数可将Env中的创建容器的 部分Docker 远程 API--env选项docker run

重要

建议不要对敏感信息(如凭证数据)使用纯文本环境变量。

  1. 对于 Key,指定环境变量的键。

  2. 对于 Value,指定环境变量的值。

步骤 2: 配置计算环境和 Job 队列

计算环境是一种引用计算资源(Amazon EC2 实例)的方式:告知 AWS Batch 如何配置和自动启动实例的设置和限制。您将作业提交到一个作业队列,该队列将一直存储作业,直至 AWS Batch 计划程序在计算环境中的计算资源上运行作业。

注意

目前,您只能在首次运行向导中创建托管计算环境。要创建非托管计算环境,请参阅创建计算环境

配置您的计算环境类型

  1. 对于 Compute environment name,为您的计算环境指定唯一名称。

  2. 适用于服务角色中,选择创建新角色或使用现有角色,后者允许 AWS Batch 服务代表您调用所需的 AWS API。有关更多信息,请参阅 AWS Batch 服务 IAM 角色。如果您选择创建新角色,则将为您创建所需的角色 (AWSBatchServiceRole)。

  3. 适用于EC2 实例角色中,选择创建新角色或使用现有角色;通过角色,为计算环境创建的 Amazon ECS 容器实例可代表您调用所需的 AWS API。有关更多信息,请参阅 Amazon ECS 实例角色。如果您选择创建新角色,则将为您创建所需的角色 (ecsInstanceRole)。

配置实例

  1. 适用于预置模型中,选择按需启动 Amazon EC2 按需实例或Spot 实例使用 Amazon EC2 Spot 实例。

  2. 如果您选择使用 Amazon EC2 Spot 实例,请执行以下操作:

    1. 适用于最高出价中,选择在启动实例之前必须与该实例类型的按需价格进行比较的最大百分比。例如,如果出价百分比为 20%,则 Spot 价格必须低于该 EC2 实例的当前按需价格的 20%。您始终支付最低 (市场) 价格,并且绝不会高于您的最大百分比。

    2. 适用于Spot 队列角色中,选择创建新角色或使用现有 Amazon EC2 Spot 队列 IAM 角色来应用于您的 Spot 计算环境。如果您选择创建新角色,则将为您创建所需的角色 (aws-ec2-spot-fleet-role)。有关更多信息,请参阅 Amazon EC2 Spot 队列角色

  3. 适用于允许的实例类型下,选择可启动的 Amazon EC2 实例类型。您可以指定实例系列以启动这些系列中的任何实例类型(例如,c5c5np3),也可以指定系列中的特定大小(例如,c5.8xlarge)。请注意,金属实例类型不包括在实例系列中(例如,c5不包括c5.metal)。还可以选择optimal来动态选取符合作业队列要求的实例类型(从 C4、M4 和 R4 实例系列中)。

    注意

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

    注意

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

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

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

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

设置您的网络

计算资源将在您在此处指定的 VPC 和子网中启动。这使您能够控制 AWS Batch 计算资源的网络隔离。

重要

计算资源需要访问来与 Amazon ECS 服务终端节点通信。此操作可以通过接口 VPC 终端节点或计算资源具有公有 IP 地址。

有关接口 VPC 终端节点的更多信息,请参阅Amazon ECS 接口 VPC 终端节点 (AWS PrivateLink)中的Amazon Elastic Container Service 开发指南

如果您没有配置接口 VPC 终端节点,并且您的计算资源没有公有 IP 地址,则必须使用网络地址转换 (NAT) 来提供此访问。有关更多信息,请参阅 。NAT 网关中的Amazon VPC 用户指南。有关更多信息,请参阅 教程:创建带有公有和私有子网的 VPC计算环境

  1. 适用于VPC ID,选择在其中启动实例的 VPC。

  2. 对于 Subnets,选择选定 VPC 中应托管实例的子网。默认情况下,将选择选定 VPC 中的所有子网。

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

为您的实例添加标签

(可选)将键/值对标签应用于计算环境中启动的实例。例如,您可以指定 "Name": "AWS Batch Instance - C4OnDemand" 作为标签,以便计算环境中的每个实例均具有此名称。这有助于在 Amazon EC2 控制台中识别您的 AWS Batch 实例。默认情况下,计算环境名称用于为您的实例添加标签。

  1. 对于 Key,指定标签的键。

  2. 对于 Value,指定标签的值。

设置作业队列

将作业提交到一个作业队列,该队列将一直存储作业,直至 AWS Batch 计划程序在计算环境中的计算资源上运行作业。

  • 对于 Job queue name,请为您的作业队列选择唯一的名称。

查看和创建

Connected compute environments for this job queue 部分显示您的新计算环境与您的新作业队列关联及其顺序。稍后,您可以将其他计算环境与作业队列关联。作业计划程序使用计算环境顺序来确定哪个计算环境应启动给定作业。计算环境必须先处于 VALID 状态,然后您才能将其与作业队列关联。您最多可以将三个计算环境与一个作业队列关联。

  • 检查计算环境和作业队列配置,并选择 Create 以创建计算环境。