托管计算环境 - AWS Batch

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

托管计算环境

您可以使用托管计算环境来 AWS Batch 管理环境中计算资源的容量和实例类型。这基于在创建计算环境时定义的计算资源规范。您可以选择使用亚马逊 EC2 按需实例和亚马逊 EC2 竞价实例。或者,也可以在托管计算环境中使用 Fargate 和 Fargate 竞价容量。使用竞价型实例时,可以选择设置最高价格。这样,只有当竞价型实例价格低于按需型实例价格的指定百分比时,竞价型实例才会启动。

重要

不支持 Fargate Spot 实例。 Windows containers on AWS Fargate如果将作业提交到仅使用 Fargate Spot 计算环境的作业队列,则任务队列将被阻止。 FargateWindows

重要

AWS Batch 代表您并在您的账户中创建和管理多个 AWS 资源,包括亚马逊 EC2 启动模板、Amazon A EC2 uto Scaling 群组、Amazon EC2 Spot 队列和 Amazon ECS 集群。这些托管资源经过专门配置,以确保最佳 AWS Batch 运行。除非 AWS Batch 文档中明确说明,否则手动修改这些批处理管理的资源可能会导致意外行为,从而导致INVALID计算环境、实例扩展行为不理想、工作负载处理延迟或意外成本。该服务无法确定性地支持这些手动修改。 AWS Batch 请务必使用支持的 Batch APIs 或 Batch 控制台来管理您的计算环境。

托管计算环境在您指定的 VPC 和子网中启动 Amazon EC2 实例,然后将它们注册到 Amazon ECS 集群。Amazon EC2 实例需要外部网络访问权限才能与 Amazon ECS 服务终端节点通信。有些子网不为 Amazon EC2 实例提供公有 IP 地址。如果您的 Amazon EC2 实例没有公有 IP 地址,则它们必须使用网络地址转换 (NAT) 才能获得此访问权限。有关更多信息,请参阅《Amazon VPC 用户指南》中的 NAT 网关。有关如何创建 VPC 的更多信息,请参阅创建 Virtual Private Cloud

默认情况下, AWS Batch 托管计算环境使用最新经批准的 Amazon ECS 优化版 AMI 来处理计算资源。但是,可能出于各种原因需要创建自己的 AMI,用于托管计算环境。有关更多信息,请参阅 计算资源 AMIs

注意

AWS Batch 创建后不会在计算环境 AMIs 中自动对其进行升级。例如,当更新版本的 Amazon ECS 优化的 AMI 发布时,它不会 AMIs 在您的计算环境中更新。您需要管理客户操作系统。其中包括任何更新和安全补丁。您还负责为在计算资源上安装的任何其他应用程序软件或实用程序。有两种方法可以将新 AMI 用于您的 AWS Batch 工作。最初的方法是完成以下步骤:

  1. 使用新的 AMI 创建新计算环境。

  2. 将计算环境添加到现有作业队列。

  3. 从作业队列中删除早期的计算环境。

  4. 删除早期的计算环境。

2022 年 4 月, AWS Batch 增加了对更新计算环境的增强支持。有关更多信息,请参阅 更新计算环境。要使用计算环境的增强更新进行更新 AMIs,请遵循以下规则:

  • 要么不要设置服务角色 (serviceRole) 参数,要么将其设置为AWSServiceRoleForBatch服务相关角色。

  • 将分配策略 (allocationStrategy) 参数设置为BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZEDSPOT_PRICE_CAPACITY_OPTIMIZED

  • 将更新到最新图像版本(updateToLatestImageVersion)参数设置为true

  • 请勿在imageIdimageIdOverride(在ec2Configuration)或启动模板 (launchTemplate) 中指定 AMI ID。在这种情况下,请 AWS Batch 选择基础设施更新启动时支持的最新 Amazon ECS 优化的 AMI。 AWS Batch 或者,可以在imageIdimageIdOverride参数中指定 AMI ID,也可以在LaunchTemplate属性中指定启动模板。更改这些属性中的任何一个都将启动基础架构更新。如果在启动模板中指定了 AMI ID,则不能通过在imageIdimageIdOverride参数中指定 AMI ID 来替换它。只能通过指定不同的启动模板来替换它。或者如果启动模板版本设置为$Default$Latest,则为启动模板设置新的默认版本(如果是$Default),或者为启动模板添加新版本(如果是$Latest)。

如果遵循这些规则,任何启动基础架构更新的更新都会导致重新选择 AMI ID。如果启动模板 (launchTemplate) 中的version设置设为$Latest$Default,则在基础架构更新时会评估启动模板的最新版本或默认版本,即使launchTemplate尚未更新。

创建多节点并行作业时的注意事项

AWS Batch 建议创建专用的计算环境来运行多节点并行 (MNP) 作业和非 MNP 作业。这是由于在托管计算环境中创建计算容量的方式造成的。在创建新的托管计算环境时,如果您指定的minvCpu值大于零,则 AWS Batch 会创建一个仅用于非 MNP 任务的实例池。如果提交了多节点并行作业,则 AWS Batch 会创建新的实例容量来运行多节点并行作业。如果在设置了minvCpusmaxvCpus值的同一个计算环境中同时运行单节点和多节点并行作业,则如果所需的计算资源不可用,则 AWS Batch 将等待当前作业完成,然后再创建运行新作业所需的计算资源。