本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
执行基础架构更新
基础设施更新会将计算环境中的实例替换为设置更新的新实例。此更新策略比扩展更新需要更长的时间,并且需要特定的服务角色和分配策略设置。基础架构更新提供了一种在保持服务可用性的同时修改基本计算环境配置的方法。
重要
基础架构更新需要AWSServiceRoleForBatch服务相关角色和BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED、或SPOT_PRICE_CAPACITY_OPTIMIZED的分配策略。如果您的环境不符合这些要求,请改用 blue/green 更新。
触发基础架构更新的更改
修改以下任何设置时,将 AWS Batch 执行基础架构更新。当您同时修改这些设置以及扩展更新设置时,也会进行基础架构更新。
以下设置会触发基础架构更新:
计算配置
-
allocationStrategy— 确定如何 AWS Batch 选择实例类型。 -
instanceTypes— 指定要使用的 EC2 实例类型。 -
bidPercentage— 竞价型实例按需价格的最大百分比。 -
type— 计算环境类型(EC2或SPOT)。
AMI 和启动配置
-
imageId— 用于实例的特定 AMI。 -
ec2Configuration— EC2 配置包括imageIdOverride。 -
launchTemplate— EC2 启动模板设置。 -
ec2KeyPair— 用于实例访问的 SSH 密钥对。 -
updateToLatestImageVersion— AMI 自动更新设置。
网络和安全性
-
subnets— 启动实例的 VPC 子网(适用于 EC2 计算环境)。 -
securityGroupIds— 实例的安全组(适用于 EC2 计算环境)。 -
placementGroup— EC2 置放群组配置。
其他设置
-
instanceRole— EC2 实例的 IAM 角色。 -
tags— 应用于 EC2 实例的标签。
重要
如果您修改任何基础架构更新设置以及扩展更新设置(例如desiredvCpusmaxvCpus、或minvCpus),则 AWS Batch 会执行基础架构更新。基础架构更新所需的时间比扩展更新的时间长。
基础设施更新期间的 AMI 选择
在基础设施更新期间,计算环境的 AMI ID 可能会发生变化,具体取决于 AMIs 是否在这三个设置中指定。 AMIs 在imageId(incomputeResources)、imageIdOverride(in)或中ec2Configuration指定的启动模板中指定launchTemplate。假设在这些设置中 IDs 均未指定 AMI,且updateToLatestImageVersion设置为true。然后,将支持的最新 Amazon ECS 优化 AWS Batch 的 AMI 用于任何基础设施更新。
如果至少在其中一个设置中指定了 AMI ID,则更新将取决于提供了更新前使用的 AMI ID 的设置。创建计算环境时,选择 AMI ID 的优先级首先是启动模板,然后是imageId设置,最后是imageIdOverride设置。但是,如果使用的 AMI ID 来自启动模板,则更新imageId或imageIdOverride设置都不会更新 AMI ID。更新从启动模板中选择的 AMI ID 的唯一方法是更新启动模板。如果启动模板的版本参数为$Default或$Latest,则会评估指定启动模板的默认版本或最新版本。如果默认选择了不同的 AMI ID 或选择了最新版本的启动模板,则将在更新中使用该 AMI ID。
如果未使用启动模板来选择 AMI ID,则会使用imageId或imageIdOverride参数中指定的 AMI ID。如果同时指定了这两个参数,则会使用imageIdOverride参数中指定的 AMI ID。
假设计算环境使用由imageId、imageIdOverride或launchTemplate参数指定的 AMI ID,并且要使用由 AWS Batch支持的最新 Amazon ECS 优化 AMI。然后,更新必须删除提供 AMI 的设置 IDs。对于imageId,需要为该参数指定一个空字符串。对于imageIdOverride,需要为ec2Configuration参数指定一个空字符串。
如果 AMI ID 来自启动模板,则可以通过以下任一方式更改为支持的最新 Amazon ECS 优化 AWS Batch 的 AMI:
-
通过为
launchTemplateId或launchTemplateName参数指定一个空字符串,删除启动模板。这将删除整个启动模板,而不仅仅是 AMI ID。 -
如果启动模板的更新版本未指定 AMI ID,则必须将
updateToLatestImageVersion参数设置为true。
更新期间的 Job 处理
使用更新策略配置在基础架构更新期间如何处理正在运行的作业。设置后terminateJobsOnUpdate=true,正在运行的作业将立即终止,jobExecutionTimeoutMinutes设置将被忽略,并且只要可以替换实例,更新就会继续进行。设置后terminateJobsOnUpdate=false,运行的作业将在指定的超时时间内继续运行,默认超时时间为 30 分钟,如果作业超过超时时间,则作业将被终止。
注意
要重试更新期间终止的作业,请配置任务重试策略。有关更多信息,请参阅 自动任务重试。
监控基础架构更新
使用 AWS Batch 控制台监控您的基础设施更新,以观察计算环境状态的变化UPDATING,监控实例替换进度,并检查是否有任何失败的更新。一旦计算环境状态变为,更新即成功VAILD。您还可以使用 CloudWatch 来跟踪实例终止事件和监控更新期间的任务状态。使用 AWS CLI,使用describe-compute-environments命令来检查状态和监控实例生命周期事件。