负载均衡:ELB, ALB, NLB, CLB
负载均衡的作用
对多台云服务器进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
- 提高可用性和访问速度
在单个可用区或多个可用区内的多个目标之间自动分配流量。 - 运行状况检查
检测无法正常运行的目标、停止向它们发送流量,然后将负载分散到剩余的正常运行的目标上。 - 安全性功能
创建和管理与负载均衡器关联的安全组,以提供更多联网和安全选项。 - TLS 终止
提供集成化证书管理和 SSL/TLS 解密,可以灵活地集中管理负载均衡器的 SSL 设置,并从应用程序上卸载 CPU 密集型工作。
Amazon 提供的 ELB 服务包含三种类型:ALB, NLB, CLB。
ALB
Application Load Balancer 运行于请求级别(第 7 层),可根据请求的内容将流量路由至 EC2 实例、容器、IP 地址和 Lambda 函数等目标。Application Load Balancer 最适合 HTTP 和 HTTPS 流量的高级负载均衡,面向交付包括微服务和基于容器的应用程序在内的现代应用程序架构,提供高级请求路由功能。Application Load Balancer 通过确保始终使用最新的 SSL/TLS 密码和协议,简化并提高应用程序的安全性。
ABL于2016年8月发布,与现有的负载均衡器(OSI第4层TCP/UDP均衡器)不同,ALB将查看数据包并将其发送到正确的服务。单个ALB可以为许多后端服务平衡流量,而不是为每个服务运行弹性负载均衡器。例如,包含的URL /api
可以路由到与包含的URL /signup
不同的后端服务。
NLB
Network Load Balancer 网络负载均衡器运行于连接级别(第 4 层),可根据 IP 协议数据将连接路由至 Amazon Virtual Private Cloud (Amazon VPC) 内的不同目标(Amazon EC2 实例、微服务和容器)。网络负载均衡器最适合 TCP 流量的负载均衡,能够在保持超低延迟的同时每秒处理数百万个请求。网络负载均衡器还经过了优化,能够处理突发的和不稳定的流量模式,同时在每个可用区使用单个静态 IP 地址。它与其他流行的 AWS 服务集成,例如 Auto Scaling、Amazon EC2 Container Service (ECS)、Amazon CloudFormation 和 Amazon AWS Certificate Manager (ACM)。
CLB
Classic Load Balancer 同时运行于请求级别和连接级别,可在多个 Amazon EC2 实例之间提供基本的负载均衡。Classic Load Balancer 适用于在 EC2-Classic 网络内构建的应用程序。在使用 Virtual Private Cloud (VPC) 时,我们建议使用第 7 层 Application Load Balancer 和第 4 层网络负载均衡器。
使用 CLB 而不是 ALB 具有以下优势:
- 支持 EC2-Classic
- 支持 TCP 和 SSL 侦听器
- 支持使用应用程序生成的 cookie 的粘性会话
CLB速度慢于ALB。
参考文档
封面来源: pixabay, free for commercial use.
负载均衡:ELB, ALB, NLB, CLB