0Pricing
Cloud & IT Cert Prep · 课时

ALB、NLB 与 GLB:如何选择

了解应用程序、网络和网关负载均衡器之间的区别,并将每种类型匹配到理想的使用场景。

ALB、NLB 与 GLB:如何选择 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

弹性负载均衡概述

弹性负载均衡(ELB)会自动将传入的应用程序流量分配到多个目标,例如 EC2 实例、容器、Lambda 函数或 IP 地址。ELB 是一项托管服务,这意味着 AWS 负责负载均衡器本身在多个 AZ 中的预置、扩展和可用性。

AWS 在 ELB 体系下提供三种负载均衡器:Application Load Balancer(ALB)、Network Load Balancer(NLB)和 Gateway Load Balancer(GWLB)。每种负载均衡器运行在 OSI 模型的不同层,并针对不同使用场景进行了优化。

Application Load Balancer(ALB)

ALB 运行在 OSI 模型的第 7 层(HTTP/HTTPS)。它可以检查 HTTP 标头、路径、查询字符串、主机名和 Cookie,并据此做出智能路由决策。对于需要基于内容进行路由的 Web 应用程序、微服务和 API 端点,ALB 是首选。

ALB 的主要功能包括:基于路径的路由(将 /api/* 路由到一个目标组,将 /static/* 路由到另一个目标组)、基于主机的路由(将不同的虚拟主机路由到不同的后端)、基于 HTTP 标头和查询字符串的路由、WebSocket 支持以及 HTTP/2 支持。ALB 可以将流量路由到 EC2 实例、容器(ECS/EKS)、Lambda 函数和 IP 地址。

# Create an ALB
aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --security-groups sg-12345678 \
  --type application

Network Load Balancer(NLB)

NLB 运行在第 4 层(TCP/UDP/TLS)。它根据 IP 协议数据路由数据包,而不会检查应用程序内容。NLB 专为极高性能而设计:每秒可处理数百万个请求,并提供超低延迟(通常低于 100 微秒)。

NLB 的主要功能包括:每个 AZ 提供静态 IP 地址(每个子网一个弹性 IP)、TLS 直通(不解密而直接转发加密流量)、保留客户端 IP 地址,以及支持 UDP 协议(例如 DNS、RADIUS 和游戏服务器)。NLB 无法执行基于内容的路由,也无法检查 HTTP 标头。

# Create an NLB
aws elbv2 create-load-balancer \
  --name my-nlb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --type network

Gateway Load Balancer(GWLB)

GWLB 运行在第 3 层(网络层),专门用于部署、扩展和管理第三方虚拟网络设备,例如防火墙、入侵检测和防御系统(IDS/IPS)以及深度数据包检测系统。

GWLB 使用GENEVE 协议(端口 6081)封装流量,并将其发送到您的设备集群。设备检查数据包后,通过同一个 GWLB 端点将其返回。流量可以透明传输,无需更改源 VPC 中的路由。这是在 AWS VPC 流量中插入集中式安全检查的标准模式。

ALB 使用场景

在以下情况下请选择 ALB:

  • 需要基于 HTTP/HTTPS 内容的路由(路径、主机、标头、查询字符串)
  • 后端包含 Lambda 函数或 ECS 容器
  • 需要 WebSocket 或 HTTP/2 连接
  • 希望将 AWS WAF 集成到负载均衡器层,以提供 Web 应用程序安全防护
  • 正在构建一个微服务架构,其中有许多服务分布在不同的 URL 路径上
  • 需要在负载均衡器处执行 SSL/TLS 终止

在 SAA-C03 考试的大多数 Web 应用程序和 REST API 负载均衡问题中,ALB 都是正确答案。

NLB 使用场景

在以下情况下请选择 NLB:

  • 需要极高性能(每秒数百万个请求、亚毫秒级延迟)
  • 需要合作伙伴或防火墙可以加入允许列表的静态 IP 地址
  • 需要处理UDP 流量(游戏、DNS、RADIUS、IoT)
  • 希望在负载均衡器处不解密而使用 TLS 直通(与目标之间进行端到端加密)
  • 需要在 TCP 层原生保留客户端源 IP
  • 使用 AWS PrivateLink 向其他 VPC 或账户公开服务(PrivateLink 要求使用 NLB)

GWLB 使用场景和架构

在需要执行以下操作时请选择 GWLB:

  • 将第三方防火墙设备(Palo Alto、Fortinet、Check Point)插入网络流量路径
  • 在 VPC 层对所有入站或出站流量执行深度数据包检测
  • 通过自动负载均衡水平扩展 IDS/IPS 设备集群

架构如下:流量从源 VPC → GWLB 端点 → 设备 VPC(GWLB 在此将流量分配到各个设备实例)→ 设备将流量返回 GWLB → GWLB 转发到原始目标。源和目标都不会感知中间存在的检查过程。

跨区域负载均衡

跨区域负载均衡会将流量均匀分配到所有已启用 AZ 中的全部已注册目标,而不考虑接收请求的负载均衡器节点位于哪个 AZ。如果未启用跨区域负载均衡,每个 AZ 的节点只会将流量分配到自身 AZ 中的目标。

ALB 默认启用跨区域负载均衡,且不收取额外费用。NLB 默认禁用跨区域负载均衡,启用后会产生跨 AZ 数据传输费用。GWLB 默认禁用跨区域负载均衡。当各 AZ 中的目标数量不均衡时,请启用跨区域 LB,以避免出现流量热点。

协议和功能对比

考试快速对比表:

  • OSI 层:ALB = 7(HTTP),NLB = 4(TCP/UDP),GWLB = 3(IP)
  • 协议:ALB = HTTP、HTTPS、WebSocket;NLB = TCP、UDP、TLS;GWLB = 通过 GENEVE 支持所有 IP 协议
  • 静态 IP:ALB = 否(使用 NLB + ALB 模式);NLB = 是(每个 AZ 一个);GWLB = 不适用
  • WAF 集成:ALB = 是;NLB = 否;GWLB = 否
  • Lambda 目标:ALB = 是;NLB = 否;GWLB = 否
  • 连接排空:三者都支持注销延迟

ALB 与 AWS WAF

ALB 原生集成 AWS WAF,可提供区域级防护(相对于 CloudFront 上的 WAF 所提供的全球边缘防护)。将 WAF Web ACL 关联到 ALB 后,您可以在请求到达应用程序之前过滤 HTTP 请求,阻止 SQL 注入、XSS、已知恶意 IP 和滥用速率的客户端。

当您希望在负载均衡器层执行安全检查时,请使用 ALB + WAF(例如保护未通过 CloudFront 提供服务的 API)。关联到 ALB 的 WAF Web ACL 必须位于与 ALB 相同的区域,并且必须使用 REGIONAL scope(不同于 CloudFront WAF,后者要求在 us-east-1 中使用 CLOUDFRONT scope)。

NLB 与 PrivateLink

AWS PrivateLink 使用 NLB 将一个 VPC 中的服务公开给其他 VPC 或 AWS 账户中的使用者,而不需要 VPC 对等连接、互联网网关或 NAT。服务提供商会在其服务前创建 NLB,并创建一个VPC 端点服务。使用者则在自己的 VPC 中创建一个指向该服务的接口 VPC 端点。

流量通过 AWS 的私有网络传输,绝不会经过互联网。PrivateLink 是 AWS 上 SaaS 提供商的标准模式,也常用于将共享服务(例如集中式安全服务)公开给多个内部 AWS 账户。

快速检查

测试您对本课 AWS 解决方案架构师(SAA-C03)相关概念的理解。

课程回顾

本课您学习了以下内容:ALB 在第 7 层(HTTP)基于内容规则进行路由,并支持 WAF 集成和 Lambda 目标;NLB 在第 4 层(TCP/UDP)进行路由,并提供静态 IP 和极高吞吐量;GWLB 使用 GENEVE 在第 3 层部署虚拟网络设备。请根据协议和功能需求选择匹配的负载均衡器。接下来我们将学习目标组和运行状况检查。

常见问题解答

「ALB、NLB 与 GLB:如何选择」课时是免费的吗?

是的 — 「ALB、NLB 与 GLB:如何选择」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「ALB、NLB 与 GLB:如何选择」这节课中我会学到什么?

了解应用程序、网络和网关负载均衡器之间的区别,并将每种类型匹配到理想的使用场景。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「ALB、NLB 与 GLB:如何选择」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. ALB、NLB 与 GLB:如何选择
  2. 目标组与运行状况检查
  3. 监听器规则与基于路径的路由
  4. SSL 终止与粘性会话
← 返回 Cloud & IT Cert Prep