一、Launch Template 的作用是什么?
一句话定义(面试版)
Launch Template 是 EC2 实例的标准化启动配置,用来告诉 Auto Scaling“新实例该如何创建和配置”。
Launch Template 具体解决什么问题?
Auto Scaling 不会“复制已有 EC2”,它只能:
按一份“说明书”去创建全新的 EC2
这份说明书就是 Launch Template。
Launch Template 里通常包含什么?
| 配置项 | 说明 |
|---|---|
| AMI | 使用哪个系统镜像 |
| Instance Type | t2.micro / t3.small 等 |
| Key Pair | SSH 登录密钥 |
| Security Group | 网络访问规则 |
| IAM Role | 访问 S3 / DynamoDB 等权限 |
| User Data | 启动时自动执行的脚本 |
你手动创建 EC2 时选的所有东西,ASG 都要靠 Launch Template 来复现
为什么 Auto Scaling 一定要 Launch Template?
因为 Auto Scaling 的本质是:
实例被打爆 → 自动 新建实例
实例挂掉 → 自动 重建实例
流量下降 → 终止实例
没有 Launch Template = 不知道怎么建实例
类比理解(非常好记)
EC2 实例 = 电脑
Launch Template = 装机配置单 + 自动安装脚本
Auto Scaling = 自动装 / 拆电脑的工厂
二、ALB、Target Group、Auto Scaling Group 是什么关系?
这是 AWS 最经典、最常考的三件套,我给你一个清晰不混乱的结构👇
1️⃣ Application Load Balancer(ALB)
- 是什么?
对外的“流量入口”
它负责:
接收来自 Internet 的 HTTP/HTTPS 请求
不直接连接 EC2
只负责 转发流量
ALB 自己不存实例信息
2️⃣ Target Group(目标组)
- 是什么?
ALB 的“后端服务列表”
它负责:
维护一组目标(EC2 / IP / Lambda)
对目标做 健康检查
决定哪些实例可以接收流量
ALB 一定要通过 Target Group 才能转发请求
3️⃣ Auto Scaling Group(ASG)
- 是什么?
EC2 实例的“数量管理员”
它负责:
启动 / 终止 EC2
保证最小 / 最大 / 期望实例数
根据 CloudWatch 指标扩缩容
ASG 不接收流量,也不做负载均衡
三、三者之间的“真实协作关系”
正确关系链(一定要记住这个顺序)
Internet ↓ Application Load Balancer(ALB)↓ Target Group ↓ Auto Scaling Group 管理的 EC2 实例它们如何联动工作?
场景 1:正常访问
用户访问 ALB 的 DNS
ALB 把请求转给 Target Group
Target Group 选择一个 健康的 EC2
EC2 处理请求
场景 2:实例 CPU 过高(扩容)
CloudWatch 发现平均 CPU > 60%
ASG 决定 扩容
ASG 使用 Launch Template 启动新 EC2
新 EC2 自动:
执行 User Data
注册到 Target Group
健康检查通过后
ALB 开始把流量转给新实例
场景 3:实例挂掉
Target Group 健康检查失败
ALB 停止向该实例转发请求
ASG 发现实例不健康
ASG 终止该实例
ASG 用 Launch Template 启动新实例
新实例加入 Target Group
全程无人操作
四、一句话区分三者(面试必杀)
ALB handles incoming traffic
Target Group defines where traffic goes and performs health checks
Auto Scaling Group manages how many EC2 instances are running
Launch Template defines how those EC2 instances are created
五、超高频面试追问(提前给你)
为什么 ASG 不能直接连 ALB,而一定要 Target Group?
因为:
Target Group 负责健康检查
Target Group 解耦 ALB 和后端资源
一个 ALB 可以有多个 Target Group(路径路由)