介绍 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 组的最大容量值,但会受到任何账户级配额的约束,因此在应用此功能时请务必考虑这些限制。下图可视化了此操作的行为。

介绍 Amazon EC2 自动扩展的实例维护策略 计算博客

图 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 完成 CCCS PBHVA 评估,范围涵盖149项服务和特性关键要点AWS 成为首个满足加拿大 PBHVA 高安全标准的云服务提供商CSP此次评估涵盖149项服务和特性,帮助公共和商业客户维持最高的安全标准评估报告可通过 AWS Artifact 获取我们不断扩展 亚马逊网络服务AWS 的保...

使用 Amazon EMR 针对 Apache Spark 的运行时将 Apache Spark 3

使用 Amazon EMR 针对 Apache Spark 的运行时将 Apache Spark 3

用 Amazon EMR 运行 Apache Spark 351 工作负载的性能提升关键要点Amazon EMR 提供了针对 Apache Spark 的优化运行时,性能比 Apache Spark 351 快 45 倍,并在成本效益方面提高了 28 倍。自 2022 年底以来新增了 35 项优化,...

订阅邮箱