$ aws ec2 purchase-reserved-instance-offerings --instance-count 10
对于稳定运行的工作负载,Reserved Instance(RI)是省钱利器。但 RI 购买也有很多坑——选错类型、买错范围、承诺过长……都可能让你省了小钱丢了大钱。今天我们来聊聊怎么科学地买 RI。
RI 基础概念
Reserved Instance 本质上是一种"预付费折扣合同":
- 预付一笔费用(全预付、部分预付、无预付)
- 承诺使用 1 年或 3 年
- 换取按小时折扣(通常 30-72%)
AWS RI 类型详解
1. Standard RI(标准预留实例)
- 折扣最高:1 年 36-72%,3 年 55-78%
- 可转让:可以卖给其他账户
- 适合:稳定的、可预测的工作负载
2. Convertible RI(可转换 RI)
- 折扣较低:比 Standard 低约 10-15%
- 可变更:可以更换实例类型(等效或更高价值)
- 适合:可能变化的工作负载
3. Scheduled RI(计划 RI)
- 只在特定时间段(如每周二 14:00-18:00)生效
- 适合有固定规律的工作负载
付款选项对比
| 选项 | 预付款 | 折扣幅度 | 风险 |
|---|---|---|---|
| 全预付(All Upfront) | 100% | 最高 | 高(承诺锁定) |
| 部分预付(Partial Upfront) | 约 30-50% | 中高 | 中 |
| 无预付(No Upfront) | 0% | 中等 | 低 |
RI 范围(Scope)选择
Regional vs AZ Scope
- Regional:在整个区域生效,灵活性高,但无法保证特定 AZ 容量
- AZ + Instance Type:指定 AZ + 实例类型,容量有保障,但灵活性低
建议:优先选择 Regional,除非你需要保证特定 AZ 的容量。
何时买 RI?买多少?
1. 先 Right-Sizing,再买 RI
买 RI 之前,确保你的实例大小是合适的。买了一个过大的 RI 3 年,就是浪费了 3 年。
2. 覆盖率计算公式
RI Coverage = RI Hours / Total Hours # 建议目标: # - 稳定基线负载:70-80% coverage via RI # - 波动负载:结合 Savings Plans
3. 购买时机
- AWS 会提示你 RI 覆盖率不足的账户
- 建议先用 1 年 RI 验证稳定性,再考虑 3 年
- 3 年 RI 折扣更大,但技术迭代也快,3 年后的需求可能完全不同
Azure Reserved Instances
Azure 的 Reserved Instances(RI)机制类似 AWS:
- 1 年期:平均节省 36-72%
- 3 年期:平均节省 55-75%
- Scope:可以是资源组级别
- 混合使用:可以和 Azure Hybrid Benefit 叠加
# Azure CLI 购买 RI az reservation purchase \ --plan "ComputeSg_1yr" \ --sku "Standard_D2s_v3" \ --location eastus \ --quantity 2
GCP Committed Use Discounts (CUDs)
GCP 的 CUD 不同于 AWS RI:
- Resource-based CUD:承诺特定数量的 vCPU 和 GB RAM
- Spend-based CUD:承诺每月最低消费金额
- 可以立即在所有项目中生效
- 可以用于 Spot 实例(部分场景)
gcloud compute commitments create comm-1 \ --project=my-project \ --resources=vcpu=64,memory=128GB \ --plan 12-month
RI vs Savings Plans vs Spot 选择
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 稳定运行的数据库服务器 | Regional RI | 不能中断,需要稳定容量 |
| Web 应用,有一定波动 | Savings Plans | 更灵活,覆盖计算密集型 |
| 批处理作业 | Spot + Savings Plans | 价格敏感,可接受中断 |
| 机器学习训练 | Compute Savings Plans | 按秒计费,灵活性高 |
| 开发测试环境 | On-Demand | 使用率低,不值得锁定 |
购买策略总结
- Right-Sizing 是买 RI 的前提
- 先买 1 年验证,再考虑 3 年
- 覆盖率 70-80% 是合理目标
- 优先 Regional scope 灵活性
- 结合 Savings Plans 处理非 RI 覆盖的场景
- 定期审查 RI 覆盖率和利用率
Reserved Instance 是云成本优化的基础配置,用好了能帮你省下 30-72% 的计算费用!