负载均衡 ELB 怎么用:给多台 ECS 分发流量的实践笔记
前段时间把一个小服务从一台 ECS 迁到两台,后端直接挂域名轮询,结果一台机器出问题,请求照样往上发,用户直接看到 502。折腾一圈之后还是上了 ELB。这篇笔记记录一下给多台 ECS 分发流量的做法。
一、为什么需要负载均衡
单台 ECS 能扛的并发有限,CPU、内存、带宽任一先到瓶颈,服务就开始变慢;更麻烦的是单点故障,一台机器挂了,整个服务就不可用。负载均衡就是在前面加一层入口,把请求按规则分发到多台后端服务器上。流量大了就加机器,某台出问题就自动摘掉,入口地址本身不变,用户感知不到后端的变化。
二、监听器与后端服务器组
ELB 的配置核心是两样东西。监听器负责“听”:监听某个端口和协议,比如 80 端口的 HTTP 或 443 端口的 HTTPS,收到请求后按规则转发。后端服务器组负责“干活”:把一台或多台 ECS 加进来,指定每台的业务端口和权重。权重可以按机器规格分配,配置高的多分一点。
三、四层与七层怎么选
四层负载均衡工作在传输层,按 IP 和端口转发,不看请求内容,转发效率高,适合 TCP、UDP 场景,比如游戏或数据库代理。七层负载均衡工作在应用层,能识别 HTTP 的域名、路径和请求头,可以按 URL 做路由,还能在 ELB 上卸载 HTTPS 证书。简单判断:只需要把流量均匀分到几台机器,用四层;需要按路径分流、做 HTTPS 或按域名区分业务,用七层。
四、健康检查是兜底的那道防线
后端挂了但请求还往上发,是最难受的故障。健康检查就是 ELB 定期去“敲门”:按配置的协议、路径和端口访问后端,比如每 5 秒 GET 一下 /health,连续几次不通就判定不健康,暂时把这台机器从分发名单里拿掉;恢复之后再自动加回来。检查路径要用真实能反映业务状态的接口,别用会重定向的首页地址。间隔太短会给后端增加负担,太长则摘除不及时,按业务容忍度折中。
五、上线前检查清单
上线之前,我按下面这张清单逐项核对,省了不少返工:
- 安全组:后端 ECS 的安全组放行 ELB 的回源地址和业务端口,别只放行自己的办公 IP。
- 端口一致:监听器端口、后端服务器组端口、应用实际监听端口三处对上。
- 健康检查:路径、端口、超时和阈值配好,确认后端状态显示“正常”。
- 会话保持:需要登录态的业务确认是否开启,避免请求跳到另一台机器后掉登录。
- 证书:七层 HTTPS 监听器确认证书没过期,域名和证书匹配。
- 监控告警:给 ELB 连接数和后端异常配告警,别等用户反馈。
- 小流量验证:先切一小部分流量观察确认,再全量。
小结
ELB 本身不复杂,难的是把入口、后端、检查这条链路一次配对。这次两台 ECS 上线后,单台维护重启时另一台照常接流量,发布也不用再半夜停服。对还在单机跑业务的同学,建议早点把这层加上。
- 点赞
- 收藏
- 关注作者
评论(0)