云服务器自动伸缩配置指南:弹性应对流量波动

自动伸缩(Auto Scaling)是云计算的核心优势之一。它让服务器数量随真实流量自动调整,既保证性能又避免资源浪费。

一、自动伸缩的核心概念

1.1 工作模式

流量增长 → 触发扩容 → 增加实例 → 负载降低
流量下降 → 触发缩容 → 减少实例 → 节约成本

1.2 关键组件

组件 说明
启动模板 定义实例配置(AMI、实例类型、安全组)
伸缩组 管理实例组的逻辑集合
伸缩策略 定义何时扩缩容的规则
冷却时间 扩缩容操作后的等待时间

二、AWS Auto Scaling 配置

2.1 创建启动模板

# 启动模板配置
AMI: ubuntu-22.04-lts
Instance Type: t3.medium
Security Group: web-sg
Key Pair: my-key
User Data:
  #!/bin/bash
  systemctl start nginx
  systemctl enable nginx

2.2 创建伸缩组

aws autoscaling create-auto-scaling-group     --auto-scaling-group-name web-asg     --launch-template LaunchTemplateName=web-template     --min-size 2     --max-size 10     --desired-capacity 2     --vpc-zone-identifier subnet-xxx,subnet-yyy

2.3 动态伸缩策略

# CPU 基于的扩容策略
aws autoscaling put-scaling-policy     --auto-scaling-group-name web-asg     --policy-name cpu-scale-up     --scaling-adjustment 1     --adjustment-type ChangeInCapacity     --cooldown 300

# 对应的 CloudWatch 告警
aws cloudwatch put-metric-alarm     --alarm-name cpu-high     --metric-name CPUUtilization     --namespace AWS/EC2     --threshold 70     --period 120

三、阿里云弹性伸缩

3.1 配置步骤

  1. 创建伸缩组
  2. 配置伸缩配置(镜像、规格)
  3. 设置伸缩规则
  4. 创建定时任务或告警任务

3.2 伸缩规则示例

规则名称: cpu-scale-out
触发条件: CPU 使用率 > 75% 持续 5 分钟
动作: 增加 1 台实例
冷却时间: 300 秒

规则名称: cpu-scale-in
触发条件: CPU 使用率 < 30% 持续 10 分钟
动作: 移除 1 台实例
冷却时间: 600 秒

四、最佳实践

实践 说明
设置最小/最大实例数 防止无限扩容
多可用区部署 提高可用性
预热连接 新实例加入 LB 前预热
容量缓冲 预留 20-30% 缓冲容量
定期测试 模拟流量高峰验证伸缩策略