ℹ️ Information: Ở phần kiểm thử kết quả trước đó, chúng ta nhận thấy khi ứng dụng nhận nhiều request, hiệu suất không còn ổn định. Giải pháp là tăng số lượng EC2 Instance trong hệ thống và sử dụng Load Balancer để phân phối các yêu cầu từ người dùng.
Tuy nhiên, phương pháp thủ công không hiệu quả vì để khởi tạo một EC2 Instance mới, chúng ta cần đảm bảo mỗi instance đều có đầy đủ ứng dụng, thư viện và cấu hình cần thiết để xử lý các yêu cầu.
Ở giao diện quản lý EC2, kéo bảng lựa chọn bên trái xuống cuối:
Trong giao diện tạo Auto Scaling group, điền các thông tin sau:
FCJ-Management-ASG
FCJ-Management-template
⚠️ Warning: Tên của ASG nên đặt đúng với tên ASG đã được đặt ở phần 2.6 trước đó, để đảm bảo tính nhất quán cho Predictive Scaling.
🔒 Security Note: Launch template được chọn cho ASG phải là template đã được cài đặt đầy đủ MySQL Client, Node, Source Code và PM2 để đảm bảo các Target hoạt động bình thường. Nếu bạn đã làm theo các bước trong phần 2 và phần 3, bạn đã thiết lập đúng.
Trong phần Network, cấu hình như sau:
ℹ️ Information: Trước đó chúng ta đã tạo Application Load Balancer và Target Group đã được gắn vào bộ cân bằng tải. Giờ chúng ta sẽ kết nối ASG với Load Balancer đó.
💡 Pro Tip: Khi cấu hình đúng Target Group và Application Load Balancer, lựa chọn Existing load balancer target group sẽ hiển thị Target Group đã tạo, xác nhận rằng cả ALB và TG đều tồn tại và được cấu hình đúng.
Trong phần VPC Lattice integration options: chọn No VPC Lattice service (không sử dụng trong bài lab này)
Tiếp theo, ở phần Health checks:
Trong phần Additional settings, ở mục Monitoring:
ℹ️ Information: Trong phần này, chúng ta xác định hành vi mở rộng của Group và số lượng Instance sẽ được khởi tạo trong quá trình Scale out (mở rộng) và Scale in (thu hẹp).
Trong Automatic scaling - optional: chọn No scaling policies (tạm thời chưa thiết lập chính sách scaling cho ASG)
Trong Instance maintenance policy: chọn No policy
💡 Pro Tip: Chúng ta không thiết lập chính sách scaling ngay lúc này vì sẽ thực hiện 4 chiến lược scaling khác nhau trong các bước tiếp theo.
ℹ️ Information: Trong phần này, chúng ta thiết lập thông báo qua email (sử dụng Amazon SNS) khi ASG thực hiện các hành động như:
Cấu hình thông báo:
asg-topic
(tạo topic mới)Xác nhận lại các thông tin và ấn Create Auto Scaling group
⚠️ Warning: Trong quá trình tạo, bạn sẽ nhận được email xác nhận đăng ký từ SNS topic. Hãy kiểm tra và xác nhận đăng ký để nhận các thông báo tiếp theo.
Vì chúng ta đã thiết lập Desired capacity = 1, ASG sẽ tự động tạo một Instance mới, và bạn sẽ nhận được email thông báo.
Vào tab Activity của ASG FCJ-Management-ASG để kiểm tra:
💡 Pro Tip: Trong quá trình thực hiện các chiến lược scaling khác nhau, bạn có thể nhận được nhiều email thông báo. Đây là chủ đích khi chúng ta thiết lập SNS, giúp theo dõi và kiểm soát tốt hơn các hoạt động của Auto Scaling Group.