弹性伸缩服务AS
1.AS介绍
1.1 AS的概念
弹性伸缩(AutoScaling)是一种服务,可以自动调整弹性计算资源(ECS),以满足业务需求的变化。
应用场景:弹性扩张、弹性收缩、弹性自愈
1.2 AS的功能
- 根据客户业务需求自动调整ECS实例量。
- 定时模式:配置周期性任务,定时地增加/减少ECS
- 动态模式:基于云监控性能指标(CPU、内存利用率),自动增加、减少ECS
- 固定数量模式:通过“最小实例数”属性,始终保持健康运行的ECS数量,自动替换不健康实例
- 自动向SLB的后端服务器组中添加或移除相应的ECS实例。
- 自动向RDS访问白名单中添加或移除ECS实例的IP。
冷却时间:伸缩活动成功执行后,设定一段锁定时间,即冷却时间。冷却时间内不会接受由云监控报警任务触发的伸缩活动请求。
生命周期挂钩(LifecycleHook):在该伸缩组内创建生命周期挂钩。设置伸缩活动类型为“弹性收缩”,设置超时时间为(预计的)请求最长处理时间。当发生弹性收缩类型伸缩活动时,ECS实例从SLB移除后会挂起一段时间(即超时时间),等待请求处理完成。待超时时间到,再释放ECS实例。
1.3 AS的组成
- 伸缩组:有相同应用场景的 ECS 的集合。定义组内 ECS 实例数的最大值、最小值及其相关联的SLB和RDS。
- 伸缩配置:用于弹性伸缩的ECS的配置
- 伸缩规则:具体的扩展或收缩操作,例如加入或移出N个ECS 实例
- 触发任务:定时任务、报警任务
- 伸缩活动:伸缩规则成功触发后,就会产生一条伸缩活动
1.4 AS的优势
- 高可用:自动监测ECS实例的健康状况,及时替换不健康实例
- 自运维:无需人工干预、自动创建和释放ECS实例、 自 动 配 置 SLB 和RDS访问白名单
- 灵活丰富:智能调度应 对各种复杂场景、可通过API对接外在监控系统、可同时配置 多种伸缩模式
- 降成本:按需取用,提高资源利用率
2.AS配置流程
- 创建伸缩组
- 创建伸缩配置
- 启用伸缩组
- 创建伸缩规则
- 创建定时任务
- 创建报警任务
3.AS最佳实践
多种伸缩模式结合
使用弹性伸缩,要提前判断、评估业务场景。
- 定时伸缩模式(定时任务):基于已知的周期性变化,定时增加或减少ECS实例;
- 动态伸缩模式(报警任务):基于云监控性能指标(如CPU、内存利用率),自动增加或减少ECS实例,应对不可预期的变化;
- 为了应对异常情况(如遭受黑客DDoS攻击),使用云监控及其报警功能,及时发现问题、及时处理。或者使用云安全产品。
4.AS典型应用案例
4.1 小公司无运维团队
某互联网亲子社区
日均PV 300万、日均活跃用户8万、日均上传高清照15万张、日均上传视频6000个。在阿里云存储数据8T+,照片1500万张,视频60万个
急需解决:
- 需要存储大量的照片和视频
- 创业团队,无专人维护
解决方案:
ECS、SLB、RDS、OSS、AutoScaling
4.2 大公司实现自动化运维
某图像视频技术服务公司
面临问题:
- 上万视频平台客户
- 业务指数级增长
解决方案:网关集群和业务集群都有“组”的概念,基于组的弹性伸缩,可以快速应对突发流量。
5 小结
1. AutoScaling有哪些组件?你认为哪个功能最重要?
AS组件
- 伸缩组:有相同应用场景的 ECS 的集合。定义组内 ECS 实例数的最大值、最小值及其相关联的SLB和RDS。
- 伸缩配置:用于弹性伸缩的ECS的配置
- 伸缩规则:具体的扩展或收缩操作,例如加入或移出N个ECS 实例
- 触发任务:定时任务、报警任务
- 伸缩活动:伸缩规则成功触发后,就会产生一条伸缩活动
我认为触发任务和伸缩配置是最重要的。伸缩配置决定了AS弹性伸缩的具体实例,触发任务则决定了触发伸缩活动的具体时机。合适的时机增加合适/减少合适的实例保障了系统的高可用和高性价比。
2. 相对于传统硬件服务器,AutoScaling有哪些优势?
- 高可用:自动监测ECS实例的健康状况,及时替换不健康实例
- 自运维:无需人工干预、自动创建和释放ECS实例、 自 动 配 置 SLB 和RDS访问白名单
- 灵活丰富:智能调度应 对各种复杂场景、可通过API对接外在监控系统、可同时配置 多种伸缩模式
- 降成本:按需取用,提高资源利用率
更多详情见弹性伸缩AS官方文档