Ở phần 1 của serries https://blog.vietnamlab.vn/gioi-thieu-elastic-load-balacing-trong-aws/
Mình đã giới thiệu về 3 services ELB mà AWS cung cấp cho người dùng
Tiếp theo đây mình sẽ trình bày rõ hơn về những điều đáng lưu tâm khi xây dựng một load balancer, và xây dựng một load balancer cơ bản
Nội dung của bài viết này bao gồm
- Security Groups
- Health Check
- Cấu hình Classic load balancer
I. Security Groups
Nhu cầu thường thấy của một bài toán áp dụng load balancer (LB)
- Yêu cầu các request từ phía client đều phải thông qua LB ( các request đều bị hạn chế truy cập trực tiếp đến App Servers )
- LB là điểm kết nối duy nhất đến môi trường Internet và cung cấp các chứng chỉ SSL cho ứng dụng
Để triển khai một dịch vụ LB thỏa mãn nhu cầu như trên ta phải xây dựng ít nhất là 2 Security Groups
- Security group của LB: Cho phép giao thức HTTP/ HTTPS từ internet
- Security group của ứng dụng: Cho phép giao thức HTTP từ LB
II. Health-check
Health-check là một vấn đề rất quan trọng đối với một hệ thống có sử dụng LB
- Health-check Cho phép LB biết được liệu App Server nào đang sẵn sàng để tiếp nhận và xử lý các yêu cầu được chuyển tiếp đến
- Việc kiểm tra Health-check được thực hiện bằng cách đơn giản là kiểm tra port hoặc gửi 1 request đến app server (ví dụ /heath). Thông điệp App server phản hồi LB cho phép LB phán đoán những request tiếp theo có nên gửi đến App Server này nữa hay không
Nếu App server trả về khác 200 nghĩa là App Server này đang có vấn đề
III. Triển khai Classic load balancer
Việc triển khai Classic load balancer được AWS hỗ trợ chỉ với một vài thao tác đơn giản là đã có thể xây dựng được một hệ thống xử dụng LB
Việc xây dựng Classic load balancer sẽ bao gồm 4 bước:
- Định nghĩa load balancer
- Chỉ định Security Groups
- Cấu hình Health Check
- Thêm EC2 Instance
Để bắt đầu triển 1 Demo cho Classic load balancer ta sẽ chuẩn bị 2 EC2 đóng vai trò là các App server. Sau đó xây dựng LB cho 2 App Server này
Chuẩn bị
Chúng ta tạo 2 Instances EC2 ( 2 instance mình dùng là Ubuntu 20.4 ) và cài dịch vụ apache2 trên mỗi Instance
Sau đó thay đổi nội dung trong /var/www/html/index.html bằng command sau
echo "Instance $(hostname -f)" > /var/www/html/index.html
Sau đó ta thêm Rule cho phép HTTP vào Security Group của Instance này
Lúc này trên trình duyệt khi trỏ đến ip của instance ta sẽ có nội dung như sau
Cài đặt Classic Load Balancer
Bạn vào phần Services →Load Balancing →Create Load Balancer
Bước 1: Định nghĩa load balancer
Bước 2: Chỉ định Security Groups
Bước 3: Cấu hình Security
Bước này bạn có thể bỏ qua vì phần Security Groups chỉ cho phép giao thức HTTP
Bước 4: Cấu hình Health Check
Bước 5: Thêm ECs
Tới đây các thao tác cơ bản để dựng một hệ thống LB coi như đã hoàn thành bạn tiếp tục các thao tác bấm vào nút xanh ở dưới bảng điều khiển để đến phần review xem lại các thông tin cơ bản và create
Bước 6: Kiểm tra service của Instances
Tại bảng điều khiển LB ta có thể kiểm tra trạng thái của các EC2 được thêm vào LB
Sau khi thấy trạng thái chuyển sang InService ta có thể sử dụng browser để xem LB có hoạt động hay không bằng cách sử dụng DNS name
Sau khi xác nhận cấu hình LB thành công ta sẽ chuyển sang bước cuối cùng
Bước cuối: Thiết lập lại security của AppServer
Bây giờ ta sẽ chỉ cho phép HTTP từ LB đến AppServer với source là my-clb-1 ( Đây là tên của Security Group được chỉ định cho LB)
Bây giờ việc truy cập trực tiếp đến Intances sẽ connect time-out và chỉ có thể truy cập thông qua LB
Kết bài
Mình vừa chia sẻ cách triển khai CLB trên AWS cũng như các vấn đề đáng được quan tâm khi cấu hình LB như Security Group, Health Check. Hi vọng bài viết này sẽ giúp ích cho các bạn
Các chủ đề tiếp theo của Series này sẽ là Application Load Balancer, Network Load Balancer, các vấn đề về sticky...Hẹn sớm gặp lại các bạn :D