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

在 Amazon Batch 中更新计算环境

Amazon Batch 提供了多种计算环境更新策略,每种策略都针对特定的更新场景和要求而设计。这些方法使用相同的底层更新 API,但代表了用于有效管理更新的不同规范方法。您可以使用 Amazon Batch 控制台或 Amazon CLI 来管理这些更新。了解这些策略有助您选择最适合自己需求的方法,同时尽可能减少工作负载中断。

本主题概述了可用的更新策略,并提供了有关每种方法的使用场景的指导。有关详细操作过程,请参阅每种更新策略的相应部分。

重要

Amazon Batch 会在您的账户中代表您创建和管理多个 Amazon 资源,包括 Amazon EC2 启动模板、Amazon EC2 Auto Scaling 组、Amazon EC2 竞价型实例集和 Amazon ECS 集群等。这些托管式资源已特别为了确保最优的 Amazon Batch 操作而进行配置。除非 Amazon Batch 文档中明确说明,否则手动修改这些 Amazon Batch 托管式资源可能会导致异常行为(包括 INVALID 计算环境)、不理想的实例扩缩行为、工作负载处理延迟,或产生意外的成本。不能确定 Amazon Batch 服务一定能够支持这些手动修改。请务必使用支持的 Amazon Batch API 或 Amazon Batch 控制台来管理您的计算环境。

计算环境更新策略

使用扩缩更新或基础设施更新策略时,您的计算环境将就地更新。对于蓝绿更新策略,您需要创建一个新计算环境(绿色),然后将工作负载从旧计算环境(蓝色)迁移到新计算环境(绿色)。

Amazon Batch 提供了三种不同的计算环境更新策略:

扩缩更新

扩缩更新通过增加或移除实例来调整计算环境的容量,但不会替换现有实例。这是最快的更新场景,不需要停机时间。需要更改容量设置(vCPU 数)时应使用扩缩更新。此类更新通常会在几分钟内完成。

Fargate 更新的执行过程与扩缩更新相同。有关更多信息,请参阅 执行扩缩更新

基础架构更新

基础设施更新会将计算环境中的实例替换为具有更新后设置的新实例。此类更新需要特定的服务角色和分配策略配置,但停机时间极少,正在运行的作业可能会出现中断。需要修改实例类型、AMI 配置、联网设置、服务角色、环境状态或其他基础设施组件时,应使用基础设施更新。根据作业完成情况,此类更新通常会在 10-30 分钟内完成。

有关更多信息,请参阅 执行基础设施更新

蓝绿更新

蓝绿更新会创建一个与现有环境并行运行的新计算环境,从而实现在零停机时间的情况下逐步转移工作负载。这种方法提供了最安全的更新路径,但需要临时运行两个环境。需要零停机时间、希望在完全部署之前测试更改、需要快速回滚功能或使用不受支持的配置进行基础设施更新时,应使用蓝绿更新。完成更新所需的时间因情况而异,并且由您控制。

有关更多信息,请参阅 为计算环境执行蓝绿更新

选择合适的更新策略

使用以下决策指南来选择最适合您需求的更新策略:

选择扩缩更新的场景

只需要调整计算容量(vCPU 数)时,应选择扩缩更新策略。需要在无停机时间的情况下快速更新且无需更改基础设施配置时,扩缩更新是理想的选择。

有关详细步骤,请参阅 执行扩缩更新

选择基础设施更新的场景

需要修改实例类型、AMI 设置、服务角色、环境状态或联网配置时,应选择基础设施更新策略。您的环境必须使用 AWSServiceRoleForBatch 服务相关角色以及 BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZEDSPOT_PRICE_CAPACITY_OPTIMIZED 分配策略。如果更新期间可以接受某些作业中断,并且您希望自动更新到最新版本的 Amazon ECS 优化型 AMI,则非常适合选择基础设施更新。

有关详细步骤,请参阅 执行基础设施更新

选择蓝绿更新的场景

如果工作负载需要零停机时间,或者您需要在转移生产工作负载之前测试更改,应选择蓝绿更新策略。当快速回滚功能很重要、您的环境使用 BEST_FIT 分配策略或者您的环境不使用 AWSServiceRoleForBatch 服务相关角色时,必须使用这种方法。使用需要手动更新或需要进行重大配置更改的自定义 AMI 时,蓝绿更新也是最佳选择。

有关详细步骤,请参阅 为计算环境执行蓝绿更新

AMI 更新注意事项

当满足以下所有条件时,Amazon Batch 可以在基础设施更新期间更新到最新版本的 Amazon ECS 优化型 AMI:

注意

基础设施更新完成后,updateToLatestImageVersion 将设置为 false。要启动其他更新,必须将 updateToLatestImageVersion 设置为 true

  • 计算环境使用 AWSServiceRoleForBatch 服务相关角色

  • 分配策略设置为 BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZEDSPOT_PRICE_CAPACITY_OPTIMIZED

  • 未在 imageIdimageIdOverride 或启动模板中显式指定 AMI ID

  • updateToLatestImageVersion 设置为 true

使用蓝绿部署进行 AMI 更新

对于下列场景,您必须使用蓝绿部署来更新 AMI:

  • 使用指定版本的 Amazon ECS 优化型 AMI 时

  • 在以下任一资源中指定了 AMI ID 时:

    • 启动模板(必须更新模板或将其移除)

    • imageId 参数

    • EC2 配置中的 imageIdOverride 参数

  • 使用 BEST_FIT 分配策略时(不支持基础设施更新)

  • 不使用 AWSServiceRoleForBatch 服务相关角色