用 ALB 搭建你的第一套高可用架构(别慌,其实很简单)

"听说你在 Amazon 上部署了服务,负载均衡用的啥?"

"呃,我直接用公网 IP 连的 EC2......"

"兄弟,这我可得跟你说说 '高可用' 这事了......"

别怕高可用三个字太吓人,其实就是让你的服务不容易挂访问稳定快,还能扛住流量。

这篇文章,我们就手把手用 Amazon Application Load Balancer(简称 ALB),带你从 0 搭一套入门级别的高可用架构。没有玄学,只有实战。

一、ALB 是个啥?为什么不直接上服务器?

ALB,全称 Application Load Balancer,是亚马逊云科技提供的第七层(应用层)负载均衡器。

说白了,它就是你的"前门保安",帮你把用户的请求,根据你设置的规则,分发到不同的后端实例(EC2、ECS、Lambda 等),还能顺便干点别的事:

  • 自动健康检查,挂了的实例它自动踢出去
  • 支持路径路由,比如 /``login 分发给登录服务
  • 支持主机名路由,比如 api.example.comadmin.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 架构!

友情提示:如果用完了之后不再需要使用服务的话,记得要在控制台关闭服务,以防超过免费额度产生扣费

相关推荐
郝学胜-神的一滴2 小时前
SpringBoot实战指南:从快速入门到生产级部署(2025最新版)
java·spring boot·后端·程序人生
爷_6 小时前
字节跳动震撼开源Coze平台!手把手教你本地搭建AI智能体开发环境
前端·人工智能·后端
不过普通话一乙不改名9 小时前
第一章:Go语言基础入门之函数
开发语言·后端·golang
豌豆花下猫10 小时前
Python 潮流周刊#112:欢迎 AI 时代的编程新人
后端·python·ai
Electrolux11 小时前
你敢信,不会点算法没准你赛尔号都玩不明白
前端·后端·算法
whhhhhhhhhw11 小时前
Go语言-fmt包中Print、Println与Printf的区别
开发语言·后端·golang
ん贤11 小时前
Zap日志库指南
后端·go
Spliceㅤ11 小时前
Spring框架
java·服务器·后端·spring·servlet·java-ee·tomcat
IguoChan12 小时前
10. Redis Operator (3) —— 监控配置
后端
Micro麦可乐13 小时前
前端与 Spring Boot 后端无感 Token 刷新 - 从原理到全栈实践
前端·spring boot·后端·jwt·refresh token·无感token刷新