Tạo Auto Scaling Group

Tổng quan

ℹ️ Thông tin: Auto Scaling Groups tự động điều chỉnh dung lượng tính toán của ứng dụng dựa trên nhu cầu, đảm bảo hiệu suất tối ưu trong khi vẫn kiểm soát được chi phí. Trong phần này, chúng ta sẽ cấu hình một Auto Scaling Group để quản lý động các EC2 instances của chúng ta phía sau Application Load Balancer.

Hiểu sự cần thiết của Auto Scaling

⚠️ Cảnh báo: Quá trình kiểm tra của chúng ta cho thấy sự bất ổn định về hiệu suất khi ứng dụng nhận được khối lượng traffic cao. Mặc dù việc thêm thủ công các EC2 instances và phân phối traffic bằng một Load Balancer có thể giúp ích, nhưng cách tiếp cận này không thực tế vì một số lý do:

  • Mỗi instance mới yêu cầu cấu hình thủ công với ứng dụng và các dependencies
  • Việc phản hồi các biến động của traffic yêu cầu giám sát liên tục
  • Việc mở rộng quy mô thủ công không thể phản hồi hiệu quả với các đợt tăng đột biến của traffic không mong muốn

Auto Scaling giải quyết những thách thức này bằng cách tự động điều chỉnh dung lượng dựa trên các chính sách đã được xác định.

Tạo Auto Scaling Group

Điều hướng đến giao diện tạo Auto Scaling Group:

  1. Trong EC2 management console:
    • Cuộn xuống bảng điều hướng bên trái
    • Chọn Auto Scaling Groups
    • Nhấp vào Create Auto Scaling group

Auto Scaling Group Creation Interface

Cấu hình Launch Template

Trong trình hướng dẫn tạo Auto Scaling group:

  1. Cấu hình cơ bản (Basic configuration):
    • Name: fcaj-asg
    • Launch template: chọn fcaj-template
    • Version: Default (1)

Launch Template Selection

ℹ️ Thông tin: Launch template chứa tất cả các chi tiết cấu hình cần thiết để khởi chạy instances, bao gồm AMI, instance type, key pair, security groups, và user data scripts.

Launch Template Configuration

⚠️ Cảnh báo: Tên ASG phải khớp với tên được chỉ định trong phần 2.6 cho cấu hình Predictive Scaling. Launch template phải bao gồm tất cả các thành phần bắt buộc (MySQL Client, Node.js, application source code, và PM2) để instance hoạt động bình thường.

Cấu hình Network Settings

  1. Trong phần cấu hình mạng:

    • VPC: chọn AutoScaling-Lab
    • Availability Zones and subnets: chọn tất cả 3 public subnets
    • Nhấp vào Next

Network Configuration

💡 Mẹo chuyên nghiệp: Phân phối các instances trên nhiều Availability Zones giúp cải thiện độ tin cậy của ứng dụng. Nếu một AZ gặp sự cố, các instances ở các AZs khác vẫn tiếp tục phục vụ traffic.

Cấu hình Tích hợp Load Balancer

  1. Kết nối Auto Scaling Group của bạn với load balancer đã tạo trước đó:

    • Load balancing: chọn Attach to an existing load balancer
    • Attachment method: chọn Choose from your load balancer target groups
    • Target group: chọn fcaj-asg HTTP

Load Balancer Integration

ℹ️ Thông tin: Khi được cấu hình đúng, menu thả xuống sẽ hiển thị target group hiện có của bạn, xác nhận rằng cả Application Load Balancer và Target Group đều được thiết lập chính xác.

  1. Để cấu hình bổ sung:
    • Health checks: bật Turn on Elastic Load Balancing health checks
    • Để các cài đặt health check còn lại ở mức mặc định

Health Check Configuration

Cấu hình Kích thước Group và Scaling Policies

  1. Định nghĩa dung lượng ban đầu và các giới hạn scaling:
  • Group size:
    • Desired capacity: 1
  • Scaling limits:
    • Minimum capacity: 1
    • Maximum capacity: 3
  • Scaling policies: No scaling policies (chúng ta sẽ cấu hình các chính sách này trong các phần sau)

ℹ️ Thông tin: Chúng ta sẽ hoãn việc cấu hình scaling policy vì chúng ta sẽ triển khai và so sánh nhiều chiến lược scaling khác nhau trong các phần tiếp theo. Group Size Configuration

  1. Đối với Instance maintenance: Chọn No policy

Instance Maintenance Configuration

  1. Bên dưới phần Monitoring:
    • Chọn Enable group metrics collection within CloudWatch
    • Nhấp vào Next

Monitoring Configuration

Cấu hình Notifications

Thiết lập các thông báo Amazon SNS để giám sát các sự kiện Auto Scaling:

  1. Nhấp vào Add notification Notification Configuration

  2. Nhấp vào Create a topic Notification Configuration

  3. Cấu hình Notification configuration:

    • SNS topic: asg-topic
    • Recipients: nhập địa chỉ email của bạn
    • Event types: chọn tất cả event types
  4. Nhấp vào Next Notification Configuration

  5. Nhấp vào Next Notification Configuration

  6. Xem lại cấu hình của bạn và nhấp vào Create Auto Scaling group. Notification Configuration

🔒 Lưu ý về bảo mật: Các thông báo cung cấp nhận thức theo thời gian thực về các sự kiện scaling, giúp bạn giám sát các hành vi không mong muốn có thể chỉ ra các vấn đề bảo mật hoặc sự cố ứng dụng.

Xác minh việc tạo Auto Scaling Group

Sau khi tạo, bạn sẽ nhận được email xác nhận. Nhấp vào Confirm subscription. Sau đó, bạn sẽ thấy một thông báo xác nhận.

Notification Configuration

Kiểm tra hoạt động Auto Scaling trong AWS Management Console:

Chọn Auto Scaling Group của bạn. Điều hướng đến tab Activity để xem các sự kiện scaling Notification Configuration

⚠️ Cảnh báo: Khi chúng ta triển khai các chiến lược scaling khác nhau trong các phần tiếp theo, bạn có thể nhận được nhiều email thông báo. Điều này là có chủ ý để giúp bạn giám sát các hoạt động scaling.

💡 Mẹo chuyên nghiệp: Auto Scaling Groups hoạt động tốt nhất khi được kết hợp với CloudWatch alarms để kích hoạt các hành động scaling dựa trên các số liệu (metrics) như CPU utilization, network traffic, hoặc các custom application metrics (số liệu ứng dụng tùy chỉnh). Chúng ta sẽ khám phá các tùy chọn này trong các phần sắp tới.