"听说你在 Amazon 上部署了服务,负载均衡用的啥?"
"呃,我直接用公网 IP 连的 EC2......"
"兄弟,这我可得跟你说说 '高可用' 这事了......"
别怕高可用三个字太吓人,其实就是让你的服务不容易挂 、访问稳定快,还能扛住流量。
这篇文章,我们就手把手用 Amazon Application Load Balancer(简称 ALB),带你从 0 搭一套入门级别的高可用架构。没有玄学,只有实战。
一、ALB 是个啥?为什么不直接上服务器?
ALB,全称 Application Load Balancer,是亚马逊云科技提供的第七层(应用层)负载均衡器。
说白了,它就是你的"前门保安",帮你把用户的请求,根据你设置的规则,分发到不同的后端实例(EC2、ECS、Lambda 等),还能顺便干点别的事:
- 自动健康检查,挂了的实例它自动踢出去
- 支持路径路由,比如
/``login
分发给登录服务 - 支持主机名路由,比如
api.example.com
和admin.example.com
分开处理 - 支持 HTTPS 终止,让你不用每台服务器都装证书
- 支持 WAF、CloudFront 等安全组件联动
其实,它就是一个运维小助手。

二、我们的目标是什么?
今天,我们要部署这样一个高可用架构:
- 后端有两个 EC2 实例,部署了一个简单的 Web 应用(比如 Spring Boot)
- 前面挂一个 ALB,接收所有 HTTP 流量,按路径转发请求
- 应用分布在两个可用区(AZ),防止一个区挂掉服务崩溃
- 加一个 Auto Scaling Group,服务器压力大扛不住的时候就自动扩容
- 配置健康检查 + 测试验证 + 灰度发布演示
总结就是:让服务能打能抗,还能自己加人手!
三、实战步骤来啦
第一步:注册账号
进入 亚马逊云科技官网,点击右上角注册账号,关键流程如下:
- 手机号、账单信息可以直接用国内资料填写;
- 选择基础支持计划(无需额外开支);
- 注册完成后等待身份验证通过,即可开始使用资源。
新用户可获得高达 200 美元的服务抵扣金
亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额外获得最多 100 美元的服务抵扣金。使用免费计划试用亚马逊云科技服务,最长可达 6 个月,无需支付任何费用,除非您选择付费计划。付费计划允许您扩展运营并获得超过 150 项亚马逊云科技服务的访问权限。
第二步:准备两台 EC2
先准备两台部署了你的 Web 应用的 EC2 实例,比如监听在 8080 端口的 Spring Boot 服务,部署在两个不同的可用区,记得开放 8080 的安全组端口。
如果你还没有应用,可以拿 Nginx 静态页面或者用 Amazon 的 Hello World AMI 凑一下。
第三步:配置 Target Group 和健康检查
Target Group 是一组后端服务的集合,ALB 会把请求"甩锅"给这群人。
- 在 亚马逊云科技控制台找到 EC2 → Target Groups → Create Target Group
- 类型选 "Instance"
- 协议选 HTTP,端口 8080(或你应用的端口)
- 健康检查路径填
/health
,确保你的应用有对应接口(Spring Boot 默认就有/actuator/health
) - 添加你的两个 EC2 实例到目标组中
小提示:健康检查可设置失败次数/间隔,别设太严,不然 ALB 一紧张就把服务踢掉了。
第四步:创建 ALB 和监听器
- 控制台 → EC2 → Load Balancers → Create Application Load Balancer
- 网络类型选择 IPv4(或者混合 IPv4/IPv6)
- 多个可用区都勾选上,确保高可用
- 安全组放行 80/443(别忘了)
- 创建监听器,监听 HTTP 80 端口,默认转发到刚才那个 Target Group
搞定后,ALB 会生成一个 DNS 地址,比如:my-alb-123456.ap-northeast-1.elb.amazonaws.com
访问这个地址就能命中你的后端服务了。
第五步:路径路由规则配置
比如你有两个服务 /api
和 /admin
:
- 回到 ALB → Listeners → 编辑规则
- 添加规则: - Path is
/api/*
→ 转发到目标组 A - Path is/admin/*
→ 转发到目标组 B
这时候 ALB 就变成你流量的交通警察,谁走哪条路它说了算。
第六步:结合 Auto Scaling 自动扩缩容
现在来点"高可用"的味道了。
- 创建 Launch Template,把你的 EC2 镜像、端口、安全组等配置好
- 创建 Auto Scaling Group,基于这个模板,起步设置两个实例,上限五个
- 挂载刚才的 Target Group,确保 ALB 能感知它的"士兵"变化
- 设置扩容策略,比如 CPU > 70% 自动加人,< 20% 自动裁员
这时,如果哪天你突然上了热搜,访问量爆了,系统也能自动拉人加班(服务器的那种人)。
第七步:部署新版本,试试"灰度发布"
现在你已经有了高可用的架构,是时候玩点花活了!
假设你要上线新版本,但又怕"出事",可以:
- 把一台 EC2 先替换为新版本
- 修改监听器规则,加一个路径
/v2/*
专门走这台实例 - 小流量验证没问题,再全量替换
这种灰度发布的方式比"上线即全量"稳得多,ALB 规则一改,流量就切过来了,优雅!
四、验证一下,稳不稳?
- 用浏览器访问 ALB DNS,看能否正常访问
- 停掉某台 EC2,验证是否还能访问(说明健康检查起作用)
- 设置 ALB 的 CloudWatch 告警,实时监控状态和响应时间
- 模拟高流量,观察 Auto Scaling 是否扩容
测试都没问题?恭喜你,你已经成功打造了一套基础的高可用架构!
五、尾声
ALB 不只是一个简单的流量分发工具,它的组合拳能力可以让你的服务更稳、更快、更自动化:
- 路由灵活,支持路径/主机名
- 健康检查 + Auto Scaling,让服务永远在线
- 支持 HTTPS + WAF,安全有保障
- 搭配 ECS、Lambda,甚至是 serverless 架构也完全 OK
你要做的,其实就是想好规则,点点鼠标,剩下交给 ALB。
"你用什么搭建高可用架构?"
"Amazon + ALB,真的香。"
如果你觉得这篇文章对你有帮助,别忘了点赞、收藏、转发给还在裸连 EC2 的朋友~
下次,我们可以一起深入聊聊 NLB 的那些高性能黑科技,或者如何用 Terraform 全自动部署一套 ELB 架构!
友情提示:如果用完了之后不再需要使用服务的话,记得要在控制台关闭服务,以防超过免费额度产生扣费