《企业运维之弹性计算原理与实践》——第五章 CMS&ESS——第五章(上):CMS&ESS(3) https://developer.aliyun.com/article/1231450?groupCode=supportservice
3. 弹性伸缩工作原理
弹性伸缩增加 ECS 实例的工作流程
在上面弹性伸缩示例图中,负载均衡负责将客户端的请求转发给伸缩组内的 ECS 实例,中间层伸缩组内的 ECS 实例负责处理客户端请求,最下层的 RDS 数据库负责存储来自 ECS 实例的业务数据,另外,每个 ECS 还可以挂一个 NAS 来存储共享数据。
弹性伸缩增加 ECS 实例的工作步骤:
1) 弹性伸缩在符合各种伸缩模式的触发条件时触发伸缩活动。
伸缩模式包括:定时任务、自定义任务、健康检查任务和云健康任务。
2) 系统自动通过 ExecuteScalingRule 接口触发伸缩活动。
伸缩活动:当符合触发规则时需要执行的扩容或缩容动作。
3) 获取伸缩规则、伸缩配置的相关信息,并创建伸缩活动。
• 伸缩规则:添加多少 ECS 实例。
• 伸缩配置:创建什么类型 ECS 实例。
4) 创建 ECS 实例,将实例添加到伸缩组,并配置负载均衡和 RDS。
5) 冷却伸缩组:待冷却时间完成后,该伸缩组才能接收新的执行伸缩规则请求,以避免频繁进行伸缩操作。
4. 伸缩模式
不同伸缩规则对应不同的伸缩模式,伸缩组支持多种模式组合使用。
1) 健康模式
• 释放或移出不健康的 ECS 实例(非保护状态或备用状态的 ECS 实例)。
• 不健康 ECS 实例:比如关闭的 ECS 实例。
• 保护状态实例:手动设置的不可进行缩放的实例。
• 伸缩组对所有模式默认提供。
2) 固定模式
• 通过指定 MinSize 来保证固定数量的 ECS 实例,如果 ECS 低于 MinSize,则自动触发接口进行扩容。
• 适合业务波动不大但有高可用要求的场景,一般与监控模式一起使用。
3) 手工模式
• 根据人工观察监控数据或者用户自有的监控系统,通过API手工伸缩ECS实例;
• 手工执行伸缩规则。
• 手工添加/移出既有的 ECS 实例。
• 手工调整 MinSize/MaxSize 后,自动创建或释放 ECS 实例,将实例数量维持在Min~Max 之间。
4) 定时模式
• 根据配置定时(如周五 13:00:00)增加或减少 ECS 实例。
• 适合业务波动具有一定规律的场景。
5) 动态模式
• 基于监控指标(如 CPU 利用率)的负载情况,根据配置自动创建或释放 ECS 实例。
• 适合业务波动没有明显规律的场景。
• 预测模式:根据用户伸缩组最近 1-14 天的 CPU 使用率、内网出入流量等进行建模,通过机器学习预测算法预测未来 2 天整体的使用情况,并自动进行扩缩容操作。
《企业运维之弹性计算原理与实践》——第五章 CMS&ESS——第五章(上):CMS&ESS(5) https://developer.aliyun.com/article/1231445?groupCode=supportservice