弹性伸缩是什么
弹性伸缩按指标或时间自动增减实例,并把新实例自动挂到负载均衡后端,高峰扩容、低谷缩容。它靠伸缩组承载:伸缩组定义最小、最大与期望实例数,伸缩配置定义用哪个镜像、规格、安全组和登录方式,伸缩规则定义何时加、加多少、何时减。三厂名称是弹性伸缩 ESS、弹性伸缩 AS、弹性伸缩 AS。
基本信息
| 核心概念 | 伸缩组、伸缩配置(镜像+规格+安全组)、伸缩规则、冷却时间 |
|---|---|
| 触发方式 | 指标触发、定时触发、事件触发 |
| 三厂名称 | 弹性伸缩 ESS / 弹性伸缩 AS / 弹性伸缩 AS |
| 适用 | 无状态 Web/API 服务、批处理 worker |
| 不适用 | 有状态数据库、会话与数据落在本地磁盘的服务 |
典型使用场景
- 日常弹性:白天高峰自动加机器,夜间低谷缩回,控制成本
- 活动保障:大促或发布前预设定时策略,提前把容量顶上去
- 异步任务:消息队列积压时按队列长度扩容 worker
- 故障自愈:实例健康检查失败被移出并替换,维持期望实例数
- 灰度扩容:新镜像先只扩一台验证,通过后再放开伸缩上限
伸缩配置关键参数
伸缩配置关键参数
最小实例数:2 期望实例数:2 最大实例数:10 # 期望值决定常态规模
冷却时间:300 秒 # 两次伸缩之间的静默期,防震荡
扩容规则:CPU 平均 > 70% 持续 5 分钟 → 增加 2 台
缩容规则:CPU 平均 < 30% 持续 10 分钟 → 减少 1 台
新实例预热:加入负载均衡后先通过健康检查再收流量触发方式对比
| 方式 | 触发条件 | 适用场景 |
|---|---|---|
| 指标触发 | CPU/内存/QPS 等持续越线 | 日常弹性,覆盖突发流量 |
| 定时触发 | 按计划时间点调整期望数 | 高峰可预测的业务,如早八点 |
| 事件触发 | 告警事件或队列积压 | 异步任务、消息堆积扩容 |
有状态服务不适合直接伸缩:自建数据库、数据落在本机磁盘的应用,缩容会丢数据。缩容前要先从负载均衡摘流量、等长连接排空、再优雅停机。
冷却时间是防震荡的关键参数,小于业务启动耗时就必然反复扩缩。建议不小于「实例从创建到能接流量」的时间,通常从 3 到 5 分钟起步。