介绍 Amazon EC2 自动扩展的实例维护策略 计算博客
亚马逊 EC2 Auto Scaling 的实例维护策略
by Macey Neff 于 2023年11月15日 发布在 Amazon EC2、最佳实践、计算、客户解决方案。
关键要点
亚马逊 EC2 Auto Scaling 现已引入实例维护策略,提升了用户在实例替换过程中的控制力。新增的设置包括最小健康百分比MinHealthyPercentage和最大健康百分比MaxHealthyPercentage,允许用户定制替换实例的行为。用户可以通过多种方式配置实例维护策略,确保符合性能优先级和运营效率的同时,最小化成本。本文由 Ahmed Nada首席解决方案架构师与 Kevin OConnor首席产品经理撰写。
亚马逊网络服务AWS在全球的客户信赖 Amazon EC2 Auto Scaling 来管理其负载所需的 Amazon 弹性计算云Amazon EC2 容量。客户们依赖 EC2 Auto Scaling 的实例刷新功能来驱动新的 EC2 Amazon 镜像AMIs 部署、修改 EC2 实例类型,并确保代码保持最新。
目前,EC2 Auto Scaling 根据替换原因结合使用“先启动后终止”和“终止后启动”的行为。客户希望对何时启动新实例有更多控制,以降低替换正在使用的实例可能带来的干扰。因此,我们很高兴地介绍亚马逊 EC2 Auto Scaling 的实例维护策略,这一增强功能为客户提供了更大的控制力,以确保实例的替换过程符合性能优先级和运营效率,同时最小化亚马逊 EC2 成本。
本文深入探讨了配置实例维护策略的各种方式,并为您在亚马逊 EC2 Auto Scaling 组中使用这些工具提供了指导。
背景
AWS 于 2009 年推出了 Amazon EC2 Auto Scaling,旨在简化 Amazon EC2 容量管理的过程。自那时起,我们不断推出像 预测性扩展、基于属性 的实例选择以及 热池 等先进功能。
EC2 Auto Scaling 的一个基本能力是根据实例健康状况、由于 亚马逊 EC2 Spot 实例 的中断或者响应实例刷新操作来替换实例。实例刷新功能可让您维护亚马逊 EC2 Auto Scaling 组中健康且高性能的 EC2 实例。在某些情况下,先终止实例再启动替代实例可能会影响性能,或者在最坏的情况下会导致应用程序停机。不管您的需求是什么,实例维护策略允许您微调实例替换过程以符合您的特定需求。
概述
实例维护策略新增了两个 Amazon EC2 Auto Scaling 组设置:最小健康百分比MinHealthyPercentage和最大健康百分比MaxHealthyPercentage。这些值表示在实例替换过程中,组的期望容量中必须以健康和运行状态存在的百分比。MinHealthyPercentage 的值范围从 0 到 100,而 MaxHealthyPercentage 的值范围则从 100 到 200。这些设置适用于所有导致实例替换的事件,例如 基于健康检查的替换、最大实例生命周期、EC2 Spot 容量重新平衡、可用区重新平衡、实例购买选项重新平衡,以及 实例刷新。在实例刷新操作中,您也可以覆盖组级的实例维护策略,以满足特定的部署用例。
在推出实例维护策略之前,亚马逊 EC2 Auto Scaling 组在替换实例时将使用之前描述的行为。通过将实例维护策略的 MinHealthyPercentage 设置为 100 和 MaxHealthyPercentage 设置为大于 100 的值,亚马逊 EC2 Auto Scaling 组优先先启动替代实例,并在替换的实例可用之前,等待它们变为可用后再终止正在替换的实例。
设置实例维护策略
您可以通过 AWS 管理控制台、AWS 命令行界面AWS CLI、AWS SDK、AWS CloudFormation 和 Terraform,为新的或现有的亚马逊 EC2 Auto Scaling 组添加实例维护策略。
在控制台创建或编辑亚马逊 EC2 Auto Scaling 组时,您会看到四个选项,以定义实例维护策略的替换行为。这些选项包括 无策略,允许您保持亚马逊 EC2 Auto Scaling 服务当前使用的默认实例替换设置。
图片 1:在“创建自动扩展组”向导中实例维护策略功能的 GUI。
使用实例维护策略提升应用程序可用性
当您希望优先考虑亚马逊 EC2 Auto Scaling 组容量的可用性时,先启动后终止策略是合适的选择。此策略设置在替换操作期间通过启动新实例临时增加组的容量。在亚马逊 EC2 控制台中,您选择 先启动后终止 替换行为,然后设置所需的 MaxHealthyPercentage 值,以确定在实例替换期间应该启动多少个额外的实例。
例如,如果您管理的工作负载在实例替换期间需要最佳的可用性,请选择 先启动后终止 策略类型,并将 MinHealthyPercentage 设置为 100。如果将 MaxHealthyPercentage 设置为 150,则亚马逊 EC2 Auto Scaling 会在终止要替换的实例之前先启动替代实例。您将看到所需的容量增加 50,在此操作期间超出了组的最大容量,以提供所需的可用性。下图展示了 先启动后终止 策略下实例刷新操作的行为。
图 1:模拟配置为先启动后终止的实例替换过程的图表。
在实例刷新过程中覆盖组的实例维护策略
实例维护策略设置适用于所有实例替换操作,但可以在新的实例刷新操作开始时被覆盖。在覆盖实例维护策略时,您可以解决如需在没有停机的情况下替换的问题,如发生了错误的代码部署。在这种情况下,您可以配置实例维护策略,让整个新的实例组投入使用,然后再终止存在问题代码的实例。在这种情况下,您将 MaxHealthyPercentage 设置为 200 进行实例刷新操作,替换将在单个周期内完成,以迅速解决错误的代码问题。将 MaxHealthyPercentage 设置为 200 将允许替换设置突破 Auto Scaling 组的最大容量值,但会受到任何账户级配额的约束,因此在应用此功能时请务必考虑这些限制。下图可视化了此操作的行为。

图 2:模拟配置为加速新部署的实例替换过程的图表。
在替换和部署过程中控制成本
终止后启动策略选项允许您在实例替换期间优先考虑成本控制。通过配置此策略类型,亚马逊 EC2 Auto Scaling 在替换过程中先终止现有实例,然后再启动新实例。要设置 终止后启动 策略,您必须指定一个 MinHealthyPercentage 以确定容量可以降低到的最小值,并将 MaxHealthyPercentage 设置为 100。此配置将使 Auto Scaling 组的容量保持在期望容量设置之内。
下图展示了将 MinHealthyPercentage 设置为 80 的行为。在实例替换过程中,自动扩展组首先终止 20 的实例,并立即启动替代实例,暂时将组的健康容量减少到 80。该组将在新实例通过其配置的健康检查并完成 预热 之前,才会继续替换其余批次的实例。
银河vnp加速器图 3:模拟配置为终止后启动的实例替换过程的图表。
请注意,MinHealthyPercentage 和 MaxHealthyPercentage 值之间的差异会影响实例替换过程的速度。在前面的图中,亚马逊 EC2 Auto Scaling 组在每个周期替换 20 的实例。MinHealthyPercentage 和 MaxHealthyPercentage 之间的差距越大,替换过程越快。
使用自定义策略实现最大灵活性
您还可以选择采用 自定义行为 选项,在此选项下,您可以自由设置 MinHealthyPercentage 和 MaxHealthyPercentage 的值。使用这种策略类型可以随意微调替换行为并控制实例在亚马逊 EC2 Auto Scaling 组中的容量,从而根据您的需求定制实例维护策略。
关于分数替换计算
亚马逊 EC2 Auto Scaling 在执行实例替换时始终优先考虑可用性。当配置了实例维护策略时,亚马逊 EC2 Auto Scaling 还优先考虑先启动新实例,而不是低于 MinHealthyPercentage。例如,在一个期望容量为 10 个实例的亚马逊 EC2 Auto Scaling 组中,如果实例维护策略的 MinHealthyPercentage 设置为 99 和 MaxHealthyPercentage 设置为 100,则您的设置不允许容量减少至少一个实例。因此,亚马逊 EC2 Auto Scaling 会优先选择先启动后终止,在终止任何需要替换的实例之前,先启动一个新实例。
配置实例维护策略不是强制性的。如果您未配置亚马逊 EC2 Auto Scaling 组使用实例维护策略,则现有实例替换过程的行为不会发生变化。
您可以通过 CloudFormation 或 Terraform 模板为组级实例维护策略设置。在模板中,必须为 MinHealthyPercentage 和 MaxHealthyPercentage 设置值,以确定符合您亚马逊 EC2 Auto Scaling 组特定要求的实例替换行为。
结论
在这篇文章中,我们介绍了新功能亚马逊 EC2 Auto Scaling 组的实例维护策略,探讨了其能力,并提供了如何使用这一新特性的示例。实例维护策略设置适用于所有实例替换过程,也可以在每次实例刷新的基础上覆盖这些设置。通过配置实例维护策略,您可以控制亚马逊 EC2 Auto Scaling 组中实例的启动和生命周期,提高应用程序可用性,减少人工干预,并改善亚马逊 EC2 使用的成本控制。
要了解更多关于此功能的信息及其使用方式,请参考亚马逊 EC2 Auto Scaling 用户指南。
标签 亚马逊 EC2 Auto Scaling
AWS完成了CCCS PBHVA评估,涵盖149项服务和功能 安全博客
AWS 完成 CCCS PBHVA 评估,范围涵盖149项服务和特性关键要点AWS 成为首个满足加拿大 PBHVA 高安全标准的云服务提供商CSP此次评估涵盖149项服务和特性,帮助公共和商业客户维持最高的安全标准评估报告可通过 AWS Artifact 获取我们不断扩展 亚马逊网络服务AWS 的保...
使用 Amazon EMR 针对 Apache Spark 的运行时将 Apache Spark 3
用 Amazon EMR 运行 Apache Spark 351 工作负载的性能提升关键要点Amazon EMR 提供了针对 Apache Spark 的优化运行时,性能比 Apache Spark 351 快 45 倍,并在成本效益方面提高了 28 倍。自 2022 年底以来新增了 35 项优化,...