首页/云/云平台与虚拟化速查/autoscaling 弹性伸缩概念

autoscaling 弹性伸缩概念

弹性伸缩按规则自动增减实例,让计算容量跟随业务负载;由伸缩组、伸缩配置(或启动模板)与伸缩规则三部分组成。

云平台与虚拟化速查云更新于 2026-10-13

弹性伸缩是什么

弹性伸缩按规则自动增减实例数量,让计算容量跟随业务负载变化:负载升高时按模板创建新实例并挂到负载均衡后端,负载回落后缩容并释放实例。它由三部分组成——伸缩组定义数量边界与扩容范围,伸缩配置或启动模板定义新实例长什么样,伸缩规则定义何时触发。

基本信息

伸缩组设置最小、期望与最大实例数,并绑定可用区与负载均衡后端
伸缩配置定义新实例的镜像、规格、密钥、安全组与初始化数据
伸缩规则按监控指标、定时任务或目标追踪触发扩缩容
冷却时间两次伸缩之间的等待窗口,避免指标抖动引发反复扩缩
实例来源扩容产生的多为按量实例;也可把已有包年实例手动加入伸缩组
健康检查负载均衡与伸缩组各自的健康检查都会触发替换不健康实例

三类触发方式的差别

方式触发依据适合场景
指标触发CPU、内存或自定义监控超过阈值日间波动明显、峰值可预测
定时触发按计划在指定时间调整容量有明显作息规律,如白天扩容、夜间缩容
目标追踪设定目标值,系统自动维持指标平稳但流量不规律的业务

典型使用场景

  • 面向公众的 Web 服务:白天扩容、夜间缩容,压住峰谷差
  • 定时任务集中期:在批处理时段临时扩到更大规模,跑完自动回收
  • 压测与活动大促:提前按计划扩容,活动结束后快速缩回
  • 无状态服务的容灾:实例被替换或可用区异常时自动补足数量

伸缩前先确认的两件事

伸缩前先确认的两件事
aliyun ess DescribeScalingGroups --RegionId cn-hangzhou    # 查看伸缩组与当前实例数
aliyun ess DescribeScalingInstances --ScalingGroupId asg-bp1xxxx   # 查看组内实例状态
# 确认负载均衡后端是否已绑定,未绑定时扩容出的实例不会接流
aliyun slb DescribeLoadBalancerAttribute --LoadBalancerId lb-bp1xxxx
# 华为云与腾讯云对应 AS 与伸缩组接口,字段名不同但概念一致
扩容速度取决于镜像启动与初始化脚本:启动脚本越重,新实例接流越慢。把常用环境预置进自定义镜像,只保留必要的个性化初始化,可以明显缩短扩容到接流的时间。
最大实例数是最重要的安全阀:指标配置错误或外部攻击引发异常流量时,容量会一路扩到上限产生高额账单。除了设置上限,还要给伸缩活动配告警,异常扩容能被及时发现。
缩容会终止实例,应用必须能在收到终止信号后优雅摘除:先把自身从注册中心或后端池摘除,等待在途请求处理完再退出。没有这套机制时,缩容会直接表现为用户请求失败。

易错点

  • 伸缩组最大实例数设置过大:异常指标触发大量扩容,短时间内产生难以回收的成本
  • 缩容直接终止实例而应用未做优雅下线:在途请求丢失,用户侧看到报错
  • 健康检查与业务可用性不一致:只检查端口存活,进程假死时不会触发替换
  • 新实例没有挂到负载均衡或未加入注册中心:扩容了但流量根本没进来
  • 冷却时间设置过短:指标抖动导致反复扩缩,实例创建与销毁的成本高于收益

数据来源与参考

  • 阿里云 弹性伸缩文档
  • 腾讯云 弹性伸缩文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌