EC2 Savings Plans & Reserved Instances
Để tối ưu chi phí EC2, AWS cung cấp 2 cơ chế cam kết sử dụng dài hạn đổi lấy discount: Savings Plans và Reserved Instances (RI). Cả hai đều giúp tiết kiệm đến 72% so với On-Demand pricing.
So sánh tổng quan
| Tiêu chí | Savings Plans | Reserved Instances |
|---|---|---|
| Discount | Lên đến 72% | Lên đến 72% |
| Cam kết | Số tiền USD/giờ (VD: $10/hour) | Instance type + số lượng cụ thể (VD: 5x m5.large) |
| Tính linh hoạt | ⭐⭐⭐ Cao - đổi instance type, OS, region | ⭐ Thấp - bị lock instance type, AZ/region |
| Áp dụng tự động | ✅ Tự động apply cho EC2, Fargate, Lambda | ✅ Tự động apply nếu exact match |
| Phạm vi | EC2, Fargate, Lambda | EC2, RDS, ElastiCache, Redshift, OpenSearch |
I. Savings Plans (Khuyến nghị)
Savings Plans là cơ chế linh hoạt hơn, bạn cam kết chi một số tiền cố định mỗi giờ (VD: $10/giờ) trong 1 hoặc 3 năm, đổi lại discount.
Các loại Savings Plans
1. Compute Savings Plans
- Discount: Lên đến 66%
- Linh hoạt nhất: Áp dụng cho EC2, Fargate, Lambda bất kể instance family, size, OS, region
- Use case: Workload có thể thay đổi architecture (ví dụ: migrate từ EC2 sang Fargate)
Ví dụ:
Giả sử: Sử dụng gói Compute Savings Plans 1 năm, No Upfront, Discount rate = 50%
Bạn cam kết: Trả $10 tương đương giá On-Demand $20 mỗi giờ trong 1 năm
→ Có thể chạy workload trị giá $20 On-Demand (vì discount 50%)
--- Scenario 1: Dùng đúng mức cam kết ---
Usage thực tế: 10x m5.large (us-east-1, Linux) = $20 On-Demand/giờ
Billing:
✅ SP cover: $20 On-Demand → Bạn trả $10 (commitment)
→ Tổng bạn phải trả: $10/giờ ✅ Tối ưu!
--- Scenario 2: Dùng dưới cam kết (LÃNG PHÍ) ---
Usage thực tế: 5x m5.large = $10 On-Demand/giờ
Billing:
❌ SP cover: Chỉ $10 On-Demand → Bạn vẫn phải trả $10 (commitment)
→ Lãng phí: $10 capacity không dùng
-> Tổng bạn phải trả: $10/giờ
--- Scenario 3: Vượt cam kết ---
Usage thực tế: 15x m5.large = $30 On-Demand/giờ
Billing:
✅ SP cover: $20 On-Demand đầu tiên → Trả $10 (commitment)
💰 Phần vượt: $10 On-Demand còn lại → Trả $10 (On-Demand rate)
→ Tổng bạn phải trả: $20/giờ (vẫn rẻ hơn full On-Demand $30)
📌 **Tổng kết:** Dùng ít hơn hoặc bằng commitment → trả đúng theo commitment. Dùng nhiều hơn → phần hơn tính theo giá On-Demand
2. EC2 Instance Savings Plans
- Discount: Lên đến 72% (cao hơn Compute SP)
- Linh hoạt vừa phải: Áp dụng trong cùng instance family (VD: M5), nhưng linh hoạt về size, OS, AZ
- Use case: Workload ổn định trên một instance family cụ thể
Ví dụ:
Giả sử: EC2 Instance SP cho M5 family, us-east-1, 1 năm, No Upfront, Discount = 60%
Bạn cam kết: Trả $10 tiền mặt mỗi giờ cho M5 trong us-east-1
→ Có thể chạy workload M5 trị giá $25 On-Demand (vì discount 60%)
--- Scenario 1: Chỉ dùng M5 ---
Usage: 10x m5.xlarge (us-east-1, Linux) = $25 On-Demand/giờ
Billing:
✅ SP cover: $25 On-Demand → Bạn trả $10 (commitment)
→ Tổng bạn phải trả: $10/giờ
--- Scenario 2: Mix M5 sizes (Linh hoạt size/AZ/OS) ---
Usage:
- 5x m5.large (us-east-1a, Linux) = $12.5 OD
- 2x m5.xlarge (us-east-1b, Windows) = $12.5 OD
Tổng = $25 On-Demand
Billing:
✅ SP cover: $25 On-Demand → Bạn chỉ phải trả $10 (commitment)
→ Đổi size, AZ, OS trong M5 family ✅ OK!
--- Scenario 3: Dùng C5 (Không được cover) ---
Usage:
- 10x m5.xlarge = $25 OD
- 5x c5.xlarge = $10 OD ❌ Không thuộc M5 family
Billing:
✅ SP cover M5: $25 OD → Trả $10 (commitment)
❌ C5 không cover: $10 OD → Trả $10 (On-Demand rate)
→ Tổng bạn phải trả: $20/giờ
📌 Tổng kết: Dùng ít hơn hoặc bằng commitment → trả đúng theo commitment. Dùng nhiều hơn hoặc dùng sai spec (instance family, region, ...) → phần đó tính theo giá On-Demand.
Khuyến nghị Savings Plans
- Phân tích workload: Dùng AWS Cost Explorer để xem usage pattern trong 30-60 ngày qua
- Bắt đầu thấp: Cam kết 50-70% baseline usage, để lại buffer cho workload thay đổi
- Ưu tiên 1 năm: Cho môi trường thay đổi nhanh, 3 năm cho production ổn định
- Monitor: Review utilization hàng tháng trong Cost Explorer
II. Reserved Instances
Reserved Instances (RI) là cơ chế cam kết instance type + số lượng cụ thể trong 1 hoặc 3 năm.
⚠️ Quan trọng: RI KHÔNG phải legacy! RI vẫn là cách duy nhất để tiết kiệm chi phí cho:
- RDS (Database)
- ElastiCache (Redis/Memcached)
- Redshift (Data Warehouse)
- OpenSearch (Elasticsearch)
→ Savings Plans chỉ cover EC2, Fargate, Lambda. Các dịch vụ database bắt buộc dùng RI.
Các loại Reserved Instances
1. Standard RI (EC2)
- Discount: Lên đến 72%
- Ít linh hoạt hơn Savings Plans: lock theo instance family/generation, platform (OS) và tenancy
- Có thể modify sau khi mua, nhưng có điều kiện:
↳ Đổi AZ trong cùng Region, hoặc đổi scope Regional ↔ Zonal
↳ Đổi size trong cùng family + generation (ví dụm5.large→m5.xlarge) chỉ khi Linux/UNIX + default tenancy + RI hỗ trợ instance size flexibility
↳ Tổng instance size footprint trước/sau phải bằng nhau (có thể split/merge RI) - Use case: Workload production rất ổn định; nếu cần capacity reservation thì dùng Zonal RI
Ví dụ:
- Bạn mua Standard RI cho
m5.large, Linux/UNIX, default tenancy, us-east-1. - ✅ Được đổi
m5.large→m5.xlargehoặc tách1 x m5.large→2 x m5.small(cùng family/gen, footprint tương đương). - ✅ Được đổi AZ
us-east-1a→us-east-1b(cùng Region) hoặc đổi scope Regional/Zonal. - ❌ Không đổi sang
c5.large/m6i.large, không đổi sang Windows/RHEL/SUSE, và không đổi dedicated tenancy.
2. Convertible RI (EC2)
- Discount: Lên đến 66%
- Có thể modify sau khi mua và linh hoạt hơn Standard:
↳ Có thể exchange (đổi) sang instance family/OS/tenancy khác trực tiếp, không cần phải hủy RI cũ
↳ Chỉ đổi sang Convertible RI khác (cùng Region)
↳ Giá trị RI mới phải bằng hoặc cao hơn RI cũ; nếu cao hơn thì trả thêm true-up cost
↳ Có thể modify (split/merge) rồi exchange một phần - Trade-off: Discount thấp hơn Standard RI (~6% gap)
- Use case: Workload đang phát triển, có thể thay đổi cấu hình hoặc migrate instance type
Ví dụ Convertible RI:
Hiện tại: 1x t2.large Convertible RI
Muốn: Đổi sang m5.xlarge (instance family khác)
Exchange: Bạn có thể trực tiếp đổi sang m5.xlarge
- Nếu m5.xlarge value <= t2.large value → Không trả thêm (hoặc AWS điều chỉnh số instance)
- Nếu m5.xlarge value > t2.large value → Bạn trả true-up cost (chênh lệch)
- RI cũ tự động hủy, RI mới có cùng end date
✅ Khác Standard: Standard không thể đổi family, chỉ modify size trong cùng family
3. RDS Reserved Instances
- Discount: Có thể tiết kiệm đến khoảng 69% so với On-Demand (tuỳ engine/region/term/payment option)
- Áp dụng cho: Aurora, MySQL, MariaDB, PostgreSQL, Oracle (BYOL), SQL Server (BYOL), Db2
- Không áp dụng cho: SQL Server License Included, Oracle License Included (RDS gói License Included)
- Lưu ý quan trọng: RI chỉ cover compute DB instance; storage và I/O vẫn tính riêng. Sau khi mua, các tham số chính (Region/Engine/Class/Deployment/Term) không đổi được.
4. ElastiCache Reserved Nodes
- Discount: Có thể tiết kiệm đến khoảng 55% so với On-Demand (tuỳ region/node family/term/payment option)
- Áp dụng cho: Redis OSS, Valkey, Memcached
- Size flexibility: áp dụng cho tất cả reserved offerings; discount tự apply cho mọi size trong cùng node family + cùng Region theo normalized units
- Cross-engine benefit: Reserved Node Redis OSS có thể apply sang Valkey; do Valkey rẻ hơn, cùng số units có thể cover nhiều workload hơn
- Lưu ý quan trọng: Region/node family/term chọn lúc mua và không đổi được; không thể cancel reserved node trước hạn; phần usage vượt units thì tính On-Demand
5. Redshift Reserved Nodes
- Discount: Có thể tiết kiệm đến khoảng 76% so với On-Demand (tuỳ term/payment option)
- Lưu ý quan trọng: Sau khi mua, reservation gắn với Region/node type/term/offering; đổi node type khi resize mà không có reservation tương ứng thì bị tính On-Demand
III. Payment Options
Cả Savings Plans và RI đều có 3 cách thanh toán:
| Payment Option | Discount | Thanh toán | Ví dụ (1 năm, cover $300,000 On-Demand) |
|---|---|---|---|
| All Upfront | Cao nhất (~72%) | Trả full ngay, $0 hàng tháng | Trả $84,000 ngay, cover $300,000 OD/năm |
| Partial Upfront | Trung bình (~60%) | Trả 50% trước, 50% theo tháng | Trả $60,000 trước + $5,000/tháng, cover $300,000 OD/năm |
| No Upfront | Thấp nhất (~50%) | $0 trước, trả hàng tháng | $0 trước, $12,500/tháng, cover $300,000 OD/năm |
Khuyến nghị:
- All Upfront: Discount cao nhất, dùng cho production ổn định với budget sẵn có
- Partial Upfront: Cân bằng discount vs cash flow, phù hợp đa số trường hợp
- No Upfront: Ưu tiên cash flow, chấp nhận discount thấp hơn