AS
介绍
弹性伸缩(AutoScaling)是一种服务,可以自动调整弹性计算资源(ECS),以满足业务需求的变化。
弹性伸缩仅支持ECS实例或ECI实例数量的增加和减少,但不支持单个ECS实例或ECI实例的配置变更。
应用场景:弹性扩张、弹性收缩、弹性自愈。
功能
弹性扩张:当业务升级时,弹性伸缩自动完成底层资源升级,避免访问延时和资源超负荷运行。通过配置云监控实时关注ECS实例的使用情况。当云监控检测到伸缩组的ECS实例vCPU使用率突破80%时,弹性伸缩依据伸缩规则弹性扩张ECS资源,自动创建合适数量的ECS实例,并自动添加ECS实例到负载均衡实例和RDS实例的访问白名单中。
弹性收缩:当业务需求下降时,弹性伸缩自动完成底层资源释放,避免资源浪费。通过配置云监控实时关注ECS实例使用情况。当云监控检测到伸缩组内的ECS实例vCPU使用率低于30%时,弹性伸缩依据伸缩规则弹性收缩ECS资源,自动释放合适数量的ECS实例,并自动从负载均衡实例和RDS实例的访问白名单中移除ECS实例。
弹性自愈:弹性伸缩提供健康检查功能,自动监控伸缩组内的ECS实例的健康状态,避免伸缩组内健康ECS实例低于设置的最小值。当检测到某台ECS实例处于不健康状态时,弹性伸缩自动释放不健康ECS实例并创新新的ECS实例,自动添加新的ECS实例到负载均衡实例和RDS实例的访问白名单中。
- 功能1∶根据客户业务需求自动调整ECS实例数量。
- 定时模式:配置周期性任务,定时地增加/减少ECS
- 动态模式(报警):基于云监控性能指标(如CPU、内存利用率),自动增加、减少ECS
- 固定数量模式:通过“最小实例数”属性,始终保持健康运行的ECS数量,自动替换不健康实例
- 功能2:自动向SLB的后端服务器组中添加或移除相应的ECS实例。
- 功能3:自动向RDS访问白名单中添加或移除ECS实例的IP。
组成
-
伸缩组:具有相同应用场景的ECS的集合。指定伸缩组类型(即ECS实例或ECI实例,用于指定提供计算能力的实例类型)、实例配置来源、边界值(即最大实例数和最小实例数)或负载均衡(CLB实例或ALB服务器组)等。
实例配置来源:用来管理ECS实例或ECI实例使用的模板信息,也可以选择已有实例或从零开始创建。在弹性扩张时,弹性伸缩使用ECS类型的模板信息创建ECS实例,使用ECI类型的模板信息创建ECI实例。
-
伸缩配置:进行弹性伸缩ECS的配置。
-
伸缩规则:定义了具体的扩展或收缩操作,如加入或移出N个ECS 实例。主要用来触发伸缩活动,例如增加1台ECS实例或ECI实例。可以手动执行伸缩规则,或者通过报警任务或定时任务执行伸缩规则。伸缩规则还支持智能设置伸缩组的边界值(即最大实例数和最小实例数)。
-
触发任务:
- 定时任务:指定时间执行相应的伸缩规则。
- 报警任务:通过云监控系统,实时监测伸缩组的各项指标,在指标满足配置的阈值条件时,执行相应的伸缩规则。
-
伸缩活动:伸缩规则成功触发后,就会产生一条伸缩活动,伸缩活动主要用来描述伸缩组内的ECS实例的变化情况。
场景
(1)场景一:冷却时间
场景:当CPU过高时,触发报警任务,创建了几台新的ECS,但是CPU要经过一小段时间才能降下来。这个过程中,报警任务是否会持续被触发?
解决方案:伸缩活动成功执行后,设定一段锁定时间,即冷却时间。冷却时间内不会接受由云监控报警任务触发的伸缩活动请求。
(2)场景二:生命周期挂钩
场景:伸缩组释放ECS实例时需要先将实例从SLB后端服务移除(防止接收新的请求),待检测已经接收到的请求处理完成,停止并释放实例。
解决方案:在该伸缩组内创建生命周期挂钩。设置伸缩活动类型为“弹性收缩”,设置超时时间为(预计的)请求最长处理时间。当发生弹性收缩类型伸缩活动时,ECS实例从SLB移除后会挂起一段时间(即超时时间),等待请求处理完成。待超时时间到,再释放ECS实例。
应用实例: