Kiểm tra giải pháp scheduled scaling

Tổng quan

ℹ️ Thông tin: Scheduled Scaling cho phép bạn cấu hình Auto Scaling Group của mình để tự động điều chỉnh dung lượng dựa trên những thay đổi tải có thể dự đoán được. Cách tiếp cận này rất lý tưởng cho các workloads có các mẫu (patterns) nhất quán xảy ra vào các thời điểm cụ thể hàng ngày, hàng tuần hoặc theo mùa.

Thiết lập Môi trường Kiểm tra

Vì chúng ta đã cấu hình môi trường load testing trong phần trước, chúng ta sẽ tiếp tục sử dụng các thiết lập đó để đảm bảo tính nhất quán trong việc so sánh các phương pháp scaling.

Cấu hình Scheduled Scaling

Để triển khai scheduled scaling:

  1. Điều hướng đến trang chi tiết Auto Scaling Group của bạn
  2. Chọn tab Automatic scaling
  3. Cuộn xuống phần Scheduled actions ở cuối trang

Scheduled Actions Section

  1. Nhấp vào Create scheduled action

Create Scheduled Action Button

  1. Cấu hình scheduled action với các tham số sau:
    • Name: Rush hour
    • Desired capacity: 1
    • Min: 1 (có thể đặt thành 0 tùy thuộc vào yêu cầu của bạn)
    • Max: 3
    • Recurrence: Once (hoặc chọn một pattern khác nếu cần)
    • Time zone: Asia/Bangkok (chọn time zone phù hợp của bạn)
    • Specific start time: Đặt thành thời gian gần nhất so với cấu hình hiện tại của bạn
    • Nhấp vào Create để triển khai scheduled action Scheduled Action Created

⚠️ Cảnh báo: Các tham số Desired capacity, Min, và Max sẽ ghi đè các cài đặt ASG tương ứng trong suốt khoảng thời gian được lên lịch. Khi triển khai nhiều loại scaling trong môi trường production, hãy xem xét cẩn thận cách các giá trị này tương tác với các scaling policies khác.

Sau khi tạo thành công, bạn sẽ thấy scheduled action của mình trong danh sách:

Scheduled Action Created

Kiểm tra Scheduled Scaling

Để kiểm tra hiệu quả:

  1. Bắt đầu chương trình load testing của bạn khoảng 5 phút trước khi scheduled scaling action được thiết lập để kích hoạt

Load Testing Program

  1. Khi đến thời gian đã lên lịch, hãy giám sát tab Activity của ASG của bạn
  2. Bạn sẽ quan sát thấy sự kiện Executing scheduled action Rush hour kích hoạt (trigger) vào thời gian đã cấu hình, theo sau là việc khởi chạy một instance mới

ASG Activity Log

Phân tích Kết quả

Để đánh giá hiệu quả của scheduled scaling:

  1. Quay lại EC2 Console và kiểm tra các số liệu của instance (lưu ý rằng các metrics cập nhật 15 phút một lần)
  2. Tập trung vào biểu đồ CPU Utilization để quan sát tác động của bài kiểm tra của bạn

Initial CPU Metrics

💡 Mẹo chuyên nghiệp: Trong ví dụ này, bạn có thể thấy CPU utilization tăng đột biến trong khoảng từ 16:00 đến 16:30, tương ứng với thời điểm chúng ta bắt đầu load test. Sau khi instance mới được thêm vào bởi scheduled action, tải đã được phân phối, dẫn đến sự sụt giảm sau đó.

Ứng dụng Thực tế

ℹ️ Thông tin: Scheduled Scaling đặc biệt có giá trị đối với các ứng dụng có usage patterns có thể dự đoán được:

  • Các nền tảng giao dịch tài chính với các đợt tăng đột biến traffic khi mở/đóng cửa thị trường
  • Các trang thương mại điện tử trong những giờ mua sắm cao điểm hàng ngày
  • Các ứng dụng doanh nghiệp với usage patterns theo giờ làm việc
  • Các công việc xử lý hàng loạt chạy vào các thời điểm cụ thể

🔒 Lưu ý về bảo mật: Mặc dù scheduled scaling giúp tối ưu hóa việc sử dụng tài nguyên, điều quan trọng là phải duy trì các mức dung lượng tối thiểu có thể xử lý các đợt tăng traffic đột biến không mong muốn hoặc các cuộc tấn công DDoS tiềm ẩn bên ngoài các khoảng thời gian scheduled scaling.

Kết luận

Scheduled Scaling cung cấp một cách tiếp cận chủ động để quản lý dung lượng cho các workloads có patterns dự đoán được. Tuy nhiên, để đạt được khả năng phục hồi và hiệu quả chi phí tối đa, AWS khuyến nghị kết hợp scheduled scaling với các loại scaling khác:

  • Sử dụng scheduled scaling cho các patterns dựa trên thời gian có thể dự đoán được
  • Triển khai dynamic scaling để xử lý các biến động traffic không mong muốn
  • Cân nhắc predictive scaling cho các workloads có patterns phức tạp nhưng lặp lại

Cách tiếp cận đa lớp này đảm bảo ứng dụng của bạn luôn phản hồi nhanh trong khi vẫn tối ưu hóa việc sử dụng tài nguyên và chi phí.