Skip to content
Khoá học AWSElastic Compute CloudSpot Instance và Spot Fleet

Tìm hiểu về EC2 Spot Instance & Spot Fleet

EC2 Spot Instance là gì

EC2 Spot Instances là một loại EC2 Instance được AWS bán lại từ tài nguyên máy chủ không được sử dụng, giúp bạn tiết kiệm chi phí đáng kể (giảm tới 90% so với On-Demand).

Spot Instances phù hợp cho các workload chịu lỗi (fault-tolerant) như: xử lý batch, phân tích dữ liệu, CI/CD, rendering, v.v.

Khi nào instance bị thu hồi

  • AWS có thể thu hồi Spot Instance nếu:
    • Giá Spot hiện tại (current_price) vượt quá giá bạn chấp nhận (max_price).
    • Không còn đủ tài nguyên dự phòng.
  • Bạn sẽ nhận thông báo trước 2 phút để xử lý.
⚠️

Spot Block là một tùy chọn cho phép bạn giữ Spot Instance trong một khoảng thời gian nhất định mà không bị thu hồi. → Tính năng này đã bị loại bỏ từ ngày 01/01/2023.

Spot Fleet là gì?

Spot Fleet = Set of Spot Instances + (optional) On-Demand Instances

Spot Fleet sẽ tự động hóa quá trình yêu cầu và quản lý một tập hợp các phiên bản Spot instances trên nhiều loại instance, Availability Zone và Purchase Options khác nhau. Điều này giúp tăng cường tính khả dụng và giảm thiểu rủi ro bị gián đoạn của các ứng dụng của bạn khi sử dụng Spot Instances.

“Fleet” có nghĩa là “Hạm đội” để dễ nhớ thì nhắc đến Spot Fleet sẽ là 1 hạm đội các Spot Instances ☺️

Cách hoạt động của Spot Fleet

Spot Fleet hoạt động dựa trên một số nguyên tắc chính:

  1. Spot Fleet Request: Bạn tạo một Spot Fleet request, trong đó bạn xác định các thông số sau:
    • Target Capacity: Tổng số đơn vị Capacity mà bạn muốn Fleet duy trì (ví dụ: vCPU, RAM, số lượng Instance).
    • Pool of Instances: Các loại Instance (instance types), Availability Zones và subnet mà bạn muốn Spot Fleet xem xét.
    • Allocation Strategy: Cách Spot Fleet sẽ phân bổ Capacity của bạn trong các pool khác nhau. Các chiến lược phổ biến bao gồm:
      • lowest-price: Khởi chạy Spot Instances từ pool có giá thấp nhất tại thời điểm đó.
      • diversified: Khởi chạy Spot Instances trải đều trên tất cả các pool đã chỉ định, giúp tăng cường tính chịu lỗi.
      • capacity-optimized: Khởi chạy Spot Instances từ các pool có Capacity Spot có sẵn tối ưu nhất (giảm thiểu khả năng gián đoạn).
      • capacity-optimized-prioritized(recommended): Tương tự capacity-optimized nhưng cho phép bạn ưu tiên các loại instance cụ thể.
    • Maximum Price: (Optional) Giá tối đa bạn sẵn sàng trả cho mỗi đơn vị Capacity Spot.
    • Request Type:
      • one-time: Fleet sẽ được khởi chạy và duy trì cho đến khi nó đạt được Target Capacity, sau đó sẽ không còn hoạt động.
      • maintain: Fleet sẽ cố gắng duy trì Target Capacity liên tục, tự động thay thế các Instance bị gián đoạn.
  2. Giám sát và Tự động hóa: Spot Fleet liên tục giám sát giá Spot và tình trạng của các Instance trong Fleet.
    • Nếu một Instance bị gián đoạn, Spot Fleet sẽ tự động yêu cầu một Instance Spot mới từ một pool khác để duy trì Target Capacity.
    • Nó sẽ tự động tắt các Instance không còn cần thiết nếu bạn đã thiết lập giảm quy mô hoặc nếu bạn thay đổi Target Capacity.
  3. Tích hợp với các dịch vụ khác: Spot Fleet có thể tích hợp với các dịch vụ AWS khác như Auto Scaling, Load Balancer để tạo ra các kiến trúc ứng dụng mạnh mẽ và linh hoạt.