ALB (Application Load Balancer)

1 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

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ừ HTTP sang HTTPS.
  • Đị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/users và example.com/posts
  • Dựa trên hostname trong URL
    → Ví dụ: one.example.com và 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?