ALB 和 ELB 的核心区别在于 ELB 是一个总称,而 ALB 是 ELB 服务中的一种具体类型。
简单来说:
-
ELB:亚马逊网络服务的弹性负载均衡器。这是 AWS 提供的负载均衡服务的品牌总称,它旗下包含三种主要产品。
-
ALB:应用负载均衡器。它是 ELB “家族”中的一员,专为 HTTP/HTTPS 流量设计,工作在 OSI 模型的第七层。
为了更清晰,我们详细对比一下:
核心关系:ELB 的三种类型
AWS 的 Elastic Load Balancing 服务主要提供三种负载均衡器:
-
Application Load Balancer - 应用负载均衡器
-
Network Load Balancer - 网络负载均衡器
-
Classic Load Balancer - 传统负载均衡器
所以,ALB 是 ELB 的一种。
ALB 与 其他 ELB 类型(主要是 NLB)的详细对比
下表清晰地展示了 ALB 与另一种常用类型 NLB 的区别:
|
特性 |
应用负载均衡器 |
网络负载均衡器 |
|---|---|---|
|
最佳适用场景 |
基于 HTTP/HTTPS 的现代Web应用、微服务、容器(如ECS/EKS)。需要基于内容的路由。 |
需要极高性能和低延迟的TCP/UDP流量,如游戏服务器、金融交易系统、IoT数据流。 |
|
OSI 模型层级 |
第7层 |
第4层 |
|
路由决策依据 |
基于HTTP头部信息(如主机名、路径、查询字符串、请求头)。 |
基于IP协议数据(如源/目标IP地址、端口号)。不查看HTTP内容。 |
|
性能与延迟 |
延迟略高(因为要解析HTTP头部),但足以满足绝大多数Web应用。 |
极致性能、超低延迟(微秒级)。每个NLB能处理每秒数百万个请求。 |
|
目标类型 |
主要面向目标组,组内可以是ECS任务、Lambda函数、EC2实例、IP地址等。 |
主要面向目标组,组内可以是EC2实例、IP地址。 |
|
客户端源IP |
默认情况下,后端服务器看到的是ALB的私有IP。客户端IP保存在 |
可以向后端服务器透传客户端的源IP地址(保留源IP)。 |
|
SSL/TLS 处理 |
可以在ALB上终止SSL,减轻后端服务器压力。支持SNI,可挂载多个证书。 |
同样支持SSL终止,也支持TCP透传(后端服务器自己处理SSL)。 |
|
费用模型 |
主要按使用的负载均衡器容量单元和处理的数据量计费。 |
主要按使用的网络负载均衡器容量单元和处理的数据量计费。通常LCU费用比ALB略高,但其吞吐量极大。 |
|
典型用例 |
- 微服务API网关 |
- 处理TCP游戏服务器流量 |
总结与选型建议
-
如果你的应用是标准的 Web 应用(HTTP/HTTPS),需要基于 URL 路径、主机名进行灵活的路由,或者要集成 AWS Lambda,选择 ALB。这是目前最常用、功能最丰富的 HTTP 负载均衡器。
-
如果你需要处理四层 TCP/UDP 流量,对性能和延迟有极端要求,或者需要保留客户端源 IP,选择 NLB。
-
Classic Load Balancer 是旧版产品,除非有历史遗留原因需要兼容,否则 AWS 推荐使用 ALB 或 NLB。
一句话记住:当有人问“ALB 和 ELB 的区别”时,本质上是在问 “ALB(七层负载均衡器)和 ELB 服务下其他类型(特别是 NLB,四层负载均衡器)的区别”。
1202

被折叠的 条评论
为什么被折叠?



