Auto Scaling Group#

Khái niệm chung về Auto Scaling Group#

Load Balancer sẽ làm nhiệm vụ phân chia tải giữa các instances (servers). Nếu một instance bị quá tải, Load Balancer sẽ chuyển hướng lưu lượng truy cập đến các instance còn lại có khả năng thực hiện các request đó nhằm đảm bảo cho tất cả các server luôn được hoạt động một cách cân bằng. Tuy nhiên khi tất cả các instances trong group member đều bị cao tải, Load Balancer sẽ không giải quyết được. Thông thường load balancer chỉ có thể set tĩnh các VM vào trong group member. Auto Scaling Group là tính năng hỗ trợ cho Load balancer, hệ thống sẽ tự động tăng/giảm(Scale) số lượng các VM trong Group member theo điều kiện mà người dùng cài đặt .

Step

Auto Scaling là quá trình tự động add mới (scaling in) hoặc remove (scaling out) instance dựa trên nhu cầu traffic của application hoặc của hệ thống. Người dùng cũng có thể thiết lập được số lượng instance min của từng Auto Scaling Group, Auto Scaling sẽ điều chỉnh nhằm đảm bảo số lượng instance cung cấp cho hệ thống không bao giờ nhỏ hơn con số này. Ngược lại, người dùng cũng có thể thiết lập số lượng instance max của Auto Scaling Group để đảm bảo số lượng instance cung cấp cho hệ thống không bao giờ vượt quá con số max. Nếu người dùng muốn thiết lập số lượng instances mong muốn, người dùng có thể tạo group ngay tại thời điểm đó hoặc bất kì thời điểm nào sau này, Auto Scaling Group sẽ luôn đảm bảo người dùng có đủ số lượng instance như mong muốn.

Auto Scaling

Step

Điều kiện để sử dụng tính năng Auto Scaling Group#

Người dùng cần chuẩn bị một số điều kiện để sử dụng hiệu quả tính năng auto scale:

  • Upload ít nhất một custom image chứa ứng dụng của người dùng lên hệ thống.

  • Tạo template để khi thực hiện scale từ custom image, hệ thống sẽ scale theo các template này.

  • Có ít nhất một Load Balancer (Load Balancer này không chứa các Group member) đồng thời Load Balancer này phải ở trạng thái đã online.

Các hình thức Auto Scaling Group#

Có hai điều kiện người dùng có thể cài đặt để hệ thống thực hiện Scale, người dùng có thể chọn một trong hai điều kiện sau:

1. Scaling Policy:#

Hệ thống tự động scale khi lượng sử dụng CPU đạt n %.

Để hệ thống thực hiện scale được theo điều kiện này, người dùng cần cài đặt các thông số sau:

  • Add Load Balancer: Người dùng thực hiện add thêm một Load Balancer, khi người dùng add Load Balancer, hệ thống sẽ tự động add thêm các instances mà người dùng tạo ra thành group member của Load Balancer. Load Balancer này sẽ có nhiệm vụ phân tải giữa các instances trong Group member.

  • Choose Template: Lựa chọn một Template mà người dùng mong muốn hệ thống sẽ Scale lên/xuống theo cấu hình đó.

  • Desired instances: Số instances ban đầu mong muốn hệ thống sẽ tạo ra.

  • Minimum instance: Số lượng instances nhỏ nhất mà người dùng mong muốn group này có. Khi hệ thống scale down, sẽ đảm bảo không scale down xuống dưới số lượng instance này.

  • Maximum node: Số lượng instances tối đa mà người dùng mong muốn group này có. Khi hệ thống thực hiện Scale up, sẽ đảm bảo không scale up lên quá số lượng instance này.

  • When CPU utilization more/less than Người dùng điền lượng sử dụng CPU mà mong muốn khi sử dụng đến lượng CPU đó thì hệ thống sẽ thực hiện Scale lên/xuống

  • Scaling instance up/down: Người dùng thiết lập số lượng instance mà hệ thống sẽ scale lên hoặc số lượng instance mà hệ thống sẽ xóa đi.

  • Maximum instance: số lượng Virtual Machine mà hệ thống thực hiện scale lên/giảm đi không được vượt quá số lượng này

  • Cool down: Thời gian scale up/down sẽ cách nhau bao lâu. Trong khoảng thời gian cool down, hệ thống sẽ không thực hiện check các điều kiện để scale.

2. Scheduler automatically:#

Hệ thống tự động scale theo lịch người dùng cài đặt trước.

Người dùng thực hiện cài đặt các thông số như sau:

  • Lựa chọn kiểu Scale up hoặc Scale down.

  • From date (to date): Người dùng lựa chọn khoảng thời gian mà hệ thống sẽ thực hiện scale lên, ngoài khoảng thời gian này, hệ thống sẽ giữ số instance bằng số desires intances mà người dùng đã set. Nếu sau đó, người dùng thực hiện xóa instance thì số desires instance được hiểu là số lượng instance còn lại sau xóa.

Usecase sử dụng#

Tùy từng mục đích sử dụng mà người dùng có thể lựa chọn các hình thức Scale cho hợp lý.

Scale theo lượng sử dụng CPU sẽ phù hợp cho cầu sử dụng các instance thường xuyên bị biến động về tải, không có dự đoán trước.

Scale theo Scheduler sẽ phù hợp cho nhu cầu sử dụng các instance có dự đoán trước về khoảng thời gian cao tải hoặc khoảng thời gian thấp tải.