对于绝大多数现代云上应用,负载均衡ELB是保障高可用和弹性伸缩的核心组件,选择合适的类型与配置能直接提升服务可靠性并控制成本。
负载均衡ELB的核心价值:不止是分流
为什么你的应用需要ELB?
- 高可用保障:自动检测后端节点健康状态,将流量只转发到正常实例,单点故障时无感切换。
- 弹性伸缩配合:与Auto Scaling联动,实例数量增减时ELB自动识别并纳入或剔除,无需人工干预。
- 安全集中管控:统一在ELB层卸载SSL/TLS,集中管理证书,并集成Web应用防火墙(WAF)抵御常见攻击。
- 零停机更新:蓝绿部署或滚动更新时,通过ELB逐步切换流量,实现服务不中断。
ELB的典型应用场景
- 电商大促:面对瞬间流量洪峰,ELB将请求分散到数百台ECS,配合弹性伸缩横向扩展,避免单点过载,行业共识认为,大型促销场景下双ELB跨可用区部署是标准做法。
- 微服务架构:内部服务间通过ALB的路径路由精准转发到对应服务,配合容器化部署实现动态路由。
- 混合云部署:多个地域部署ELB,通过全局负载均衡实现跨区域流量调度,提升用户访问速度。
如何选择ELB类型?ALB、NLB与CLB对比
应用负载均衡器(ALB)适用场景
- HTTP/HTTPS流量:支持路径、主机名、查询字符串等高级路由规则,适合后端服务多样化的场景。
- 容器化应用:原生对接ECS、EKS,自动根据容器端口动态注册,无需手动配置目标组。
- WebSocket与gRPC:支持长连接协议,适合实时通信业务。
网络负载均衡器(NLB)适用场景
- TCP/UDP流量:极低延迟(毫秒级),适合游戏、金融交易等对延迟敏感的应用。
- 静态IP需求:每个NLB可用区拥有固定弹性IP,便于白名单配置或DNS解析。
- 直通后端:支持保留客户端源IP,方便后端日志审计。
传统负载均衡器(CLB)何时使用
- 遗留系统迁移:兼容旧版负载均衡配置,无需修改代码。
- 成本敏感场景:CLB按固定带宽或实例计费,流量稳定时比ALB/NLB更经济。
- 但功能有限,不支持路径路由、主机名匹配等高级特性,且已被AWS标记为遗留服务。
对比表格:ALB vs NLB vs CLB
| 特性 | ALB | NLB | CLB |
|---|---|---|---|
| 协议层级 | 第7层(HTTP/HTTPS) | 第4层(TCP/UDP/TLS) | 第4/7层混合 |
| 路由规则 | 路径、主机名、查询参数 | 端口、协议 | 端口、轮询 |
| 延迟 | 中等(几毫秒) | 极低(亚毫秒) | 中等 |
| 静态IP | 不支持(可通过Global Accelerator) | 每个可用区固定弹性IP | 经典负载均衡提供固定DNS |
| 自动伸缩 | 自动匹配后端容量 | 按NLB容量单位 | 手动调整 |
| 价格模式 | 按LCU(负载均衡器容量单位) | 按NLB容量单位 | 按实例+带宽/LCU |
AWS ELB价格多少钱?实例成本与隐藏费用
影响ELB成本的主要因素
- 实例类型:ALB每小时费用高于NLB,CLB基础费用最低但功能受限。
- 处理容量:ALB按LCU计费,包括新连接数、活跃连接数、带宽和规则数;NLB按NLB容量单位计费,指标类似但计算方式不同,CLB可按固定带宽计费,适合流量可预测场景。
- 跨区域流量:ELB与后端不同区域时,产生额外的传输费用,这部分容易被忽略。
- 闲置ELB:即使没有流量,ELB也会按小时产生费用,删除未使用的实例是首要优化点。
成本控制实操建议
- 使用节省计划:承诺1年或3年用量,可节省相当比例的费用,适用于长期稳定业务。
- 合并多个ELB:利用ALB的路径路由,将多个服务合并到一个负载均衡器下,减少实例数量。
- 监控LCU利用率:通过CloudWatch监控LCU消耗,避免过度配置,根据业务峰值调整目标组大小。
- 清理未关联资源:定期检查是否有ELB关联了已停止的Auto Scaling组或空目标组,及时删除。
负载均衡器配置教程:从零搭建高可用架构
前置条件:创建VPC和子网
- 创建VPC,同时至少设置两个可用区,每个可用区包含一个公共子网(用于ELB)和一个私有子网(用于后端实例)。
- 确保公共子网关联互联网网关,私有子网通过NAT网关访问外网。
创建目标组
- 进入EC2控制台,选择“目标组”,点击“创建目标组”。
- 指定目标类型:实例或IP,推荐使用实例类型,自动注册或注销。
- 配置健康检查:路径设置为业务健康检测接口(如
/health),协议为HTTP,检查间隔5秒,正常阈值2次,异常阈值3次,超时时间3秒。 - 注册目标:暂时不注册,稍后通过Auto Scaling自动注册。
创建负载均衡器
- 选择“负载均衡器”,点击“创建”。
- 选择类型:以ALB为例,监听器配置HTTP:80,后续可添加HTTPS监听器。
- 选择网络映射:勾选至少两个可用区的公共子网。
- 安全组:创建允许互联网来源(0.0.0.0/0)访问80端口的规则,生产环境应限制为特定IP或CloudFront来源。
- 后端路由:选择刚才创建的目标组,配置转发规则。
- 创建完成后,记录DNS名称。
验证与测试
- 通过浏览器访问ALB的DNS名称,确认请求被分发到后端服务器。
- 模拟后端实例故障,观察健康检查是否自动剔除,服务是否仍然可用。
- 查看CloudWatch的ActiveConnectionCount和HTTPCode_ELB_5XX指标,确保配置正确。
负载均衡ELB常见问题解答
问:ELB和Nginx有什么区别?哪个更可靠?
答:ELB是云托管服务,自动处理跨可用区容错与弹性伸缩,运维成本极低,但定价较高且灵活度受限,Nginx需自行部署和调优,功能更丰富(如缓存、限流),适用于自建或混合架构,业内专家指出,在云上优先选择ELB,自建场景则可用Nginx补充,两者可结合,例如Nginx作为反向代理放在ELB之后,实现更精细的流量控制。
问:国内使用AWS ELB体验如何?有没有替代方案?
答:国内用户使用AWS ELB需注意网络延迟和合规性,部分节点可能受国际链路影响,主流替代方案包括简米云SLB、酷番云CLB、华为云ELB,它们提供类似的功能,且在本地化支持和备案流程上更便捷,选择时需对比具体功能支持(如路径路由、HTTP/2)、计费模式以及可用区覆盖。
问:ELB的Health Check如何配置能避免误移除?
答:健康检查配置应匹配业务可接受阈值,建议检查间隔5秒,正常阈值2次,异常阈值3次,超时时间3秒,检查路径应返回200状态码,避免使用静态资源(如/index.html)检查,防止应用进程挂起但静态页面仍正常,应用层应定期刷新会话,避免健康检查时连接超时。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/544579.html



