当前位置: 首页 > news >正文

为什么需要 Auto Scaling详细介绍

一、为什么需要 Auto Scaling(背景)

1️⃣ 高可用 ≠ 高扩展

多一台服务器 → 提高可用性(Availability)

流量暴增 → 仍可能因为容量不足而宕机

所以要解决的是容量问题(Scalability)

二、两种系统架构对比

1️⃣ Active-Passive(主备)

特点

  • 一台 Active 接流量

  • 一台 Passive 备用

  • 出问题 → 切换

  • 扩展方式:Vertical Scaling(纵向扩展)

什么是纵向扩展?

  • 把服务器“变大”

  • 换更大的实例类型

例如:t2.micro → t3.large

问题

  • 必须停机才能改实例类型

  • 完全是 手工操作

  • 有 硬上限

  • 超过上限 → 需要拆系统、重构应用

❌ 不适合云环境
❌ 不适合突发流量

2️⃣ Active-Active(多活)

特点

  • 多台服务器 同时接流量

  • 所有实例地位相同

  • 前面通常有 Load Balancer

扩展方式:Horizontal Scaling(横向扩展)

什么是横向扩展?

  • 加机器 / 减机器

  • 2 台 → 4 台 → 10 台

不改应用逻辑

✅ 云原生
✅ 弹性
✅ 自动化

三、无状态(Stateless)是关键前提

为什么 Active-Active 要求 Stateless?

不把 Session 存在 EC2 本地

数据存在:
  • DynamoDB

  • S3

  • RDS

  • ElastiCache

这样:

任意实例都能处理请求

扩容 / 缩容不影响用户

四、Amazon EC2 Auto Scaling 是什么?

一句话定义(面试版)

Amazon EC2 Auto Scaling 是一个根据 CloudWatch 指标,自动添加或移除 EC2 实例,以保持性能稳定并降低成本的服务。

Auto Scaling 解决的两个核心问题

问题解决
流量变化自动扩 / 缩
实例故障自动替换

既负责扩展,又负责高可用

五、ELB + Auto Scaling 的关系

1️⃣ 为什么要配合 ELB?

Auto Scaling:管数量

ELB:管流量

它们分工明确。

2️⃣ ELB 的健康检查(Health Check)

ELB 只会把流量转发给 健康实例

支持两种健康检查方式

1️⃣ TCP

能否建立连接

不关心应用逻辑

2️⃣ HTTP / HTTPS

请求指定路径

判断 HTTP 返回码(如 200)

👉 生产中更推荐 HTTP/HTTPS

3️⃣ 自动联动机制

ASG 新建实例 → 自动注册到 Target Group

ASG 删除实例 → 自动从 Target Group 移除

不健康 → ELB 不转发流量

六、传统扩展 vs Auto Scaling

传统方式(On-Prem 思维)

  • 为 峰值 买服务器

  • 夜间 / 低峰 → 大量闲置

  • 成本高、浪费严重

Auto Scaling(云思维)

  • 按需创建

  • 按秒/分钟计费

  • 自动应对突发流量

用多少,付多少

七、EC2 Auto Scaling 的三大组件(必背)

1️⃣ Launch Template(启动模板)

作用

定义 EC2 如何被创建

包含内容

  • AMI

  • 实例类型

  • 安全组

  • EBS

  • IAM Role

  • User Data

特点

  • 支持版本控制

  • 可回滚

  • 推荐使用(替代 Launch Configuration)

2️⃣ Auto Scaling Group(ASG)

作用

定义 在哪里、以多少规模运行 EC2

关键配置

  • 部署位置

  • VPC

  • Subnets(至少两个 AZ)

购买方式

  • On-Demand

  • Spot

  • 混合

容量三要素(面试高频)

参数含义
Minimum永远保持的最少实例数
Maximum成本和容量上限
Desired当前希望运行的实例数

ASG 的默认行为

  • 扩容 → 用 Launch Template 创建新实例

  • 缩容 → 默认删除最旧实例

  • 实例不健康 → 自动替换

3️⃣ Scaling Policies(扩展策略)

决定:什么时候扩 / 缩

基于:

CloudWatch Metrics

CloudWatch Alarms

八、三种 Scaling Policy 对比(重点)

1️⃣ Simple Scaling

  • 一个 Alarm → 一个动作

  • 有 cooldown

  • 不灵活

示例:

CPU > 65% → +1 实例

2️⃣ Step Scaling

不同阈值 → 不同扩展幅度

示例:

  • CPU > 85% → +2

  • CPU > 95% → +4

3️⃣ Target Tracking

思想

你只告诉我目标,我自动调

示例:

平均 CPU = 60%

AWS 自动:

  • 创建 alarms

  • 扩 / 缩实例

✅ 简单
✅ 推荐
✅ 实战常用

九、Auto Scaling 用于“高可用”而非扩展

如果你这样配置:

  • Min = 4

  • Desired = 4

  • Max = 4

含义:

  • 不扩容

  • 只做 实例替换

  • 始终保证 4 台在线

十、完整逻辑一图理解(文字版)

CloudWatch 监控指标 ↓ Scaling Policy 决策 ↓ Auto Scaling Group ↓ Launch Template ↓ EC2 Instances ↓ Target Group(健康检查) ↓ ELB 分发流量

十一、面试一句话总结

“EC2 Auto Scaling automatically adjusts the number of EC2 instances based on CloudWatch metrics. It works with launch templates to define how instances are created, Auto Scaling Groups to define where and how many instances run, and integrates with ELB to distribute traffic only to healthy instances.”

http://www.jsqmd.com/news/209901/

相关文章:

  • JSON零基础入门:从菜鸟到熟练只需30分钟
  • 【MCP Azure虚拟机部署终极指南】:掌握高效部署的5大核心步骤与避坑策略
  • 快速验证:用GERBER文件检查PCB设计可行性
  • ChromeDriver下载地址汇总失效?用AI模型爬取最新链接
  • 大模型微调实战:基于 LLaMA2 微调行业模型,本地部署 + 性能优化全流程
  • Vue3新手必看:5分钟上手vue3-print-nb打印功能
  • Amazon Elastic Load Balancing详细介绍
  • 万物识别模型主动学习:让标注效率提升10倍
  • 中国DevOps平台选型全景:技术适配与安全合规的双重考验
  • 为什么顶尖IT专家都在用PowerShell?,揭开MCP脚本编写的5大秘密
  • 最新流出6款AI论文工具:附真实参考文献,查重低原创高再不看晚了!
  • ELB(Elastic Load Balancing)的三大核心组件,以及它们之间的关系
  • Qwen3Guard-Gen-8B可集成至DevOps流水线实现自动化安全测试
  • Qwen3Guard-Gen-8B模型可用于检测恶意代码生成尝试
  • DIFY MCP在金融风控中的落地实践
  • 最新流出!8款AI论文工具实测:20分钟生成5万字文献综述,真实文献全文引用
  • 科沃斯窗宝W3参数测评
  • Qwen3Guard-Gen-8B支持与Elasticsearch结合实现全文检索过滤
  • 24小时开发一个轻量级杀毒软件原型:技术方案分享
  • 多目标优化算法公共自行车调度应用【附代码】
  • Qwen3Guard-Gen-8B模型可通过VSCode插件进行调试
  • 揭秘MCP在MLOps中的核心作用:如何提升模型交付效率300%
  • 西门子调节型电源6EP4137-3AB00-1AY0
  • 实例控制台点击即用:Hunyuan-MT-7B降低AI使用门槛
  • java+vue+SpringBoot工作流程管理系统(程序+数据库+报告+部署教程+答辩指导)
  • 零基础入门:DIFY本地部署简明教程
  • ABAP Cloud 里的高性能日志:CL_BALI_LOG、XCO_CP_BAL 与 AML 的性能对比与选型指南
  • 深度测评9个一键生成论文工具,本科生轻松搞定毕业论文!
  • 学霸同款2026 AI论文工具TOP8:专科生毕业论文神器测评
  • 零基础教程:5分钟学会M4S转MP4最简单方法