弹性伸缩介绍
#官方帮助文档
https://help.aliyun.com/document_detail/25857.html
使用弹性伸缩(Auto Scaling),可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。
弹性伸缩的使用流程如下图所示:
配置的流程∶
配置好负载均衡和ECS-->创建伸缩组-->添加伸缩配置-->创建伸缩组规则-->创建伸缩组规则触发器-->添加已有ECS实例-->启用伸缩组
- 创建伸缩组
- 选择从零开始创建伸缩
- 确定伸缩组名称,一个业务对应一个伸缩组
- 配置伸缩组,组内最小实例,组内最大实例,组内期望实例
- 选择VPC以及交换机,关联哪个负载均衡,关联哪个RDS
- 添加伸缩配置: 配置组内实例配置信息来源
- 选购对应扩展的节点CPU,内存
- 选择对应的自定义镜像,镜像内容必须与业务环境一致
- 伸缩配置保存:指定伸缩名称
- 配置完成后启动伸缩组
- 创建伸缩组规则: 指定什么条件触发伸缩
- 创建添加ECS实例规则-->规则名称(添加ECS)-->伸缩规则类型(简单规则)-->执行操作(增加1台)-->冷却时间(60s)
- 创建减少ECS实例规则-->规则名称(减少ECS)-->伸缩规则类型(简单规则)-->执行操作(减少1台)-->冷却时间(60s)
- 自动触发任务管理:创建伸缩组规则触发器,什么情况添加或减少ECS
- 报警任务
- 创建扩展报警任务-->指定名称-->监控资源(伸缩组名称)-->监控项(CPU使用率)-->周期(1分钟)-->统计方法(平均值>=70%)-->重
复几次(1次)-->报警触发规则 - 创建缩减报警任务-->指定名称-->监控资源(伸缩组名称)-->监控项(CPU使用率)-->周期(1分钟)-->统计方法(平均值<=30%)-->重
复几次(1次)-->报警触发规则
- 定时任务
- 将现有ECS实例加入伸缩组
- 伸缩组管理--> 已创建的伸缩组 --> 实例列表 --> 手动创建 --> 添加已有的ECS
- 在已有ECS上模拟高CPU操作
- 在报警任务中查看扩容任务的状态监控信息
- 伸缩组管理-->指定前面创建的伸缩组-->实例伸缩概览(查看例的变化)
案例:
- 先准备一个ECS实例,以及一个SLB负载均衡器
- 创建一个弹性伸缩组
填写伸缩组名称,选择已存在的实例创建伸缩组
确定即可
至此伸缩组定义完成
- 添加伸缩配置: 配置组内实例配置信息来源
创建伸缩组配置,如果使用已存在ECS实例,会自动生成配置,可忽略这一步
可以看到已经存在一个默认配置
- 创建伸缩组规则: 指定什么条件触发伸缩
创建一个扩容规则
创建一个缩容规则
- 自动触发任务管理:创建伸缩组规则触发器,什么情况添加或减少ECS
创建一个扩容任务
创建一个缩容任务
- 将现有ECS实例加入伸缩组
- 伸缩组管理--> 已创建的伸缩组 --> 实例列表 --> 手动创建 --> 添加已有的ECS
创建伸缩组时已经提前加入了
- 测试
- 在已有ECS上模拟高CPU操作
#多执行几次复制磁盘任务,消耗CPU
[root@web01 ~]# dd if=/dev/zero of=/dev/null &
[1] 11631
可以看到wa(CPU空闲时间为0),观察是否触发扩容任务
观察ECS,发现新增实例
CPU资源使用达到峰值后迅速下降
同时触发邮件报警
伸缩组中服务数量增加
当新的实例资源紧张时会再次自动扩容,反之缩减。
我是moore,大家一起加油!!!