ELB (Elastic Load Balancer)
- ELB 是一个托管的 load balancer.
- 所以 AWS 须保证此 server 能运作无误, 且须负责维护
- AWS 仅提供一些组态选项
- 已与众多AWS 服务整合, 例如, EC2, EC2 ASG, ECS, ClousWatch, Route 53, Global Accelerator
AWS Load balancer 种类
- Classic Balancer
- 始祖级的 load balancer, 第一代的吧
- 支援 TCP (Layer 4), HTTP 和 HTTPS (Layer 7)
- 其 health check 是基於 TCP 或是 HTTP
- 采用固定的主机名称, 例如 xxx.us-east-1.elb.amazonaws.com
- Application Load Balancer
- Layer 7 (HTTP)
- 可对跨机器多个 HTTP 应用作平衡负载, target group
- 可基於 URL 的路径做路由
- 可基於 URL 的主机名称做路由
- 可基於 query string header做路由
- 也可对同一机器上的多个应用做平衡负载 (例如, containers)
- 支援 HTTP/2, WebSocket, 支援重新导向 (譬如, HTTP -> HTTPS)
- 适用於微服务场景和 container based 的应用, 如 docker, ECS
- 与 classic load balancer 比较, 每个应用需要一个classic load balancer
- ALB target group 可以是:
- EC2 个体
- ECS tasks
- Lambda function
- IP 位址
- 采用固定的主机名称
-
Note: 在 Load balancer 後面的 EC2 个体是看不到连过来的 client 的 IP, 它看到的 IP 其实是 load balancer的 private IP, 真实的 client IP 是在 header 的 X-Forwarded-For, 同样的, Port 和 proto 也须自 X-Forwarded-Port 和 X-Forwarded-Proto 取得
- Network Load Balancer
- 是运作在 Layer 4
- 可以将 TCP, UDP 流量转送至你的 EC2 个体
- 每秒可处理数百万个请求, 同时延迟较低, 约 100 ms (ALB 约需 400 ms)
- NLB 在每个 AZ 有其 static IP, 支援 elastic IP, 这样可对特定 IP 在白名单
- 支援 TCP,TLS(secureTCP),UDP
- 所以适用於处理 TCP, UDP 流量, 需要极佳 performance 的场景
- Gateway Load Balancer
- Layer 3 (Network layer) – IP Protocol
<<: DAY23 - [React hook] useState
>>: 离职倒数8天:佩服外表不起眼的商品,还有对包装华丽的东西起疑。