弹性伸缩 AS(Auto Scaling)
根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加 ECS 实例以保证计算能力,在业务需求下降时自动减少 ECS 实例以节约成本,弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序
创建弹性伸缩组
①. — 伸缩组名称:自定义命名,此处我命名为 as-003
②. — 组内实例配置信息来源:可以继承自定义模板(可以复用)或者继承已有实例的配置,也可以从零开始创建
③. — 标签:标记不同的伸缩组,方便分类管理不同的伸缩组(如果想给 ECS 实例打标签,需要通过上述自定义模板配置)
④. — 实例移出策略:阿里云社区文档说明
⑤. — 暂停的流程:伸缩组处理到某个流程时(如扩容),会暂停(扩容),等待管理员处理,处理过后继续执行自动化的伸缩流程(此处理解不是很透彻,可能有偏差)
⑥. — 开启伸缩组保护:开启后,该伸缩组不能通过 API 或者控制台直接删除,必须将删除保护关闭后,才能删除
⑦. — 实例的健康检查:是否对伸缩组内的 ECS 实例做健康检查,将不健康的实例移出伸缩组
⑧. — 组内最小实例数:略
⑨. — 组内最大实例数:略
⑩. — 组内期望实例数:略
— 默认冷却时间:执行了一次伸缩活动(添加或移出 ECS 实例)后,到下一次伸缩活动的冷却时间,目前只针对报警任务触发的伸缩活动有效
⑪. — 网络类型:专有网络(自定义创建)
⑫. — 多可用区扩容策略:下面单独介绍
⑬. — 实例回收模式:释放模式 & 停机回收模式(云盘存储资源等还会计费)
⑭. — 专有网络:需要我们单独创建一个私有 IP 网段,作为专有网络
⑮. — 选择交换机:在专有网络下,创建多个虚拟交换机,此处我创建了三个虚拟交换机,每个虚拟交换机对应不同可用区,即可实现多可用区扩容策略(下面详细说明)
⑯. — 其他:略
多可用区扩容策略
原理:同一个地域内,不同的可用区之间内网是互通的
①. — 优先级策略:当优先级较高的虚拟交换机所在可用区无法创建 ECS 实例时,自动使用下一优先级的虚拟交换机创建 ECS 实例
②. — 均衡分布策略:如图,即平均分配伸缩组 ECS 实例到每一个可用区(需要配置虚拟交换机并通过虚拟交换机通信)
③. — 成本优化策略:略
添加伸缩配置
刚创建好的伸缩组,默认为停用状态
选择添加伸缩配置:
基础配置
系统配置
确认配置
检验配置
启用伸缩组后(等待一会),ECS 实例会自动创建,如下图:
查看详细实例列表内容:
创建伸缩规则
对于 as-003 伸缩组,添加伸缩规则:
伸缩规则的类型:
①. — 简单规则
定义了伸缩组扩缩容的行为,当由报警任务触发时,需要等待冷却时间结束
②. — 目标追踪规则
通过自动计算实例扩缩容数量将指定指标维持在目标值附近
③. — 预测规则
用户可以配置要预测的性能监控,监控目标值等一系列参数,对伸缩组进行预测
④. — 步进规则
根据一组步长调整增加或减少组的当前容量,这些步长调整根据警报违规的大小而变化
创建报警任务
创建报警任务后,默认为已启用状态;
可以看到 as-alert001 状态显示 数据不足,是因为没有 ECS 实例,我停用了这个报警任务监控的伸缩组,并删除了伸缩组下的 ECS 实例
检验报警任务 && 伸缩规则
由于设置了报警任务并绑定触发规则:
①. — 在 CPU 使用率平均值低于 30% 时,会报警
②. — 报警会触发 as-rule003 伸缩规则,减少一台 ECS 实例
等一段时间后,可以观察到 as-003 伸缩组的 ECS 实例已经减少到了最低数量(最小实例数:1)
报警任务详情: