Elastic Load Balancer trong AWS

Elastic Load Balancer là gì

ELB là gì

Từ hình vẽ trên chúng ta có thể hình dung được cách hoạt động của 1 load balancer là như thế nào. Load Balancer là 1 server dùng để forward traffic đến nhiều server (Ec2...)

Tại sao cần sử dụng Load Balancer?

  • Chia traffic ra nhiều server khác để chia tải
  • Expose ra 1 DNS để truy cập vào ứng dụng của bạn
    • Điểu này rất quan trọng, nếu chúng ta có 10 server con (ec2), chúng ta không thể truy cập 10 đường link khác nhau
    • Vì vậy giải pháp sử dụng ALB và truy cập ứng dụng qua 1 enpoint duy nhất là hiệu quả hơn
  • ELB có thể tích hợp với rất nhiều dịch vụ của AWS
  • Sử dụng health check cho instance của bạn
  • Cung cấp HTTPS cho ứng dụng (sẽ được tìm hiểu ở phần ALB)
  • HA cross zone

Health Check trong load balancer

Đây là phần vô cùng quan trọng trong ứng dụng ELB.

Health check trong ELB

  • Đây là cách để ELB xác nhận xem EC2 có khả năng tiếp nhận request hay không (health)
  • Load Balancer sẽ gửi định kỳ 1 request đến instance
    • Nếu response ok (200): server vẫn hoạt động bình thường
    • Nếu response khác: server đang gặp vấn đề, Load Balancer sẽ không gửi request đến server này nữa

Security Group trong ELB

Security trong Load Balancer

  • ELB chúng ta tạo 1 SG cho phép các request từ ngoài internet vào ELB qua cổng 80 (HTTP), 443(HTTPS) và sẽ chuyển request này đễn EC2 instance qua cổng 80 (HTTP)
  • EC2 instance tạo 1 SG chỉ nhận request từ ELB qua cổng 80 (HTTP)
  • Như vậy sẽ ko có 1 request nào từ internet có thể tấn công được vào EC2 instance

Target Group trong AWS

Target group trong AWS

Mỗi Target Group dùng để route request tới 1 hay nhiều target khác nhau. Như ở hình vẽ trê, ALB đặt các Rule Listener để định tuyến request.

  • Ví dụ:
    • Rule Listener ở port 80 (HTTP) sẽ forward request đến target group 1
    • Rule Listener ở port 443 (HTTPS) sẽ forward request đến target group 2
  • Target type:
    • instance: EC2 instance được xác định bởi instance ID
    • ip: 1 địa chỉ IP (phải là private IP)
    • lambda: lambda function (chúng ta sẽ học ở phần serverless)
  • Health check được thực hiện ở level target group
Bài trước
left Bài trước
left Giới thiệu về High Availability và Scalability
Bài tiếp theo
Các loại Load Balancer trong AWS right
Bài tiếp theo right
Avatar Phan Văn Đức
VIẾT BỞI

Phan Văn Đức