弹性伸缩AS(AutoScaling)的工作原理是怎样的?
弹性伸缩本质上是一组ECS 实例集合,它可以根据用户指定的扩缩容策略(比如基于某些监控指标),在业务非高峰时,自动完成实例的创建;在业务低谷时,自动释放多余实例,最终实现业务的高可用。
工作原理解析
如果某Web 应用使用ECS 实例处理业务请求,系统架构分为三层(如上图右侧虚线框)。其中,最上层的负载均衡,负责将客户端的请求转发给伸缩组内的ECS 实例;中间层的伸缩组内的ECS 实例,负责处理客户端请求;最下层的RDS 数据库,负责存储来自ECS 实例的业务数据。
通过弹性伸缩调整中间层ECS 实例数量,从而自动调整业务请求能力,具体流程如下:
a) 弹性伸缩在符合各种任务模式下自动伸缩触发任务:
• 定时任务:创建定时任务,在指定时间执行指定伸缩规则。
• 自定义任务:手动进行弹性伸缩,包括手动执行伸缩规则,或者手动添加、移出或者删除已有的ECS 实例。
• 健康检查任务:如果在伸缩组开启健康检查功能,伸缩组会定期检查ECS 实例的运行状态,如果发现一台ECS 实例未处于运行中状态,则判定该ECS 实例为不健康实例并移出。
• 云监控任务:基于云监控性能指标(例如CPU 使用率)创建报警任务,比如例如伸缩组内所有ECS 实例的CPU 平均值大于80%时触发报警。
b) 通过ExecuteScalingRule 接口触发伸缩规则。
c) 创建伸缩活动:根据需要增加的ECS 实例数量、实例配置信息、需要配置的负载均衡实例和RDS 实例创建伸缩活动。
d) 在伸缩活动中,自动创建实例并配置负载均衡和RDS。
e) 启动伸缩组的冷却功能,待冷却时间完成后,该伸缩组才能接收新的执行伸缩规则请求。
注意
冷却时间只适用于云监控的动态模式,其他模式不受影响。"
以上内容摘自《阿里云认证的解析与实战-关系型数据库ACP认证》电子书,点击https://developer.aliyun.com/ebook/download/7806可下载完整版。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。