Saturday, January 18, 2025

[AWS] Tìm hiểu Classic Load Balancer trong AWS

-

Classic Load Balancer là một dịch vụ Load Balancer của AWS được giới thiệu từ năm 2009. Nó được gọi là “Classic” để phân biệt với các dịch vụ Load Balancer mới hơn của AWS, bao gồm Application Load Balancer và Network Load Balancer.

Classic Load Balancer có thể phân phối lưu lượng truy cập từ người dùng đến các instance của Amazon Elastic Compute Cloud (EC2) thông qua các giao thức HTTP, HTTPS hoặc TCP. Classic Load Balancer hoạt động ở layer 4 và 7 trong mô hình OSI. Nó cũng hỗ trợ sticky sessions, health checks, SSL offloading, và chuyển tiếp TCP/SSL.

Tuy nhiên, so với các dịch vụ Load Balancer mới hơn của AWS, Classic Load Balancer có hạn chế trong số lượng kết nối và lưu lượng tối đa mà nó có thể xử lý. Nó cũng không hỗ trợ WebSockets và định tuyến dựa trên địa chỉ IP của khách hàng. Do đó, AWS khuyến khích người dùng nên sử dụng các dịch vụ Load Balancer mới hơn thay vì Classic Load Balancer để có thể sử dụng được nhiều tính năng mới và khả năng mở rộng cao hơn.

Thực hành tạo 1 Classic Load Balancer như sau, đầu tiên hãy tạo 1 Instance như dưới.

Chỗ user data chúng ta chạy đoạn code này để khởi tại 1 máy chủ web httpd nhé.

#!/bin/bash
# Use this for your user data (script without newlines)
# install http (Linux 2 version)
yum update -y
yum install -y httpd.x86_64
systemctl start http. service
systemctl enable http. service
echo "Hello World from $ (hostname -f)" > /var/www/html/index.html

Sau khi tạo xong Instance bạn bấm vào Load Balancers để bắt đầu thiết lập Load Balancer.

Bấm vào Create Load Balancer.

Bạn sẽ thấy các loại Load Balancers hiện ra, trường hợp của chúng ta đang demo Classic Load Balancer nên bạn hãy kéo xuống dưới cùng để chúng ta chọn Classic Load Balancer.

Bấm Create tại Classic Load Balancer nhé.

Điền đầy đủ các thông tin Classic Load Balancer như dưới:

  • Mình sẽ sử dụng VPC mặc định.
  • Nếu bạn muốn biến nó thành Classic Load Balancer nội bộ thì hãy tích vào Create an internal load balancer. Trường hợp này mình đang muốn các máy tính ngoài internet có thể kết nối đến máy chủ thông qua Classic Load Balancer nên mình sẽ không sử dụng tính năng này.
  • Do mình không sử dụng cấu hình VPC nâng cao nên mình không tích vào Enable advanced VPC configuration.

Ở phần Security Groups mình sẽ tạo ra 1 Security Groups mới và cho phép giao thức HTTP cổng 80 từ tất cả các nguồn từ bên ngoài truy cập vào bên trong server.

Đến đây bạn sẽ nhận được 1 thông báo về bảo mật, nhưng do chúng ta đang demo nên chúng ta có thể bỏ qua để chuyển nhanh qua các phần khác, bấm Next: Configure Health Check để tiếp tục.

Configure Health Check với thông tin như sau.

Chúng ta sẽ lựa chọn 1 EC2 Instance để găn Classic Load Balancer.

Do đang demo nên mình sẽ bỏ qua gắn tags.

Phần này sẽ cho bạn review lại config 1 lần nữa trước khi bạn bấm tạo nó.

Quá trình tạo Classic Load Balancer bắt đầu, nếu thành công thì bạn sẽ nhận được thông báo như dưới.

Quay lại EC2 Instance, bạn đợi 1 lát thông tin Classic Load Balancer sẽ xuất hiện nhưng nó đang ở trạng thái OutOfService.

Vui lòng đợi nó 1 chút, sau khi hoàn thành thiết lập nó sẽ chuyển qua trạng thái InService. Nếu trong 1 đến 2 phút trạng thái của Classic Load Balancer không chuyển qua InService thì có thể bạn đã thiết lập sai gì đó.

Hãy copy domain này vào trình duyệt web, bạn sẽ có kết quả.

Truy cập web thành công.

Nhưng có 1 vấn đề là khi mình truy cập web bằng IP của Instance thì kết quả vẫn truy cập được. Xét về bảo mật thì nó không an toàn.

Nếu bạn kiểm tra Security Groups của Instance bạn sẽ thấy có 2 quy tắc về HTTP như dưới.

Bạn nhận được 3 quy tắc đã được tạo từ trước như dưới.

Hãy xóa 2 quy tắc liên quan đến HTTP.

Và bây giờ hay thử truy cập web bằng ip, bạn sẽ nhận được 1 vòng quay vô tận và kết quả cuối cùng là web không thể truy cập.

Kết quả cũng cho thấy Classic Load Balancer cũng chuyển sang trạng thai OutOfService.

Thật đơn giản bây giờ bạn vào Security Groups của Instance và tại phần Inbound rule chỉnh sửa quy tắc HTTP từ cho phép tất cả các nguồn truy cập web sang chỉ cho phép Security Groups của Classic Load Balancer.

Khi đó bạn kiểm tra lại trạng thai Classic Load Balancer đã chuyển sang InService. Lúc này bạn không thể truy cập web bằng IP được nữa mà chỉ có thể truy cập web bằng domain.

Bây giờ để kiểm tra Classic Load Balancer, bạn có thể tạo thêm Instance.

Vào dịch vụ Load Balancer, chọn Classic Load Balancer của config xong ở phần trên và bấm Edit Instances.

Chọn các Instances vừa được tạo xong và bấm Save lại.

Bạn sẽ nhận thấy sau khi bấm lưu lại, có 2 Instance đã được thêm vào Classic Load Balancer và đang ở trạng thái OutOfService.

Chờ đợi trong chốc lát, trạng thái của Classic Load Balancer đã chuyển sang InService.

Và quay lại trình duyệt web, khi chúng ta tải lại trang bạn sẽ nhận được các nội dung khác nhau về thông tin IP, AZ,…Lý do là mỗi khi bạn tải lại trang thì theo cơ chế Load Balancer thì sẽ có 1 instance bất kỳ trả lời yêu cầu của bạn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories