云边日落 风流不在谈锋胜,袖手无言味最长。 (宋·黄昇·鹧鸪天)
博主 云边日落
渝ICP备2021002886号-1渝公网安备50022502000591号博主 11月5日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 4 年 152 天 20 小时 5 分

Powered by Typecho & Sunny

2 online · 41 ms

Title

阿里云——弹性伸缩

酒笙

·

·

183次阅读
云计算
Article
⚠️ 本文最后更新于2021年07月12日,已经过了1228天没有更新,若内容或图片失效,请留言反馈

{mtitle title="弹性伸缩"/}

{lamp/}

阿里云——弹性伸缩

 今天我们来了解一下阿里云的弹性伸缩。

{card-describe title="什么是弹性伸缩?"}

  • 弹性伸缩(Auto Scaling)是一款根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本的一个功能。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。
    {/card-describe}

{card-describe title="为什么要使用弹性伸缩?"}
传统的服务器遇到性能瓶颈之后:

  • 配置如何取舍,是一步到位满足峰值吗?
  • 采购数量过大,资源浪费如何避免?
  • 传统服务器架构无法承担增加的计算需求:只能购买新的服务器资源
  • 估算峰值-采购硬件-安装硬件-运维=成本控制
    {/card-describe}

{card-describe title="弹性伸缩特点"}
随需应变

  • 恰到好处的分配资源
  • 无需担心预测的准确性
  • 无需担心突增的业务变化
    自动化
  • 无需人工干预
  • 自动创建和释放ECS实例
  • 自动配置SLB和RDS访问白名单
    丰富的伸缩模式
  • 多模式兼容,可同时支持定时、动态、自定义、
    固定、健康模式;
  • 可通过API对接外在监控系统
    智能
  • 智能调度云计算资源
  • 满足各种复杂的应用场景需求
    {/card-describe}

{card-describe title="应用场景"}

  • 某视频公司:春晚或每周五热门节目来临时,负载激增,需及时、自动扩展云计算资源。
  • 某视频直播公司:业务负载变化难以预测,需要阿里云自动根据CPU利用率、应用负载、带宽利用率作为衡量指标进行弹性伸缩。
  • 某游戏公司:每天中午12点及晚上6点到9点间需求增长,需要定时扩容。
  • 某电商:在大促中,临时激增大量云服务器需求,需要在数分钟内实现从创建到可用。
    {/card-describe}

弹性伸缩效果演示
Test

相关概念和计费

{card-describe title="名词解释"}
弹性伸缩

  • 可以调整弹性计算资源大小,可满足业务变化。
  • 可以根据设置伸缩策略,业务需求增长的时候自动增加计算能力,在业务需求下降的时候自动减少ECS实例。
    伸缩组
  • 具有相同应用场景的ECS实例集合。
  • 伸缩组定义了组内ECS实例最大和最小值;以及其负载均衡实例和RDS实例。
    伸缩配置
  • 定义了用于弹性伸缩的ECS实例的配置信息
    伸缩规则
  • 扩展/收缩;
    伸缩活动
  • 伸缩规则触发后,产生伸缩活动,用来描述ECS实例变化情况
    冷却时间
  • 同一个伸缩组中,一个伸缩活动执行完成后索性的时间。这段时间内,这个伸缩组不执行其他伸缩组不执行其他伸
    缩活动。
    {/card-describe}

{card-describe title="概念之间的关系"}
伸缩组(管理生命周期)

  • 伸缩配置、伸缩规则、伸缩活动
  • 删除伸缩组会删除
    伸缩触发任务:
    定时任务
  • 定时任务独立于伸缩组。不依赖伸缩组生命周期管理,删除伸缩组不会删除定时任务。
    云监控报警任务
  • 独立于伸缩组存在,不依赖伸缩组生命周期管理,删除伸缩组不会删除定时任务。
    ESS伸缩规则
  • 扩展/收缩 操作,根据定义的MinSize和MaxSize
  • 例子:Max Size=3,实例为2,神作规则的定义为加3台ECS实例,则实际执行过程中,只会增加一台
  • 例子:Max Size=2,实例为3,神作规则的定义为减少5台ECS实例,则实际执行过程中,只会减少一台
    伸缩活动
  • 同一伸缩组内、同一时刻只能有一个伸缩活动在执行
  • 特点:创建过程中不能够停止。
  • 伸缩活动有ECS实例加入伸缩组失败时,需要保持ECS实例级完整程度。例如伸缩组
    收费:
  • 弹性伸缩借助阿里云的RAM服务,通过ECS Open API代替用户弹性伸缩ECS实例资源,所以回滚的资源仍然会被扣费。
    冷却时间
  • 伸缩组在冷却时间内,只会拒绝云监控报警任务类型的伸缩请求;定时任务可以绕过冷却时间。
  • 伸缩规则的冷却时间和伸缩组默认冷却时间同时存在时,以伸缩规则的冷却时间为伸缩活动的执行标准。
  • 最后一个ECS实例接入/移除完成后,整个伸缩组冷却时间才开始倒计时。
  • 停用伸缩组,然后再启用,冷却时间效果将会失效。
    {/card-describe}

{collapse}
{collapse-item label="收费" open}

  • 弹性伸缩免费
  • 通过弹性伸缩自动创建或手工加入的ECS实例,需要按照ECS相关实例类型进行付费。
  • 按量付费ECS关机后仍收取费用,只有释放后不再收费
  • 大型活动期间,存在库存不足的问题(比如双11)
    {/collapse-item}
    {/collapse}

    ESS的伸缩模式和限制

{card-describe title="伸缩模式"}

  • 定时模式:自定义伸缩时间和频率
  • 动态模式:基于云监控性能指标(CMS),自动增加/减少实例
  • 固定数量模式:通过设置最小的实例数量,来保证整体业务可用
  • 自定义模式:通过API调用已有的监控系统,手动添加伸缩。
  • 健康模式:检测ECS状态,如果为非运行/非正常状态,ESS可以释放ECS,同时添加一台正常的ECS实例
  • 多模式并行:以上模式可以组合进行
    {/card-describe}

{card-describe title="ESS的限制"}

  • 伸缩组内部署在ECS实例的应用必须是无状态且可横向扩展。
  • 弹性伸缩是无法自动添加ECS实例到开放缓存(数据库中的产品)实例报名单中,需要自行添加
  • ESS不支持纵向扩展;即弹性伸缩无法自动升降ECS实例的vCPU规格、内存和带宽等配置。
  • 数量限制:伸缩组:20个,每个伸缩组内可创建十个运作配置以及50个伸缩规则
  • ECS实例:一千台(只包含自动创建的ECS实例,不包含手工添加的ECS实例)
  • 定时任务:每个账户只能拥有20个。
    {/card-describe}

    ESS操作使用

{card-describe title="创建伸缩组"}
SLB:

  • 指定的SLB实例必须是已启用状态
  • 指定的SLB实例所配置的监听端口必须开启健康检查,否则创建失败
  • 加入SLB的ECS实例的权重默认为50

RDS:

  • 指定的RDS实例必须是运行状态中的
  • 指定的RDS访问白名单IP个数不能到达上限
  • 创建成功后不会立即生效,只有启用伸缩组后才能接受伸缩组规则触发和执行相关的伸缩活动
    {/card-describe}

{card-describe title="修改伸缩组"}

  • 伸缩组、负载均衡、RDS数据库实例不可修改
  • 伸缩组为生效、失效、和删除三种状态,只有在生效和失效状态下才可以修改伸缩组属性
  • 当伸缩组的ECS实例数不满足修改后的MAX和MIN,弹性伸缩服务会自动加入或移出RCS实例,使得ECS实例数等于MAX或者小于MIN
    {/card-describe}

{card-describe title="启用伸缩组"}

  • 伸缩组为失效状态,才可以启用
  • 当伸缩组失效的伸缩配置时,才可以启用伸缩组
  • 一个伸缩组在同一个时刻只能有一个生效的伸缩配置
    {/card-describe}

{card-describe title="停用伸缩组"}

  • 没有任何伸缩活动时,才能停用
  • 伸缩组为生效状态,才能够停用
    {/card-describe}

{card-describe title="删除伸缩组"}

  • 删除伸缩组,包含删除相关联的伸缩配置、伸缩规则、伸缩活动、伸缩请求信息等
  • 不会删除以下任务或实例,定时任务、云监控报警任务、负载均衡实例、RDS实例
  • 控制台删除,采用强制删除方式
  • 通过Open API方式删除伸缩组时,可以看到强制删除的属性,如果伸缩组ECS实例或者正在进行伸缩活动,是强制删除伸缩组并移出释放ECS实例
    {/card-describe}

    伸缩组配置创建和维护

{card-describe title="创建伸缩配置"}

  • 一旦创建成功不能更改;只能通过创建新的来替换被替换的伸缩配置而添加进组的ECS实例可以正常进行
  • 一个伸缩组最多只能创建十个伸缩配置,且仅只能有一个配置处于激活状态
    {/card-describe}

{card-describe title="删除伸缩配置"}

  • 生效状态中不允许删除
  • 某个伸缩配置创建的ECS实例仍存在于伸缩组中,这个伸缩配置不允许删除。
    {/card-describe}

    事件通知和生命周期挂钩

{card-describe title="事件通知"}

  • 定义:事件通知,当伸缩组发生指定的伸缩事件或资源变化,弹性伸缩会发送消息通知云监控或者信息服务MNS。
  • 消息服务MNS还没有覆盖所有地域
  • 事件通知有数量限制,为6
  • 使用新的事件通知功能后,原有的告警失效
    {/card-describe}

{card-describe title="事件通知类型"}

  • 成功的弹性扩展活动
  • 成功的弹性收缩活动
  • 失败的弹性扩展活动
  • 失败的弹性收缩活动
  • 拒绝弹性收缩活动(冷却时间没到的时候
    {/card-describe}

{card-describe title="生命周期挂钩"}

  • 当伸缩组发生伸缩活动时,生命周期挂钩会暂停
  • 伸缩活动一段时间,伸缩活动进入等待状态
    应用场景
  • 扩张活动时:可以在等待期间初始化ECS实例配置
  • 收缩活动时:获取ECS实例数据
    作用时机
  • 扩张活动:加入RDS、SLB实例IP白名单之前
  • 收缩活动:移除RDS、SLB实例IP白名单之前
  • 每个伸缩组最多创建6个生命周期挂钩
    {/card-describe}

定时任务和报警任务

{card-describe title="定时任务"}
创建和管理定时任务:

  • 每个账户最多能创建20个定时任务
  • 由于伸缩组停用导致定时任务出发执行伸缩失败后,在重试过期时间内,定制任务会自动重新出发,否则会放弃本次触发
  • 同时定义了多个定时任务,执行了同一个伸缩组的伸缩规则后,则最早触发的定时任务会先执行
  • 伸缩活动;注意:同一个伸缩组同一时刻智能有一个伸缩活动,排在后面的定时任务会在重试过时间内自动重试定时触发。过期则不触发如果指定了同一时间的定时任务,则会优先执行先创建的
    {/card-describe}

{card-describe title="报警任务"}
创建和管理报警任务:

  • 报警任务是基于云监控服务(CMS)运行的
  • 如果报警任务名称已经存在,则用新的值对以前旧的值进行替换
  • 在使用报警任务之前,需要在ECS镜像里面安装新版本的云监控Agent
    {/card-describe}
现在已有 0 条评论,0 人点赞
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主