Elastic Load Balancer 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 endpoint 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.
- Đâ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
- 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
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