Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

适用于 Amazon EC2 Auto Scaling 的动态扩展

当您配置动态扩展时,必须定义如何根据不断变化的需求进行扩展。例如,您有一个当前在两个实例上运行的 Web 应用程序,并希望在应用程序负载变化时将 Auto Scaling 组的 CPU 使用率保持在 50% 左右。这为您提供额外容量以处理流量高峰,而无需维护过多的空闲资源。您可以将 Auto Scaling 组配置为自动扩展来满足这一需求。策略类型决定扩展操作如何执行。

扩展策略类型

Amazon EC2 Auto Scaling 支持以下类型的扩展策略:

  • 目标跟踪扩展 — 根据特定指标的目标值增加或减少组的当前容量。它的工作方式类似于您家中负责控制温度的恒温器 - 您只需选择一个温度,恒温器会替您完成所有其他工作。

  • 分步扩展 — 根据一组扩展调整,增加或减小组的当前容量,这些调整称为分步调整,将根据警报严重程度发生变化。

  • 简单扩展 — 根据一个扩展调整值增加或减小当前组容量。

如果您根据一个按 Auto Scaling 组中的实例数成比例增减的使用率指标进行扩展,我们建议您使用目标跟踪扩展策略。否则,我们建议您使用步进扩展策略。

多个扩展策略

在大多数情况下,目标跟踪扩展策略就足以将您的 Auto Scaling 组配置为自动扩展或缩减。目标跟踪扩展策略允许您选择所需结果,并让 Auto Scaling 组根据需要添加和删除实例以实现该结果。

对于高级扩展配置,您的 Auto Scaling 组可以有多个扩展策略。例如,您可以定义一个或多个目标跟踪扩展策略,一个或多个步进扩展策略,或者同时使用两种策略。这样可以更灵活地覆盖多种场景。

为了说明多个策略如何协同工作,请设想一个应用程序,它使用一个 Auto Scaling 组和 Amazon SQS 队列将请求发送到单个 EC2 实例。为了帮助确保应用程序性能达到最佳级别,有两个策略用于控制何时扩展 Auto Scaling 组。一个是使用自定义指标、根据队列中的 SQS 消息数增加和移除容量的目标跟踪策略。另一个是步进策略,它使用 Amazon CloudWatch CPUUtilization 指标、当实例在指定时间长度内的使用率超过 90% 时增加容量。

在同时实施多个策略时,各个策略可能会同时指示 Auto Scaling 组扩展(或缩减)。例如,在 EC2 实例触发 CPUUtilization 指标的 CloudWatch 警报的同时,SQS 队列可能会触发自定义指标的警报。

如果发生上述情况,Amazon EC2 Auto Scaling 会选择在扩展和缩减时都提供最大容量的策略。例如,假定 CPU 使用率策略启动一个实例,而 SQS 队列的策略启动两个实例。如果同时满足两个策略的扩展条件,Amazon EC2 Auto Scaling 优先选择 SQS 队列策略。这会导致 Auto Scaling 组启动两个实例。

即使策略使用不同的扩展条件,使提供最大容量的策略具有优先级的方法也适用。例如,如果一个策略终止三个实例,另一个策略将实例数量减少 25%,且在扩展时组中有八个实例,则 Amazon EC2 Auto Scaling 会优先考虑为组提供最大数量实例的策略。这会导致 Auto Scaling 组终止两个实例(8 X 25% = 2)。目的是防止 Amazon EC2 Auto Scaling 删除过多实例。