讲解阿里云国际 Auto Scaling 伸缩组、配置来源、规则、容量边界、健康检查、冷却时间和缩容保护。
阿里云国际弹性伸缩由伸缩组、实例配置来源、伸缩规则、任务、健康检查和冷却时间共同组成。它只能调整实例容量,不能自动解决本机会话、文件、数据库连接和任务重复执行问题。应用先具备横向扩展条件,伸缩策略才有意义。
适合多数网站的起点:先用已验收镜像和启动模板固化 ECS、系统盘、安全组与 RAM 角色,再在阿里云国际弹性伸缩控制台创建跨至少两个可用区的伸缩组。最小容量覆盖一台故障后的需要,最大容量受预算、数据库连接和配额限制。新增实例、云盘、负载均衡和监控都会计费,缩容会释放实例。

配置前检查应用是否无状态
- Session 放入共享缓存或数据库;
- 上传文件进入 OSS 等共享存储;
- 应用版本能由镜像、启动模板和 User Data 重建;
- 实例缩容前可停止新流量并排空连接;
- 数据库和外部接口能承受扩容后的连接数。
核心对象怎样配合
| 对象 | 职责 | 风险 |
|---|---|---|
| 伸缩组 | 定义最小、最大、期望数量和网络 | 交换机 IP 或可用区库存不足 |
| 实例配置来源 | 启动模板、伸缩配置或现有实例 | 单一规格无库存导致扩容失败 |
| 伸缩规则 | 按指标或固定数量改变容量 | 瞬时指标造成抖动 |
| 任务 | 定时或事件触发规则 | 业务周期与统计窗口不匹配 |
| 冷却时间 | 等待上次伸缩效果反映到指标 | 过短重复扩容,过长响应迟缓 |
容量边界怎么定
最小实例数应覆盖正常基础流量和单实例故障;最大实例数不仅受预算限制,还要考虑交换机地址、ECS 配额、负载均衡后端和数据库承载能力。生产系统不应把最小容量设为零后期待突发请求立即获得实例。
健康检查要区分来源
伸缩组实例状态检查与负载均衡健康检查不是同一层。当前官方资料还提示,创建伸缩组时以负载均衡结果作为实例健康检查需要核对 ALB/NLB 支持范围,不能把 CLB 的行为直接套用。实例被判为不健康可能被移出并释放,维护前应暂停对应流程或设置保护。
冷却、预热和缩容
- 预热时间覆盖镜像启动、User Data、应用启动和缓存加载;
- 扩容可以较积极,缩容使用更长观察窗口;
- 缩容前执行连接排空和生命周期挂钩;
- 设置最低容量避免负载下降时清空关键实例;
- 为扩容和缩容分别创建对应规则。
上线演练
- 用配置来源单独创建实例并验证版本;
- 模拟扩容,记录从触发到健康接流的总时长;
- 检查安全组、RAM 角色、User Data 和日志;
- 模拟缩容,验证连接、队列和本地数据;
- 测试单一规格库存不足时的替代实例类型;
- 核对账单、最大容量和告警。
边界条件
弹性伸缩不等于应用高可用。配额、库存、镜像、vSwitch 地址、负载均衡和依赖服务都会影响伸缩活动。任何自动释放实例的规则都应先验证数据外置和缩容保护。
创建组前让应用可替换
启动脚本必须可重复执行,不含永久密钥、固定主机名和一次性数据库迁移。会话、上传、队列和计划任务不能只在某台实例。镜像要用独立实例验证启动、补丁、Agent 和应用版本。
中文控制台配置顺序
- 创建伸缩组,选择 VPC、多个可用区和移出策略。
- 选择启动模板,核对镜像、规格、盘、安全组和角色。
- 设置最小、期望和最大实例数,先从当前稳定容量开始。
- 关联负载均衡和健康检查,配置监控触发与冷却时间。
不扩容或反复抖动
- 活动显示库存/配额:换兼容规格或可用区并核对额度。
- 新实例不健康:查启动脚本、监听端口、安全组、健康路径和日志。
- CPU低但网站慢:瓶颈可能在数据库、盘或外部 API,应换指标。
- 频繁扩缩:冷却/预热不足或指标受短任务干扰,不能只扩大最大值。
验收和回退
逐步加测试流量,确认活动历史创建实例、负载均衡健康、应用无本机依赖。手动移出一台,验证补回容量;再验证缩容不会丢上传或任务。修改前保存模板版本和三项容量值。异常时暂停动态规则,切回旧模板并恢复期望容量,不在唯一数据副本仍在节点时缩容。
费用上限和下游容量
最大实例数不仅是防止计算账单失控,还要与数据库最大连接、缓存容量、消息消费者和第三方 API 限额匹配。若扩容后所有节点同时建立连接,数据库可能先被压垮。为最大容量计算连接池总数,并设置预算、实例数和失败活动告警。自动扩容只能增加计算节点,不能自动扩展所有下游。
伸缩组创建后给实例、磁盘和活动记录统一标签,方便区分自动创建资源的费用与故障。若一次活动只创建了部分实例,要以活动详情和最终健康容量为准,不能只看规则“执行成功”。

