华为云AS弹性伸缩实操:结合ELB实现业务高峰自动扩容、低谷自动缩容

举报
yd_244253482 发表于 2026/11/07 07:24:54 2026/11/07
【摘要】 很多业务的负载并不是一条平稳的直线:电商在大促和整点秒杀时流量陡增,企业办公系统在早晚高峰更忙,而到了深夜请求量又跌到谷底。如果按峰值固定购买 ECS,平时大量算力闲置、成本居高不下;按平均值购买,又会在高峰时响应变慢甚至雪崩。华为云弹性伸缩(Auto Scaling,简称 AS)正是为解决这个矛盾而生——它能根据监控指标或定时计划,自动增加或减少伸缩组内的 ECS 实例,并把新实例自动加入...

很多业务的负载并不是一条平稳的直线:电商在大促和整点秒杀时流量陡增,企业办公系统在早晚高峰更忙,而到了深夜请求量又跌到谷底。如果按峰值固定购买 ECS,平时大量算力闲置、成本居高不下;按平均值购买,又会在高峰时响应变慢甚至雪崩。华为云弹性伸缩(Auto Scaling,简称 AS)正是为解决这个矛盾而生——它能根据监控指标或定时计划,自动增加或减少伸缩组内的 ECS 实例,并把新实例自动加入弹性负载均衡(ELB)的后端,做到"高峰扛得住、低谷不浪费"。本文记录一次完整的 AS 配置实操与踩坑经验。

一、先搞懂几个核心概念

动手之前先理清 AS 的几个关键对象,它们之间是"模板—组—策略"的关系:

  • 伸缩配置(Scaling Configuration):定义新实例的"模具",包括镜像、规格、系统盘、密钥对、安全组、用户数据注入等。伸缩组扩容时就按它来批量创建 ECS。
  • 伸缩组(Scaling Group):一组同构 ECS 的逻辑集合,需要指定最小实例数、最大实例数、期望实例数,以及可用区、子网和关联的 ELB 监听器。
  • 伸缩策略(Scaling Policy):触发扩缩容的规则,分告警策略(按 CPU、内存等指标)、定时策略(到点执行)和周期策略(按天/周/月重复)。
  • 冷却时间(Cooldown):一次扩缩容动作结束后的锁定窗口,期间不再响应新的告警,避免实例还没完全启动就被重复触发。

二、实操准备

本次目标是搭建一个能自动扩缩容的 Web 集群,提前准备好以下资源:

  1. 一台已配置好的 ELB,并创建 HTTP(80 端口)监听器和后端服务器组,健康检查路径设为 /health;
  2. 一个安装好 Web 服务的私有镜像。建议先在一台 ECS 上把 Nginx、应用和健康检查页面调通,再制作整机镜像,保证新扩容实例"开机即用";
  3. 放通 80 端口和健康检查网段的安全组,以及实例能访问云监控(Cloud Eye)上报指标的网络;
  4. 规划实例数量区间:本例设最小 1 台、期望 2 台、最大 5 台,既保证基线可用,又给扩容留足上限。

三、创建伸缩配置

进入 AS 控制台,先在"伸缩配置"页签点击创建。镜像选择上一步制作的整机私有镜像,规格选与负载匹配的通用计算型(如 s 系列),密钥对或密码按团队规范填写,安全组勾选与 ELB 后端一致的那一个。这里有个实用细节:可以展开"高级配置",通过"用户数据注入"写入一段启动脚本,让实例首次开机时自动拉取最新配置或注册服务,减少人工干预。创建完成后记住这份配置,后续伸缩组要引用它。

四、创建伸缩组并关联 ELB

新建伸缩组时重点配置以下几项:

  • 最大实例数 5、最小实例数 1、期望实例数 2,保存后 AS 会自动把实例补齐到期望的 2 台;
  • 选择多个可用区和对应子网,配合默认的"均衡分布"策略,把实例分散到不同 AZ,提升可用性;
  • 在负载均衡配置里关联已有的 ELB 和后端服务器组,开启"后端服务器组权重"。这样新实例创建并通过健康检查后,会被自动加入后端转发流量;缩容时则先从 ELB 摘除再释放,避免直接断连;
  • 健康检查方式建议选"弹性伸缩健康检查",实例异常会被自动替换。

五、配置告警策略,让扩容跟着负载走

这是 AS 最核心的能力。新建一条告警扩容策略,触发条件设为"组内实例平均 CPU 使用率 ≥ 70% 且持续 3 个周期(每周期 60 秒)",执行动作选择"增加 1 台实例",冷却时间设为 300 秒。再建一条反向的缩容策略:平均 CPU ≤ 30% 持续 3 个周期时"减少 1 台",冷却时间可以适当拉长到 600 秒。之所以扩缩容用不对称的阈值和冷却时间,是为了形成滞回区间,避免指标在临界值附近抖动导致实例频繁增减。

策略保存后 AS 会自动在云监控 Cloud Eye 里创建对应的告警规则,无需手动再配。

六、用定时策略应对可预期的流量

对于大促开场、每天早高峰这类"提前知道"的负载,光靠告警会有几分钟的反应延迟,更适合用定时策略提前备好资源。例如设置工作日每天 08:50 把期望实例数调整为 4,21:00 再调回 2。定时策略和告警策略可以共存:定时策略保底,告警策略兜底,既不错峰也不浪费。

七、验证与冷却机制

配置完成后做一次压测验证:用压测工具对 ELB 的 EIP 持续施压,观察 Cloud Eye 中 CPU 曲线上升到阈值后,AS 是否在几分钟内自动新增实例,且新实例通过健康检查出现在 ELB 后端;停止压测后,再确认实例数随 CPU 回落而自动减少。整个过程在"伸缩活动"页签都能看到成功或失败的记录,是排查问题的第一入口。

八、常见坑与最佳实践

  • 新实例收不到流量:多半是镜像里的服务没自启、健康检查路径不通,或安全组没放通,导致 ELB 健康检查一直失败。务必先用单台实例验证镜像和健康检查。
  • 缩容把有状态节点删了:AS 适合无状态应用。会话、文件等状态要放到 RDS、OBS、分布式缓存(DCS)里,让任何一台实例都能被随时替换。
  • 告警频繁抖动:合理设置持续周期、冷却时间和扩缩容阈值差,不要用同一个临界值既扩又缩。
  • 释放方式选"手动移出的实例才保留":默认缩容会直接释放实例,若需要留存排查可调整移出策略,但要注意成本。

总结一下,AS 的价值不只是"自动加机器",而是把实例的生命周期管理、ELB 流量调度和 Cloud Eye 监控串联成一个闭环。配合无状态改造和标准化镜像,就能用接近平均水平的成本,扛住峰值的流量,这也是云上弹性架构最典型的落地方式之一。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。