文档中心 > 什么是弹性伸缩
什么是弹性伸缩

最近更新时间:2021-11-14


弹性伸缩(Auto Scaling)服务,是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。

用户根据自己的业务需求,设置相应的策略,系统则据此自动调整其弹性计算资源,在满足业务需求高峰增长时,自动增加弹性云主机(ECS)实例,并在业务需求下降时,自动减少ECS实例以节约成本。


伸缩原理

弹性伸缩根据用户的业务需求和策略,自动调整弹性云主机的数量。

如在业务量增长超过一定阈值时,系统可自动扩展(Scale Out)弹性云主机实例数量;然后在业务量下降到一定的阈值时,系统自动收缩(Scale In)弹性云主机实例数量。

图片 7.png

同时,可以指定需要运行的实例的最小数目(Minimum Number)和最大数目(Maximum Number),根据规则集自动添加或删除VM。

  • 设置最小数目,可确保应用程序在没有负载的情况下也会运行。

  • 设置最大数目是为了限制每小时可能会引发的总成本。可以使用创建的规则在这两种极限之间自动缩放。

  • 当满足规则条件时,将触发一个或多个自动缩放操作。可以自动添加和删除云主机,或执行其他操作。


工作流程

弹性伸缩的工作流程如下:

图片 5.png

在用户完成启动配置、伸缩组、伸缩策略创建并启用后,系统会自动化执行以下流程(以增加ECS实例为例):

  1. 系统自动通过接口触发伸缩活动,并在该接口中指定需要执行的伸缩规则的资源唯一标识符。

    • 监控策略会实时监控伸缩组内ECS实例的性能(参考图中步骤1),并根据用户配置的告警规则(如伸缩组内所有ECS实例的CPU使用率平均值大于80%),触发执行伸缩动作。。

    • 定时策略会根据用户配置的时间来触发执行伸缩规则请求。

    • 周期策略会根据用户配置的周期定期来触发执行伸缩规则请求。

    • 健康检查任务会按照用户设定的间隔定期检查伸缩组内ECS实例的健康情况,如发现有不健康的ECS实例(如,关机状态)会按照用户设定的伸缩组默认移除方式移除不健康实例。

  2. 根据步骤2传入的伸缩规则获取伸缩策略、伸缩组、启动配置的相关信息,并创建伸缩活动。

  3. 执行伸缩活动。

    (1) 步骤3.1:通过伸缩规则查询伸缩策略以及相应的伸缩组信息,计算出需要增加的ECS实例数量,并获得需要配置的SLB信息。(SLB为可选项)

    (2) 步骤3.2:通过伸缩组查询到相应的伸缩配置信息,获得需要创建的ECS实例的配置信息(CPU、内存、带宽等)。

    (3) 步骤3.3:根据需要增加的ECS实例数量、ECS实例配置信息、需要配置的SLB实例创建伸缩活动。

  4. 在伸缩活动中,自动创建ECS实例并配置SLB(SLB为可选项)。

    (1) 步骤4.1:按照实例配置信息创建指定数量的ECS实例。

    (2) 步骤4.2:将创建好的ECS实例添加到指定的SLB实例当中。

  5. (可选)伸缩活动完成后,启动伸缩组的沉默功能。待沉默时间完成后,该伸缩组才能接收新的执行伸缩规则请求。


伸缩效果示例

伸缩组创建后,弹性伸缩组是缺省停用的,用户需要创建使用策略才能实际使用弹性伸缩功能。以下以监控项为伸缩组内ECS实例的内存使用率平均值,触发弹性扩张的阈值为70%,触发弹性收缩的阈值为20%,扩容/缩容动作为增加/减少1台云主机为例进行说明。

图片 3.png

 

  • 当用户的业务需求上升时,弹性伸缩自动完成底层资源升级,避免访问延时和资源超负荷运行。例如,当后台监控检测到伸缩组内的ECS实例内存使用率平均值超过70%时,弹性伸缩根据用户配置的伸缩规则弹性扩张ECS资源,自动创建1台ECS实例加入伸缩组。

  • 当用户业务需求下降时,弹性伸缩自动完成底层资源释放,避免资源浪费。例如,后台监控检测到伸缩组内的ECS实例内存使用率平均值低于20%时,弹性伸缩根据用户配置的伸缩规则弹性收缩ECS资源,自动移除1台ECS实例。

  • 弹性伸缩提供健康检查功能,自动监控伸缩组内的ECS实例的健康状态,避免伸缩组内健康ECS实例低于用户设置的最小值。当检测到某台ECS实例处于不健康状态(如关机状态)时,伸缩组将自动移除不健康ECS实例并创建新的ECS实例。