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

Tổng quan

ℹ️ Thông tin: Manual Scaling được thực hiện bằng cách điều chỉnh thủ công tham số Desired capacity của Auto Scaling Group. Sau khi sửa đổi giá trị này và xác nhận cập nhật, ASG sẽ tự động khởi chạy hoặc chấm dứt các EC2 instances để khớp với dung lượng mà bạn đã chỉ định.

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

Sau khi Auto Scaling Group của bạn được tạo, dịch vụ sẽ tự động khởi chạy một EC2 instance theo cấu hình của bạn. Để xác minh quá trình triển khai này:

  1. Điều hướng đến EC2 Console
  2. Chọn Load Balancer
  3. Chọn tab Resource map - new

Auto Scaling Group Initial State

ℹ️ Thông tin: Bạn sẽ thấy Target Group được liên kết với hai targets - EC2 instance ban đầu của bạn và instance mới được tạo bởi Auto Scaling Group.

Cấu hình Load Test

Bây giờ chúng ta sẽ cấu hình ứng dụng load testing đã tải xuống trước đó:

  1. Mở ứng dụng, nhấp chuột phải vào Test Plan > Add > Threads (Users) > Thread Group Auto Scaling Group Initial State
  2. Cấu hình các thiết lập sau:
    • Name: Load Test
    • Number of Threads (users): 20000
    • Ramp-up period (seconds): 100
    • Loop count: Infinite
    • Duration (seconds): 600 seconds
    • Nhấp vào Specify Thread lifetime
    • Startup delays: 0second

Load Test Configuration

  1. Nhấp chuột phải vào Load Test > Add > Sample > HTTP Request

  1. Quay lại fcaj-alb và sao chép DNS Name Starting the Load Test

  2. Nhập DNS Name bạn vừa sao chép, dán vào Server name or IP

Starting the Load Test

  1. Chúng ta thiết lập tần suất cho mỗi request:

    • Nhấp chuột phải vào Load Test > Add > Timer > Constant Timer
    • Thread Delay: 1000 ms
  2. Xem chi tiết từng request thành công hoặc thất bại: Nhấp chuột phải vào Load Test > Add > Listener > View Result Trees. Starting the Load Test Starting the Load Test

  3. Tóm tắt về tốc độ và tỷ lệ lỗi: Nhấp chuột phải vào HTTP Request > Add > Listener > Summary Reports Starting the Load Test Starting the Load Test

  4. Cuối cùng, nhấn tổ hợp phím Ctr + S để lưu file trước khi chúng ta bắt đầu kiểm tra Starting the Load Test

  5. Trên thanh công cụ, nhấn nút Start Starting the Load Test

Giám sát Hiệu suất Instance

Trong khi bài kiểm tra đang chạy, hãy quay lại AWS Management Console:

  1. Trong EC2 Console, chọn cả hai EC2 instances trong target group
  2. Nhấp vào tab Monitoring để quan sát các số liệu hiệu suất

Initial Performance Metrics

💡 Mẹo chuyên nghiệp: Tập trung vào năm số liệu (metrics) chính sau để hiểu hiệu suất ứng dụng của bạn khi chịu tải:

  • CPU Utilization (%): Hiển thị mức sử dụng bộ xử lý
  • Network in (bytes): Đo lường traffic đi vào
  • Network out (bytes): Đo lường traffic đi ra
  • Network packets in (count): Hiển thị số lượng gói tin đi vào
  • Network packets out (count): Hiển thị số lượng gói tin đi ra

ℹ️ Thông tin: Các biểu đồ hiển thị một đường cho mỗi instance được chọn. Việc chọn nhiều instances cho phép bạn so sánh hiệu suất của chúng cùng lúc, giúp bạn hiểu cách Load Balancer phân phối traffic.

Manually Scaling Down ASG

Để mô phỏng việc tối ưu hóa chi phí trong giờ thấp điểm:

  1. Điều hướng đến trang chi tiết Auto Scaling Group của bạn
  2. Lưu ý cài đặt hiện tại: Desired capacity = 1
  3. Nhấp vào Edit để sửa đổi dung lượng

ASG Initial Configuration

  1. Trong hộp thoại Group size, đặt cả Desired capacity và Min desired capacity thành 0
  2. Nhấp vào Update để áp dụng các thay đổi

Scaling Down Configuration

  1. Điều hướng đến tab Activity để giám sát hành động scaling

Scaling Down Configuration

⚠️ Cảnh báo: Trong khi instance đang bị chấm dứt, bạn nên tạm dừng ứng dụng load testing của mình để tránh các lỗi có thể xảy ra.

ℹ️ Thông tin: ASG sẽ tự động chấm dứt một instance dựa trên cấu hình đã cập nhật của bạn. Sau vài phút, khi quay lại Resource map của Load Balancer, bạn sẽ thấy chỉ còn lại một target.

Scaled Down Resource Map

💡 Mẹo chuyên nghiệp: Hãy nhớ khởi động lại chương trình load testing của bạn sau khi thao tác scaling hoàn tất để tiếp tục quá trình kiểm tra.

Quan sát Thông báo và Tác động Hiệu suất

  1. Sau khi scaling down, bạn sẽ nhận được một email thông báo từ Amazon SNS:

SNS Notification

  1. Quay lại EC2 Console để quan sát tác động lên instance còn lại của bạn:

Single Instance Metrics

Kết luận

⚠️ Cảnh báo: Bản demo này sử dụng các GET requests đơn giản, nhưng các ứng dụng trong thế giới thực thường liên quan đến các hoạt động phức tạp hơn, tiêu thụ nhiều tài nguyên CPU hơn đáng kể và có thể gặp phải những tác động hiệu suất rõ rệt hơn trong các sự kiện scaling.

🔒 Lưu ý về bảo mật: Mặc dù manual scaling cung cấp khả năng kiểm soát trực tiếp đối với chi phí cơ sở hạ tầng của bạn, nó đòi hỏi sự can thiệp và giám sát của con người, điều này có thể dẫn đến phản hồi chậm trễ trong các đợt tăng đột biến traffic không mong muốn. Hãy cân nhắc triển khai các chính sách tự động scaling cho các production workloads để duy trì cả hiệu suất và bảo mật.