ELB 定义
Elastic Load Balancing 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。它会监控已注册目标的运行状况,并仅将流量传输到运行状况良好的目标。Elastic Load Balancing 根据传入流量随时间的变化来扩展您的负载均衡器。它可以自动扩展来处理绝大部分工作负载。
Why use a LB?
- Spread load across multiple downstream instances
- Expose a single point of access (DNS) to your application
- Seamlessly handle failures of downstream instances
- Do regular health checks to your instances
- Provide SSL termination (HTTPS) for your websites
- Enforce stickiness with cookies
- High availability across zones
- Separate public traffic from private traffic
Health Checks 运行状况检查
Elastic Load Balancing 支持以下负载均衡器:
- Classic Load Balancer -- 2009 -- CLB -- HTTP,HTTPS,TCP,SSL -- 2022年退役
- Application Load Balancer -- 2016 -- ALB -- HTTP, HTTPS, Web Socket
- Network Load Balancer -- 2017 -- NLB -- TCP, TLS, UDP
- Gateway Load Balancer -- 2020 -- GWLB -- 网络层(Layer 3) , IP protocol
Classic Load Balancer
Cross-zone LB is enabled:
所有targets平分流量, 每个10%
Cross-zone LB is disabled:
两级:1. AZ平分总流量 2. 每个AZ内的target平分该AZ的流量
负载均衡器功能比较
功能 | Application LB | Network LB | 网关负载均衡器 | Classic Load Balancer |
负载均衡器类型 | 第 7 层 | 第 4 层 | 第 3 层网关 + 第 4 层负载均衡 | 第 4/7 层 |
目标类型 | IP、实例、Lambda | IP、实例、Application LB | IP、实例 | |
终止流/代理行为 | 是 | 是 | 否 | 是 |
协议侦听器 | HTTP、HTTPS、gRPC | TCP、UDP、TLS | IP | TCP、SSL/TLS、HTTP、HTTPS |
获得方式 | VIP | VIP | 路由表条目 | |
第 7 层 | ||||
重定向 | ✔ | | | |
固定响应 | ✔ | | | |
取消同步缓解模式 | ✔ | | | |
基于 HTTP 标头的路由 | ✔ | | | |
HTTP2/gRPC | ✔ | | | |
常见配置和特性 | ||||
慢启动 | ✔ | | | |
Outpost 支持 | ✔ | | | |
本地扩展区 | ✔ | | | |
IP 地址 - 静态、弹性 | | ✔ | | |
Connection Draining(注销延迟) | ✔ | ✔ | ✔ | ✔ |
可配置的空闲连接超时 | ✔ | | | ✔ |
PrivateLink 支持 | | ✔(TCP、TLS) | ✔ (GWLBE) | |
区域隔离 | | ✔ | ✔ | |
会话恢复 | ✔ | ✔ | | |
长时间运行的 TCP 连接 | | ✔ | ✔ | |
负载均衡到同一实例上的多个端口 | ✔ | ✔ | ✔ | |
负载均衡器删除保护 | ✔ | ✔ | ✔ | |
保留源 IP 地址 | ✔ | ✔ | ✔ | |
WebSocket | ✔ | ✔ | ✔ | |
支持的网络/平台 | VPC | VPC | VPC | EC2-Classic、VPC |
跨区负载均衡 | ✔ | ✔ | ✔ | ✔ |
IAM 权限(基于资源、标签) | ✔ | ✔ | ✔ | ✔(仅基于资源) |
流量粘性(流量的所有数据包均发送到一个目标,返回的流量来自同一个目标) | 对称 | 对称 | 对称 | 对称 |
目标失效行为 | 目标失效时关闭,除非所有目标均运行不正常(失效时开放) | 目标失效时关闭,除非所有目标均运行不正常(失效时开放) | 现有的流继续进入现有的目标设备,新的流将重新路由到运行状况正常的目标设备中。 | |
运行状况检查 | HTTP、HTTPS、gRPC | TCP、HTTP、HTTPS | TCP、HTTP、HTTPS | TCP、SSL/TLS、 HTTP、HTTPS |
安全性 | ||||
SSL 卸载 | ✔ | ✔ | | ✔ |
服务器名称指示 (SNI) | ✔ | ✔ | | |
后端服务器加密 | ✔ | ✔ | | ✔ |
用户身份验证 | ✔ | | | |
自定义安全策略 | | | | ✔ |
ALPN | ✔ | ✔ | | |
Kubernetes 控制器 | ||||
引导至 pod | ✔ | ✔ (Fargate pod) | | |
对多个命名空间进行负载均衡 | ✔ | | | |
支持完全私有的 EKS 集群 | ✔ | ✔ | | |
记录和监控 | ||||
CloudWatch 指标 | ✔ | ✔ | ✔ | ✔ |
日志记录 | ✔ | ✔ | ✔ | ✔ |