ALB (Application Load Balancer)

Tổng quan
- Application Load Balancer hoạt động ở tầng Layer 7 (HTTP protocol - theo mô hình OSI).
- Cân bằng tải tới nhiều ứng dụng HTTP khác nhau trên nhiều máy EC2 (được gom nhóm theo
Target Group). - Hỗ trợ cân bằng tải đến nhiều ứng dụng chạy trên cùng một máy, ví dụ như trong các container (ECS, Docker).
- Hỗ trợ giao thức HTTP/2 và WebSocket.
- Hỗ trợ chuyển hướng (redirect), ví dụ như từ
HTTPsangHTTPS. - Định tuyến (routing) đến các nhóm target khác nhau thông qua bảng định tuyến:
- Dựa trên path trong URL
→ Ví dụ:example.com/usersvàexample.com/posts
- Dựa trên path trong URL

- Dựa trên hostname trong URL
→ Ví dụ:one.example.comvàother.example.com - Dựa trên query string hoặc header
→ Ví dụ:example.com/users?id=123&order=false

- ALB rất phù hợp với kiến trúc microservices và các ứng dụng dạng container
→ Ví dụ: chạy trên Docker hoặc Amazon ECS. - Hỗ trợ tính năng port mapping
→ Cho phép chuyển tiếp đến các dynamic port trong ECS - So với Classic Load Balancer:
→ Nếu dùng Classic LB thì mỗi app sẽ cần một LB riêng, trong khi với ALB có thể gom nhiều app theo routing rule trong cùng một LB. - Application sẽ không thấy được IP của client vì không trực tiếp giao tiếp với nó. Tuy nhiên:
- IP của client sẽ được thêm vào trong header X-Forwarded-For
- Port của client sẽ được thêm vào trong header X-Forwarded-Port
- Proto của client sẽ được thêm vào trong header X-Forwarded-Proto

Bạn thấy bài này thế nào?