一、什么是弹性伸缩ESS?
估算峰值,采购硬件,安装硬件,如何运维,成本控制......
弹性扩展
弹性伸缩
弹性自愈
ESS介绍:
Elastic Scaling Service,自动调整弹性计算资源大小
伸缩策略
特点:
随需应变
无需担心预测的准确性
自动化
自动创建和释放ECS实例
自动配置SLB和RDS访问白名单
伸缩模式丰富
定时
动态
自定义
固定
健康模式
智能
调度云计算资源
二、ESS相关概念和计费模式
弹性伸缩(Auto Scaling)
根据用户的业务需求和策略
自动调整弹性计算资源的管理服务
业务增长时增加ECS实例,业务下降时减少ECS实例
伸缩组
具有相同应用场景的ECS实例的集合
定义ECS实例的最大值,最小值
伸缩配置
定义弹性伸缩ECS实例的配置信息
伸缩规则
定义扩展或收缩操作
伸缩活动
伸缩规则成功触发后,产生一条伸缩活动
冷却时间
同一伸缩组内,一个伸缩活动执行完成后的一段锁定时间
在这段锁定时间内,该伸缩组不执行其他的伸缩活动
伸缩组包括伸缩配置,伸缩规则,伸缩活动。
伸缩触发任务有定时任务,云监控报警任务等类型。
定时任务独立于伸缩组存在
云监控报警任务独立于伸缩组存在
伸缩规则
伸缩组定义的MinSize和MaxSize判断
伸缩活动
同一申缩组内,同一时刻只能有一个伸缩活动在执行
伸缩活动不可因中断
伸缩组失败时,需保持ECS实例级事务的完整性
弹性伸缩是借助阿里云的RAM服务
冷却时间
伸缩组在冷却时间内,只会拒绝云监控报警任务类型的伸缩活动请求
以伸缩规则的冷却时间为伸缩活动的执行标准
当最后一个ECS实例加入或移除完成后,冷却时间才开始计时
ESS收费
弹性伸缩免费
按照ECS相关实例进行收费
由于某地域云服务器库存不足,启动时间长等导致弹性伸缩实例无法全额弹出
三、ESS伸缩模式及使用限制介绍
ESS伸缩模式
定时模式
自定义自动伸缩发生的时间和频率
动态模式
基于云监控性能指标(CPU利用率),自动增加或减少
固定数量模式
设置最小实例数(MinSize),保证可用性
自定义模式
通过API调用自有监控系统,执行手工伸缩
健康模式
ECS实例为非Running状态,自动移出或释放不健康的ECS实例
多模式并行
以上所有模式可以组合配置。
ESS的限制:
伸缩组内部署在ECS实例的应用必须无状态并且可横向扩展。
弹性伸缩无法自动添加开放缓存(Memcache)实例访问白名单,需要手动添加
无法纵向扩展,即无法自动升降ECS实例的vCPU的规格,内存和带宽
数量限制
伸缩组:20个,每个伸缩组内可创建10个伸缩配置及50个伸缩规则
ECS实例:1000台(包含自动创建的ECS实例,不包含手工添加的ECS实例)
定时任务:20个
四、ESS伸缩组的使用
注意事项
SLB实例:
指定的SLB实例必须是已启用状态;
指定的SLB实例监听端口必须开启健康检查;
SLB的ECS实例权重默认为50。
RDS实例:
指定的RDS实例必须是运行中状态;
RDS实例访问白名单IP个数不能达到上限;
伸缩组只有启用才会生效。
修改伸缩组:
地域、SLB,RDS不可以修改;
伸缩组状态为生效(Active)、失效(Inactive)和删除中(Deleting)三种,只有失效和生效状态才可以修改;
伸缩组的ECS实例数不满足MaxSize或MinSize,弹性伸缩服务会自动加入或移除ECS实例;
查询伸缩组:
启用伸缩组:
伸缩组为失效状态,才可以启用;
伸缩组有生效的伸缩配置,才可以启用;
一个伸缩组在同一时刻只能有一个生效的伸缩配置。
停用伸缩组:
伸缩组没有伸缩活动,才可以停用
伸缩组为生效状态,才可以停用
删除伸缩组:
默认采用强制删除模式
删除伸缩组,包含删除伸缩配置,伸缩规则,伸缩活动,伸缩请求
删除伸缩组,不会删除定时任务,云监控报警任务,SLB实例,RDS实例
OpenAPI删除伸缩组,看到强制删除(ForceDelete)属性,是否强制删除ECS实例
五、ESS使用伸缩配置
查询伸缩配置:
Active生效状态,伸缩组采用生效状态自动创建ECS实例
Inactive失效状态:伸缩组不会采用失效状态的伸缩配置
创建伸缩配置:
自动增加ECS实例的规格信息(CPU、内存、硬盘、网络等)
伸缩配置创建成功,不可以编辑更改
一个伸缩组最多只能创建10个伸缩配置,且仅能有1个伸缩配置处于激活状态
删除伸缩配置:
伸缩配置处于生效状态,不允许删除
某个伸缩配置创建的任意一个ECS实例处于伸缩组中,伸缩配置不允许删除
六、设置伸缩配置和查看伸缩活动
创建伸缩规则:
定义扩张或收缩操作
伸缩组的ECS实例在MaxSize和MinSize范围内
修改、删除伸缩规则:
伸缩活动:
创建、查询、修改、删除
七、事件通知和生命周期挂钩
事件通知:
当伸缩组发生指定类型的伸缩事件或资源变化时,弹性伸缩会发送消息通知云监控或消息服务(MNS)的队列或主题
MNS队列和MNS主题服务没有全覆盖阿里云全地域
事件通知服务是有数量限制,6个
伸缩组原有的配置报警规则不再生效
事件通知的使用:
创建、查询、修改、删除
生命周期挂钩:
当伸缩组发生伸缩活动时,生命周期挂钩会暂停伸缩活动一段时间,伸缩活动进入等待状态。
应用场景:
扩张活动:在等待期间初始化ECS实例配置
收缩活动:获取ECS实例数据
作用时机:
扩张活动:加入RDS、SLB实例IP白名单之前
收缩活动:移除RDS、SLB实例IP白名单之前
每个伸缩组最多可创建6个生命周期挂钩
生命周期挂钩:
创建、查询、修改、删除
八、定时任务和报警任务操作
创建和管理定时任务
每个账户最多能创建20个定时任务
伸缩规则失败,重试过期时间内,会自动重试触发,否则放弃本次定时触发
多个定时任务,会选取最近创建的定时任务执行
创建和管理报警任务
报警任务是基于云监控服务(CMS)运行的
ECS的镜像安装云监控Agent
九、ESS的API
ESS API使用
向服务端发送HTTP GET请求
请求结构
服务地址:ess.aliyuncs.com
通信协议:支持HTTP或HTTPS,推荐HTTPS
请求方法:支持HTTP GET方法发送请求,需要将请求参数包含在请求的URL中
字符编码:UTF-8字符编码
返回格式:XML、JSON,默认是JSON
阿里云API网址:http://api.aliyun.com