Skip to content

🚀 一、什么是弹性伸缩ESS

弹性伸缩(Elastic Scaling Service,简称ESS,也称为Auto Scaling),是一款可根据您预设的策略自动调整计算资源(ECS/ECI实例)数量的云服务。在业务需求增长时自动扩容保证计算能力,业务需求下降时自动缩容节约成本,帮助企业应对业务流量波动的同时,大幅提升资源利用率、降低IT运维成本。

本章内容以ECS实例为核心示例进行介绍,ECI类型伸缩组的核心逻辑与使用方式与ECS类型保持一致。


1.1 前置概念

阅读本章前,建议您先了解以下基础云产品概念:


1.2 核心价值与优势

弹性伸缩的核心价值在于自动化、降成本、高可用、灵活智能、易审计,核心优势说明如下:

核心优势核心说明
自动化弹性扩张时自动创建实例、关联负载均衡与RDS白名单;弹性收缩时自动移出实例、解除负载均衡与RDS白名单关联,全程无需人工干预
降成本无需提前预留冗余资源应对业务高峰,无需人工值守调整实例数量,按需取用、自动释放,大幅降低资源拥有成本与人力运维成本
高可用内置实例健康检查功能,可自动检测实例运行状态,及时用新实例替换不健康实例,保障业务连续性
灵活智能支持ECS/ECI双实例类型,兼容固定数量、健康、定时、动态、自定义等多种伸缩模式,提供丰富的扩缩容策略与实例模板配置,适配各类复杂业务场景
易审计自动全量记录每一次伸缩活动详情,提供完善的伸缩组监控能力,帮助您快速定位问题根源,实现全流程可追溯

📌 核心价值总结

弹性伸缩的本质是用自动化能力平衡业务可用性与资源成本,既避免了峰值流量下的容量不足,也杜绝了低谷期的资源闲置浪费,同时大幅降低了人工运维的工作量与风险。


1.3 核心功能边界说明

⚠️ 重要功能边界提示

以下是弹性伸缩的核心能力边界,使用前请务必明确,避免因功能认知偏差导致业务异常。

  • 弹性伸缩仅支持ECS/ECI实例数量的自动增减,不支持单个实例的配置变更(如CPU、内存、带宽调整),此类需求可通过阿里云系统运维管理OOS实现。
  • 弹性伸缩的核心功能组件分为必选基础组件与可选扩展组件,具体如下:
功能组件是否必选核心作用
伸缩组必选实例的管理集合,定义实例类型、最大/最小实例数、关联负载均衡/RDS等核心边界属性,是弹性伸缩的基础载体
实例配置来源必选定义弹性扩容时创建实例的模板信息,包括镜像、实例规格、网络、安全组等配置
伸缩规则可选定义扩缩容的具体执行动作,可手动执行,也可被定时任务/报警任务自动触发
定时任务可选按预设时间点/周期自动执行指定伸缩规则,适配有规律的业务波动
报警任务可选基于云监控指标实时监测业务负载,满足阈值条件时自动执行伸缩规则,适配无规律的突发业务波动

弹性伸缩完整使用流程如下图所示:

🖥️ 弹性伸缩使用流程参考

弹性伸缩使用流程


1.4 扩展能力说明

1.4.1 通知能力

伸缩活动执行完成(成功/失败/拒绝)后,弹性伸缩支持通过以下方式发送通知:

通知类型说明
消息通知支持通过短信、站内信、邮件发送伸缩结果通知
事件通知支持发送消息到云监控系统事件、MNS主题/队列,实现伸缩事件的自动化联动处理

1.4.2 实例生命周期管理能力

能力名称核心作用
生命周期挂钩可暂停自动触发的扩缩容活动,让实例处于挂起状态,为您预留自定义操作时间(如预装软件、拷贝日志),超时后再继续执行伸缩流程
手动实例管理支持手动向伸缩组添加/移出/删除ECS/ECI/托管实例,适配混合部署场景
滚动升级仅ECS类型伸缩组支持,可通过任务形式批量更新组内实例的镜像、执行脚本、安装OOS软件包,实现业务的无感发布

1.5 产品计费

💡 计费规则说明

弹性伸缩本身不收取任何服务费用,仅在您使用ECS/ECI实例、RDS、负载均衡、MNS等关联云产品时,按照对应产品的计费规则产生费用。


1.6 使用方式

您可以通过以下三种方式使用弹性伸缩服务,所有方式均共享相同的核心能力:

  1. 弹性伸缩控制台:可视化Web操作页面,地址:essnew.console.aliyun.com
  2. OpenAPI:支持GET/POST请求的RPC风格API,可实现深度的自动化集成
  3. 开发者工具
    • 阿里云CLI:基于API封装的命令行管理工具
    • OpenAPI开发者门户:提供API在线检索、调试、SDK代码自动生成能力

1.7 关联云服务

弹性伸缩可与多款阿里云核心云产品深度联动,构建完整的弹性业务架构,核心关联服务如下:

服务名称与弹性伸缩的关联作用
云服务器ECS 核心计算弹性伸缩核心管理的计算资源,提供可弹性扩展的虚拟机服务
弹性容器实例ECI 容器计算Serverless容器运行服务,可作为弹性伸缩的实例类型,提供更高的弹性和免运维能力
云数据库RDS 数据存储可与伸缩组关联,自动将扩容实例的内网IP添加到RDS访问白名单
负载均衡SLB 流量分发可与伸缩组关联,自动将扩容实例加入后端服务器组,实现流量的均匀分发
云监控CloudMonitor 监控告警为弹性伸缩的报警任务提供监控指标采集、阈值判断能力,是动态伸缩的核心基础
日志服务SLS 日志管理可存储伸缩组内实例的业务日志、运行日志,避免实例缩容释放后日志丢失
轻量消息队列MNS 消息通知用于接收弹性伸缩的事件通知,实现业务系统与伸缩事件的自动化联动

⚙️ 二、核心功能特性


2.1 伸缩组管理

伸缩组是弹性伸缩的核心管理单元,所有实例、配置、规则均基于伸缩组进行管理,核心功能如下:

功能集功能项功能描述
基础生命周期管理创建伸缩组定义实例类型、实例边界、关联资源等核心属性,是使用弹性伸缩的第一步
启用/停用伸缩组启用后伸缩组才可正常执行扩缩容活动;暂时无需使用时可停用,暂停所有自动伸缩动作
修改伸缩组支持修改伸缩组的大部分属性,无需重新创建,适配业务需求变化
删除伸缩组释放伸缩组配额,删除时会同步删除组内的伸缩配置、伸缩规则;开启伸缩组保护后禁止删除
克隆伸缩组基于已有伸缩组快速复制配置,仅需少量适配修改即可完成新伸缩组创建,提升配置效率
查询伸缩组支持查看伸缩组基础信息、实例列表、配置来源、伸缩规则、生命周期挂钩等全量配置
容量管理最大/最小实例数定义伸缩组实例数量的上下限,实例数超限时自动触发扩缩容,确保实例数量始终在合规范围内
期望实例数开启后伸缩组会自动将实例数量维持在期望实例数;支持并行伸缩活动,同一时间可执行多个扩缩容任务,大幅提升伸缩效率
关联资源管理负载均衡关联管理支持为伸缩组添加/移除CLB/ALB/NLB负载均衡实例/服务器组,扩容实例自动加入后端,缩容实例自动移出
RDS实例关联管理支持为伸缩组添加/移除RDS实例,自动管理实例IP在RDS白名单中的增删
高级配置管理扩缩容策略支持按可用区优先级、均衡分布、成本优化等策略选择扩缩容的实例;缩容时可自定义实例移出规则(最早创建/最新创建/最早配置对应实例等)
实例回收模式缩容移出ECS实例时,支持直接释放实例,或触发节省停机效果(仅回收vCPU/内存,保留云盘等资源,降低停机成本)
冷却时间定义伸缩活动完成后的锁定时间,期间拒绝云监控报警任务触发的伸缩请求,避免指标波动导致频繁扩缩容
实例健康检查开启后定期检查实例运行状态,自动判定并移出不健康实例,保障业务可用性
消息通知配置支持配置事件通知与消息接收通知,实时掌握伸缩组动态,实现自动化运维
暂停/恢复伸缩流程支持单独暂停/恢复扩容流程、缩容流程、健康检查、定时任务、报警任务,实现流程级别的精细控制,适配问题排查、压力测试等场景
📖 拓展:伸缩组创建核心必填参数

创建伸缩组时,以下为核心必填参数,需提前规划完成:

  1. 伸缩组名称与所属地域
  2. 实例类型(ECS/ECI)
  3. 实例最大/最小数量边界
  4. 网络配置(专有网络VPC/虚拟交换机)
  5. 实例健康检查配置

2.2 伸缩组内实例管理

功能集功能项功能描述
实例状态管理实例状态调整支持手动将实例转为/移出备用状态、保护状态、停用状态,实现实例级别的精细管控
实例生命周期管理完整覆盖实例从加入伸缩组到移出/释放的全生命周期,包含加入中、服务中、备用中、保护中、移出中、停用中等核心状态,支持通过生命周期挂钩干预生命周期流程
托管实例管理手动添加托管实例支持将非阿里云服务器注册为托管实例后加入伸缩组,实现线下+云上资源的统一弹性管理
移除托管实例支持手动移出/删除伸缩组内的托管实例,不影响实例本身的运行
运维发布滚动升级支持为组内运行中的ECS实例批量更新镜像、执行脚本、安装OOS软件包,实现业务的滚动发布,无需中断服务
监控运维实例数量变化监控支持查看伸缩组内不同状态实例的数量波动情况,实时掌握资源利用情况
实例健康状态监控定期检查实例运行状态,自动识别不健康实例并触发替换,保障业务高可用
手动实例操作手动添加实例将已有的ECS/ECI/托管实例加入伸缩组,可选择是否将实例生命周期托管给伸缩组
手动移出实例将实例从伸缩组移出,不释放实例本身
手动删除实例从伸缩组删除实例,自动创建/已托管的实例会被释放,未托管实例仅被移出

2.3 实例配置来源管理

实例配置来源是弹性扩容时创建实例的模板,核心分为伸缩配置与启动模板两类,核心功能如下:

功能集功能项功能描述
伸缩配置管理创建伸缩配置定义ECS/ECI实例的镜像、规格、存储、网络、安全组、登录凭证等全量配置,是扩容创建实例的核心模板
选用伸缩配置一个伸缩组同一时间仅能有一个生效的伸缩配置,支持切换选用新的伸缩配置,后续扩容按新配置创建实例
修改伸缩配置支持修改已创建的伸缩配置,适配实例配置需求的变化
导入/导出伸缩配置支持导出伸缩配置用于本地备份,或导入到其他伸缩组,大幅提升跨伸缩组的配置效率
删除伸缩配置仅未生效、且无对应自动创建实例的伸缩配置可被删除,释放配置配额
镜像更新支持手动/自动方式更新伸缩配置中的镜像,适配业务迭代与系统更新需求
伸缩配置查询支持查询伸缩配置的全量详情,校验配置准确性
启动模板管理启动模板查询支持基于ECS实例启动模板创建伸缩组,快速复用已有的实例配置

⚠️ 实例配置重要提示

伸缩配置是扩容实例的唯一模板,若配置错误(如镜像不可用、规格无库存、安全组不存在),会直接导致扩容活动失败,修改配置后请务必校验配置的有效性。


2.4 伸缩规则管理

伸缩规则定义了扩缩容的具体执行动作,是触发伸缩活动的核心载体,支持多种规则类型适配不同业务场景,核心功能如下:

功能集功能项功能描述
伸缩规则类型简单规则基础扩缩容规则,支持增加/减少指定数量/比例的实例、或将实例数量调整至指定值;一条规则仅能触发扩容或缩容单一动作
步进规则基于云监控报警的分段扩缩容策略,在简单规则基础上增加分步定义,可根据指标违例规模执行不同的扩缩容动作,实现精细化弹性管理
目标追踪规则基于预设的云监控指标目标值(如CPU使用率50%),自动动态计算需要扩缩容的实例数量,将指标值维持在目标值附近;可自动创建扩容/缩容报警任务,无需手动配置
预测规则基于机器学习分析伸缩组至少24小时的历史监控数据,预测未来48小时的指标值与所需实例数,自动创建定时任务设置伸缩组边界值;支持先预测不伸缩,验证效果后再开启自动伸缩
规则生命周期管理创建/删除伸缩规则可根据业务需求创建不同类型的伸缩规则,不再使用时可删除规则释放配额
执行伸缩规则仅简单规则、步进规则支持手动执行;目标追踪规则、预测规则由弹性伸缩自动执行;手动执行可绕过冷却时间立即触发伸缩活动
查询伸缩规则支持查询伸缩规则的类型、标识符、执行动作、关联报警任务等全量详情

📌 伸缩规则选型建议

  • 简单业务场景:优先使用简单规则,配置门槛低、逻辑清晰
  • 精细化弹性场景:优先使用步进规则,可根据负载超标程度匹配不同的扩缩容力度
  • 稳态业务负载优化:优先使用目标追踪规则,系统自动维持指标在合理区间,无需人工维护阈值
  • 有明确历史规律的业务:优先使用预测规则,提前预留资源,避免峰值容量滞后

2.5 伸缩规则触发方式

弹性伸缩支持定时触发、报警触发、手动触发三种核心方式,适配不同的业务波动场景,核心功能如下:

功能集功能项功能描述
定时触发(适配有规律的业务波动)创建定时任务可设置指定时间点/周期执行伸缩规则,支持按天/周/月循环,或通过Cron表达式自定义循环规则;触发失败后可在LaunchExpirationTime内自动重试
修改定时任务支持修改定时任务的执行时间、循环规则、关联伸缩规则、重试时间等属性,无需重新创建
报警触发(适配无规律的突发业务波动)配置报警任务基于云监控系统指标/自定义指标,实时监测伸缩组负载,满足阈值条件时自动执行关联的伸缩规则;支持多指标组合判断,设置生效周期、统计周期、触发次数等精细化配置
系统监控报警任务以伸缩组为粒度,内置CPU使用率、内存使用率、网络流量、QPS等丰富的系统指标,指标值为组内所有实例的统计结果,无需额外配置采集
自定义监控报警任务支持对接您自主上报至云监控的自定义指标,适配个性化的业务弹性场景
手动触发(适配临时运维场景)手动执行伸缩规则临时需要调整实例资源时,可手动执行伸缩规则;伸缩组无执行中的伸缩活动时,可绕过冷却时间立即执行

2.6 伸缩活动管理

伸缩活动是扩缩容动作的执行记录,完整记录了伸缩触发原因、执行过程、执行结果、实例变化等全量信息,核心功能如下:

功能集功能项功能描述
伸缩活动状态管理伸缩活动状态说明伸缩活动包含拒绝、执行中、成功、警告、失败5种核心状态,可通过状态快速判断伸缩执行结果
ECS实例级回滚伸缩活动中部分实例未能成功加入伸缩组时,仅对失败实例进行回滚,而非整体伸缩活动回滚,最大化保障业务扩容效果
伸缩流程管控暂停/恢复伸缩流程支持单独暂停/恢复扩容、缩容、健康检查、定时任务、报警任务等核心流程,适配问题排查、压力测试等场景,避免自动伸缩干扰运维操作
伸缩活动查询查看伸缩活动详情支持查看伸缩活动的触发原因、起止时间、实例变化详情、状态信息、失败原因等,帮助快速定位伸缩异常问题
📖 拓展:伸缩活动核心状态说明
  1. 拒绝:伸缩活动在请求阶段被拒绝,未执行任何扩缩容动作,可查看拒绝原因定位问题
  2. 执行中:伸缩活动已通过校验,正在执行实例创建/移出操作
  3. 成功:所有目标实例均完成加入/移出操作,伸缩活动正常完成
  4. 警告:部分实例完成加入/移出,部分实例执行失败,仅对失败实例进行回滚
  5. 失败:所有目标实例均未完成加入/移出,伸缩活动整体执行失败

2.7 生命周期挂钩管理

生命周期挂钩是弹性伸缩提供的实例生命周期干预能力,可暂停自动扩缩容活动,为您预留自定义操作时间,核心功能如下:

功能集功能项功能描述
挂钩生命周期管理创建/删除生命周期挂钩可创建针对弹性扩张/弹性收缩活动的生命周期挂钩,单个伸缩组最多可创建10个;不再使用时可删除挂钩释放配额,删除后已挂起的实例会提前结束等待状态
修改生命周期挂钩支持修改挂钩的超时时间、默认执行策略、通知方式等属性,不支持修改挂钩名称
暂停/启用生命周期挂钩业务暂时不需要挂钩时可暂停,需要时重新启用,无需重新创建
查询生命周期挂钩支持查询挂钩的全量配置详情与执行记录
核心配置能力超时时间配置支持设置30秒~6小时的挂起超时时间,需根据自定义操作的耗时合理设置,超时后自动执行默认策略
默认执行策略支持设置继续、拒绝、回滚三种默认策略,定义挂起超时后伸缩活动的执行动作
通知方式支持不通知、MNS主题、MNS队列、OOS模板、事件总线五种通知方式,可实现挂钩触发后的自动化自定义操作

💡 生命周期挂钩典型使用场景

  1. 扩容场景:实例创建后,通过挂钩暂停加入流程,完成业务代码部署、配置初始化、服务启动预热后,再加入负载均衡承接流量
  2. 缩容场景:实例释放前,通过挂钩暂停释放流程,完成业务流量切走、日志备份、数据落盘后,再执行实例释放

2.8 事件通知管理

功能集功能项功能描述
事件通知配置配置事件通知方式支持在发生指定伸缩事件后,自动发送消息到云监控、MNS主题、MNS队列,实现伸缩事件的自动化联动
事件通知场景配置支持指定触发通知的伸缩活动类型,如成功的弹性扩张、失败的弹性收缩、拒绝的伸缩活动等,按需配置通知场景
删除事件通知不再使用的事件通知可直接删除,释放通知配额(单个伸缩组最多6个事件通知)

2.9 配额管理

弹性伸缩的各类资源使用存在数量配额限制,您可前往阿里云配额中心查看当前配额值,也可提交申请提升配额。


2.10 开源与生态

弹性伸缩支持通过Terraform进行基础设施即代码(IaC)管理,可通过Terraform代码安全高效地创建、配置、管理弹性伸缩资源。

💡 三、产品核心优势


3.1 全流程自动化,零人工干预

弹性伸缩可实现扩缩容全流程自动化,无需人工值守操作,彻底避免手动操作带来的人为失误与响应延迟。

  • 弹性扩张自动化:自动按模板创建实例、挂载负载均衡后端、添加RDS白名单,实例就绪后自动接入流量;
  • 弹性收缩自动化:自动将实例从负载均衡后端摘除、从RDS白名单移除,再执行实例移出/释放,避免业务中断;
  • 故障自愈自动化:自动检测实例健康状态,发现不健康实例后自动创建新实例替换,保障业务连续性。

3.2 极致成本优化,按需取用资源

弹性伸缩从资源成本与人力成本两个维度,帮助企业实现极致的成本优化。

  • 资源成本优化:无需提前预留大量冗余实例应对业务高峰,业务低谷时自动释放空闲资源,按实际业务需求使用计算资源,大幅降低闲置资源成本;
  • 人力成本优化:无需运维人员7*24小时值守应对业务波动,无需人工批量创建/释放实例,大幅降低运维人力投入,让运维人员聚焦更核心的业务价值。

3.3 企业级高可用,保障业务连续性

弹性伸缩从多个维度保障业务的高可用性,避免单点故障与容量不足导致的业务中断。

  • 健康检查与故障自愈:定期检测实例运行状态,自动替换不健康实例,即使单台实例故障,也能快速完成自愈,不影响整体业务服务能力;
  • 多可用区均衡部署:支持跨多个可用区均衡分布实例,单个可用区故障时,可自动在其他可用区扩容实例,实现可用区级别的容灾;
  • 多实例规格容错:伸缩配置支持配置多个实例规格、多个磁盘类型,单个规格库存不足时,自动使用其他规格创建实例,大幅提升扩容成功率。

3.4 灵活智能的策略体系,适配全场景业务需求

弹性伸缩提供丰富的伸缩模式与策略体系,可灵活组合适配各类业务场景,无论是有规律的周期波动、无规律的突发流量,还是稳态业务的高可用保障,都能完美适配。

  • 多伸缩模式兼容:支持固定数量、健康、定时、动态、自定义模式同时配置,多模式并行生效,互不干扰;
  • 丰富的扩缩容策略:支持按成本优化策略(优先使用单价最低的实例)、可用区优先级策略、均衡分布策略等,可自定义实例移出规则,满足企业个性化的资源管理需求;
  • 智能预测伸缩:基于机器学习算法,自动分析历史业务数据,预测未来的流量趋势与实例需求,提前创建实例预留资源,避免突发流量带来的容量滞后问题。

3.5 全链路可审计,运维排查高效

弹性伸缩提供全流程的可观测与可审计能力,帮助运维人员快速掌握伸缩动态、定位问题根源。

  • 全量伸缩活动记录:自动记录每一次伸缩活动的触发原因、执行时间、实例变化、执行结果、失败原因等全量信息,实现伸缩行为的全程可追溯;
  • 完善的监控能力:与云监控深度集成,可实时查看伸缩组内实例数量变化、指标监控、伸缩事件等,无需逐台查看实例状态;
  • 多渠道通知告警:支持通过短信、邮件、站内信、MNS等多渠道发送伸缩事件通知,让运维人员实时掌握伸缩组动态,及时响应异常问题。

📖 四、典型应用场景


4.1 无规律的突发业务量波动

场景特征:业务流量突增/突降的时间不可预测,如新闻网站的热点事件、电商平台的突发促销、直播平台的流量爆发等,手动调整实例无法保障及时性,且调整数量难以精准把控。

解决方案:利用弹性伸缩的报警任务,基于业务核心指标实现自动化动态扩缩容。

📌 场景落地方案

  • 方案1:配置两条简单规则+报警任务,CPU使用率>70%时自动增加3台实例,CPU使用率<30%时自动减少3台实例;
  • 方案2:配置一条目标追踪规则,自动将实例的CPU使用率维持在50%左右,无需手动配置扩容/缩容的阈值与规则。

4.2 有规律的业务量波动

场景特征:业务流量波动有明确的时间规律,如游戏公司每天18:00-22:00为业务高峰、办公系统工作日9:00-18:00需要更高容量、视频平台每周五晚间流量激增等,每天手动调整实例浪费大量人力与时间成本。

解决方案:利用弹性伸缩的定时任务,按业务规律预设扩缩容时间与动作。

📌 场景落地方案

示例:设置两条定时任务,每天17:55自动增加3台实例应对晚间高峰,每天22:05自动减少3台实例释放空闲资源,既保障高峰业务容量,又避免低谷资源浪费。


4.3 无明显业务量波动的稳态业务高可用保障

场景特征:业务全天运行,流量无明显波动,但需要保障业务的持续可用性,如企业官网、通信支撑系统、内部管理系统等,若现有实例突发故障,会导致业务中断,且难以及时修复替换。

解决方案:利用弹性伸缩的健康模式+固定数量模式,开启实例健康检查,设置最小实例数保障业务基础容量。

📌 场景落地方案

示例:设置伸缩组最小实例数/期望实例数为2台,开启健康检查,弹性伸缩会始终保持组内有2台健康实例运行;若其中1台实例故障,会自动被移出,并创建新的健康实例替换,实现故障自愈,保障业务持续可用。


4.4 混合型业务场景

场景特征:业务场景复杂,既有稳态的基础流量,又有波动的突发流量,如企业已采购包年包月实例承载基础流量,仅需针对波动的流量部分进行弹性调整,同时需要兼顾故障自愈与突发流量应对。

解决方案:手动将包年包月实例加入伸缩组(不托管生命周期),结合报警任务+定时任务+健康检查,实现混合部署场景的统一弹性管理。

📌 场景落地方案

示例:将3台包年包月实例加入伸缩组作为基础容量,配置报警任务在CPU使用率>80%时自动扩容按量付费实例,CPU使用率<30%时自动缩容;同时开启健康检查,包年包月实例故障时自动用按量实例临时替换,既保障了基础容量的成本最优,又实现了波动流量的弹性应对。

🔍 五、工作原理

本章以ECS类型伸缩组为例,介绍弹性伸缩的核心工作流程、伸缩模式配置与核心原理,ECI类型伸缩组的工作原理完全一致。


5.1 核心工作流程

弹性扩容的核心工作流程如下,缩容流程为反向逻辑:

🖥️ 弹性扩容工作流程参考

弹性扩容工作流程

以典型的Web三层架构(负载均衡-应用服务器-数据库)为例,弹性伸缩的完整执行步骤如下:

5.1.1 触发条件匹配,执行伸缩模式

弹性伸缩实时检测各伸缩模式的触发条件,满足条件时触发对应伸缩活动。支持6种伸缩模式,且可多模式并行配置,具体如下:

伸缩模式核心说明
固定数量模式基于最小/最大/期望实例数,自动将实例数量维持在设定范围内,是伸缩组的基础模式
健康模式开启健康检查后,定期检测实例运行状态,自动移出不健康实例并补充新实例
定时模式基于定时任务,在预设时间点执行指定伸缩规则,适配有规律的业务波动
动态模式基于报警任务,云监控指标满足阈值时自动执行伸缩规则,适配无规律的突发流量
自定义模式支持手动执行伸缩规则、手动添加/移出/删除实例,适配临时运维场景
多模式并行组合各伸缩模式的配置方式,各模式互相独立,无优先级区分,先触发的模式先执行,可同时配置多种模式适配复杂业务场景

5.1.2 调用执行接口,解析伸缩规则

系统通过ExecuteScalingRule接口执行伸缩活动,接口传入伸缩规则的唯一标识符ScalingRuleAri,解析获取伸缩规则、伸缩组、实例配置的全量信息。

  • 控制台操作:可在伸缩规则详情页查看ScalingRuleAri
  • API操作:可调用DescribeScalingRules接口查询伸缩组下所有规则的ScalingRuleAri

5.1.3 创建伸缩活动,校验执行条件

基于解析后的信息,创建伸缩活动,校验伸缩组状态、实例数量边界、是否有执行中的非并行伸缩活动等条件,校验通过后正式执行伸缩动作。

  • 开启期望实例数的伸缩组:支持并行伸缩活动,可同时执行多个并行伸缩任务;
  • 未开启期望实例数的伸缩组:同一时间只能执行一个伸缩活动,后续任务会在重试窗口期内自动重试。

5.1.4 执行实例操作,配置关联资源

  • 扩容场景:按伸缩配置创建指定数量的ECS实例,将实例内网IP添加到关联RDS的访问白名单,将实例加入关联负载均衡的后端服务器组;
  • 缩容场景:将待移出实例从负载均衡后端服务器组摘除,从RDS白名单中移除实例IP,再执行实例的移出/释放操作。

5.1.5 完成伸缩活动,启动冷却时间

伸缩活动执行完成后,更新伸缩组实例数量,启动伸缩组冷却时间;冷却时间内,拒绝云监控报警任务触发的伸缩请求,避免指标波动导致频繁扩缩容。


5.2 伸缩模式的配置方式

不同伸缩模式对应不同的最小配置单元,具体配置方式与说明如下:

伸缩模式核心配置方式配置说明
固定数量模式伸缩组+实例配置来源必选基础配置,伸缩效果由最小/最大/期望实例数决定,是所有伸缩模式的基础
健康模式伸缩组+实例配置来源需开启伸缩组的实例健康检查配置项,开启后自动生效
定时模式伸缩组+实例配置来源+伸缩规则+定时任务在基础配置上,创建伸缩规则与定时任务,由定时任务触发规则执行
动态模式伸缩组+实例配置来源+伸缩规则+报警任务在基础配置上,创建伸缩规则与报警任务,由报警任务触发规则执行
自定义模式任意伸缩模式的配置方式无论是否配置其他模式,都支持手动执行伸缩规则、手动管理实例
多模式并行组合各伸缩模式的配置方式各模式互相独立,无优先级区分,先触发的模式先执行,可同时配置多种模式适配复杂业务场景

5.3 核心场景原理示意图

5.3.1 弹性扩容示意图

🖥️ 弹性扩容原理参考

弹性扩容示意图

用户请求经负载均衡分发到伸缩组内的ECS实例,当业务负载满足扩容条件时,弹性伸缩自动创建新的ECS实例,加入负载均衡与RDS白名单,承接业务流量,提升整体服务能力。

5.3.2 弹性缩容示意图

🖥️ 弹性缩容原理参考

弹性缩容示意图

当业务负载降低满足缩容条件时,弹性伸缩自动将待释放实例从负载均衡与RDS白名单中移除,再执行实例释放,释放空闲计算资源,降低使用成本。

5.3.3 弹性自愈示意图

🖥️ 弹性自愈原理参考

弹性自愈示意图

弹性伸缩定期检测实例健康状态,发现不健康实例后,自动创建新的健康实例替换故障实例,保障伸缩组内始终有足够的健康实例承接业务流量,实现业务故障自愈。

⚠️ 六、使用限制


6.1 功能限制

⚠️ 核心功能限制说明

以下限制为弹性伸缩的硬性约束,使用过程中需严格遵守,否则可能导致业务异常或伸缩活动失败。

  1. 部署在伸缩组内实例上的应用,必须是无状态、可横向扩展的,因为伸缩组内的实例可能被自动释放,不适合保存会话记录、应用数据、日志等本地状态信息;如需保存,建议将会话存入独立状态服务器,应用数据存入RDS,日志存入日志服务SLS。
  2. 弹性伸缩不支持自动将实例IP添加到Memcache实例的访问白名单,需您手动配置。
  3. 若伸缩组关联的RDS实例、负载均衡实例/服务器组被删除,伸缩组会自动解除与该资源的关联。
  4. 若伸缩组的自动伸缩活动连续失败超过30天,系统会自动暂停该伸缩组的自动触发伸缩功能,并通过短信/邮件通知您,建议您及时登录控制台处理异常。
  5. 定时任务的LaunchTime不能设置为自创建当天起90日后的时间,循环执行的结束时间RecurrenceEndTime不能设置为自创建当天起365日后的时间。
  6. 仅简单规则、步进规则支持手动调用ExecuteScalingRule接口执行,目标追踪规则、预测规则不支持手动执行,由系统自动触发。
  7. 包年包月ECS实例可加入伸缩组,但不支持将生命周期托管给伸缩组,缩容时仅会被移出伸缩组,不会被释放。

6.2 数量限制(配额限制)

单个阿里云账号使用弹性伸缩时,核心资源的数量配额如下,配额值可前往阿里云配额中心查看与申请提升:

配额项默认配额值
单个地域下的伸缩组总数以配额中心展示为准,支持手动申请提升
单个伸缩组内的伸缩配置总数10个
单个伸缩组内的伸缩规则总数50条
单个伸缩组可关联的RDS实例总数5个
单个伸缩组可关联的负载均衡实例总数5个
单个伸缩组可关联的ALB/NLB服务器组总数5个
单个伸缩组可关联的虚拟服务器组总数5个
单个伸缩组可设置的组内最大实例数2000台
单个地域下的定时任务总数以配额中心展示为准,支持手动申请提升
单次自动扩缩容可加入/删除的实例总数1000台
单个伸缩配置中的多实例规格总数20个
单个伸缩组内的事件通知总数6个
单个伸缩组内的生命周期挂钩总数10个

📌 七、核心基本概念

本章列举弹性伸缩使用过程中的核心概念,帮助您快速理解产品逻辑:

核心概念概念说明
弹性伸缩ESS阿里云提供的自动调整计算资源数量的云服务,可根据业务需求和预设策略,自动增加/减少ECS/ECI实例数量,保障业务需求的同时优化资源成本
伸缩组具有相同应用场景、相同实例类型的实例集合,是弹性伸缩的核心管理单元,定义了组内实例的最大/最小值、关联资源、伸缩策略等核心属性
ECS实例阿里云提供的云服务器,等同于一台虚拟服务器,包含CPU、内存、操作系统、网络、磁盘等基础计算组件,是弹性伸缩最常用的实例类型
弹性容器实例ECI阿里云提供的Serverless容器运行服务,无需管理底层服务器,只需提供容器镜像即可运行,适配容器化业务的弹性伸缩场景
负载均衡SLB对流量进行按需分发的服务,通过将流量分发到不同的后端实例来扩展应用系统的服务吞吐能力,消除单点故障,分为ALB、NLB、CLB三种类型
RDS实例阿里云提供的在线云数据库服务,可与伸缩组关联,弹性伸缩自动管理扩容/缩容实例的IP在RDS白名单中的增删
伸缩模式弹性伸缩触发扩缩容的方式,包括固定数量模式、健康模式、定时模式、动态模式、自定义模式、多模式并行
实例配置来源弹性扩容时创建实例的模板,分为伸缩配置和实例启动模板两类,定义了实例的镜像、规格、网络、安全组等全量配置信息
伸缩配置弹性伸缩提供的实例模板类型,专门适配弹性伸缩场景,可定义实例创建的全量配置信息
伸缩规则定义扩缩容具体执行动作的规则,分为简单规则、步进规则、目标追踪规则、预测规则四类,可手动执行,也可被定时/报警任务自动触发
自动触发任务分为定时任务和报警任务两类,定时任务按预设时间执行伸缩规则,适配有规律的业务波动;报警任务基于云监控指标动态执行伸缩规则,适配无规律的突发流量
伸缩活动记录伸缩组内实例数量、边界值、期望实例数变化的执行记录,执行伸缩规则、修改伸缩组边界值等操作均会触发伸缩活动,完整记录了伸缩动作的全流程信息
期望实例数伸缩组的可选配置项,开启后伸缩组会自动将实例数量维持在期望实例数;同时支持并行伸缩活动,大幅提升伸缩效率
并行伸缩活动开启期望实例数后支持,手动执行规则、定时任务、手动添加/移出实例、健康检查等触发的伸缩活动为并行伸缩活动,可同时执行多个并行伸缩任务
非并行伸缩活动云监控报警任务触发的伸缩活动为非并行伸缩活动,有执行中的非并行伸缩活动时,不能触发其他伸缩活动
生命周期挂钩可暂停自动触发的扩缩容活动,让实例处于挂起状态,为您预留自定义操作时间(如预装软件、日志拉取),超时后再继续执行伸缩流程
冷却时间伸缩活动成功完成后的一段锁定时间,期间伸缩组会拒绝云监控报警任务触发的伸缩请求,避免监控指标波动导致频繁扩缩容