托管计算环境
在托管计算环境中,你可以将AWS Batch用以管理环境中计算资源的容量和实例类型。这基于在创建计算环境时定义的计算资源规范。可以选择使用 Amazon EC2 按需型实例和 Amazon EC2 竞价型实例。或者,也可以在托管计算环境中使用 Fargate 和 Fargate 竞价容量。使用竞价型实例时,可以选择设置最高价格。这样,只有当竞价型实例价格低于按需型实例价格的指定百分比时,竞价型实例才会启动。
重要
在Windows containers on AWS Fargate上不支持 Fargate 竞价型实例。如果将 FargateWindows 作业提交到仅使用 Fargate 竞价计算环境的作业队列,作业队列将被阻止。
重要
AWS Batch 会在您的账户中代表您创建和管理多个 AWS 资源,包括 Amazon EC2 启动模板、Amazon EC2 Auto Scaling 组、Amazon EC2 竞价型实例集和 Amazon ECS 集群等。这些托管式资源已特别为了确保最优的 AWS Batch 操作而进行配置。除非 AWS Batch 文档中明确说明,否则手动修改这些由 Batch 托管的资源可能会导致 INVALID 计算环境中的异常行为、不理想的实例扩缩行为、工作负载处理延迟,或产生意外的成本。不能确定 AWS Batch 服务一定能够支持这些手动修改。请务必使用支持的 Batch API 或 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,用于托管计算环境。有关更多信息,请参阅 计算资源 &AMI;。
注意
AWS Batch不会在创建计算环境后自动升级该计算环境中的 AMI。例如,当更新版本的 Amazon ECS 优化 AMI 发布时,它不会更新计算环境中的 AMI。您需要管理客户操作系统。其中包括任何更新和安全补丁。您还负责为在计算资源上安装的任何其他应用程序软件或实用程序。有两种方法可以将新的 AMI 用于AWS Batch作业。最初的方法是完成以下步骤:
-
使用新的 AMI 创建新计算环境。
-
将计算环境添加到现有作业队列。
-
从作业队列中删除早期的计算环境。
-
删除早期的计算环境。
2022 年 4 月,AWS Batch增加了对更新计算环境的增强支持。有关更多信息,请参阅 在 AWS Batch 中更新计算环境。要使用计算环境的增强更新来更新 AMI,请遵循以下规则:
-
不设置服务角色(
serviceRole)参数,或将其设置为 AWSServiceRoleForBatch 服务相关角色。 -
将分配策略 (
allocationStrategy) 参数设置为BEST_FIT_PROGRESSIVE、SPOT_CAPACITY_OPTIMIZED或SPOT_PRICE_CAPACITY_OPTIMIZED。 -
将更新到最新图像版本(
updateToLatestImageVersion)参数设置为true。 -
请勿在
imageId、imageIdOverride(在ec2Configuration)或启动模板 (launchTemplate) 中指定 AMI ID。在这种情况下,AWS Batch会选择AWS Batch在启动基础架构更新时支持的最新 Amazon ECS 优化 AMI。或者,可以在imageId或imageIdOverride参数中指定 AMI ID,也可以在LaunchTemplate属性中指定启动模板。更改这些属性中的任何一个都将启动基础架构更新。如果在启动模板中指定了 AMI ID,则不能通过在imageId或imageIdOverride参数中指定 AMI ID 来替换它。只能通过指定不同的启动模板来替换它。或者如果启动模板版本设置为$Default或$Latest,则为启动模板设置新的默认版本(如果是$Default),或者为启动模板添加新版本(如果是$Latest)。
如果遵循这些规则,任何启动基础架构更新的更新都会导致重新选择 AMI ID。如果启动模板 (launchTemplate) 中的version设置设为$Latest或$Default,则在基础架构更新时会评估启动模板的最新版本或默认版本,即使launchTemplate尚未更新。
创建多节点并行作业时的注意事项
AWS Batch建议为运行多节点并行 (MNP) 作业和非 MNP 作业创建专用计算环境。这是由于在托管计算环境中创建计算容量的方式造成的。创建新的托管计算环境时,如果指定的minvCpu值大于零,则AWS Batch会创建一个仅供非 MNP 作业使用的实例池。如果提交了多节点并行作业,则AWS Batch会创建新的实例容量来运行多节点并行作业。在设置了minvCpus或maxvCpus值的同一计算环境中同时运行单节点和多节点并行作业时,如果所需的计算资源不可用,则AWS Batch将等待当前作业完成,然后再创建运行新作业所需的计算资源。