我把AWS账单砍掉了72%,这些折扣策略你一定要知道
直接说结论:AWS账单能砍多少?
去年帮一家电商公司看了下他们的AWS账单,月费5万刀。看完我就问:你们知道这里面有1.6万刀可以省下来吗?他们一脸懵。
别笑,大多数人用AWS都是这样:按需付费,用多少付多少,觉得挺合理。但其实AWS有一堆折扣机制,会用的话能省30-72%。问题是这套体系太复杂,很多人看着头大就放弃了。
今天我把这些年踩的坑和总结的经验都写出来,保证你看完就能上手。
一、先搞清楚AWS有哪些折扣
AWS的折扣其实就6种,我按从简单到复杂排个序:
| 折扣类型 | 能省多少 | 有啥坑 | 适合谁 |
|---|---|---|---|
| 免费套餐 | 新账号12个月免费 | 超了会扣钱 | 新手练习 |
| 按需折扣 | 5-20% | 用得多自动打折 | 所有人 |
| Spot实例 | 50-90% | 随时可能被收回 | 批处理任务 |
| Savings Plans | 17-72% | 承诺用1-3年 | 稳定业务 |
| Reserved Instances | 37-75% | 承诺用1-3年,不灵活 | 老玩家 |
| 企业协议 | 看你砍价能力 | 年消费要超百万刀 | 土豪公司 |
刚入门的话,重点看Savings Plans和Spot。RI(Reserved Instances)太老了,AWS自己都不推荐,只是为了兼容老用户。
各种服务怎么省钱
不同服务省钱的办法不一样,我给你整理了一下:
| 服务 | 怎么省 | 能省多少 | 难度 |
|---|---|---|---|
| EC2服务器 | SP/RI/Spot三板斧 | 最高72% | 有点烦 |
| RDS数据库 | 买RI | 最高69% | 还行 |
| S3存储 | 开智能分层 | 最高95% | 超简单 |
| Lambda | 买SP | 17% | 简单 |
| CDN流量 | 承诺用量 | 30% | 一般 |
S3的智能分层是真香,啥都不用管,自动帮你把冷数据挪到便宜的存储类。我有个客户光这一项就省了每月800刀。
二、EC2服务器省钱:三种方式各有坑
Reserved Instances(预留实例):老玩家的选择
RI就是你跟AWS说:"我保证用你家服务器1年/3年,你给我打折行不?"然后AWS给你最高72%的折扣。
但RI有两种,选错了很亏:
| 类型 | 折扣 | 灵活性 | 啥时候选 |
|---|---|---|---|
| 标准RI | 72% | 低,换不了机型 | 确定不会改配置 |
| 可转换RI | 66% | 高,随便换 | 可能要调整配置 |
真实踩坑经历:去年有个客户买了标准RI,3个月后业务改了要用GPU实例,结果RI根本用不上。那3年的承诺等于白给AWS送钱。所以我现在都建议客户:拿不准就买可转换RI,少赚6%的折扣总比被套牢强。
付款方式选择:一次性付清最划算
买RI的时候,AWS会让你选付款方式。这个很关键,直接影响折扣:
| 付款方式 | 1年期折扣 | 3年期折扣 | 适合谁 |
|---|---|---|---|
| 不预付 | 36% | 54% | 现金流紧张 |
| 部分预付 | 39% | 59% | 稳健派 |
| 全额预付 | 42% | 72% | 有钱任性 |
举个例子:月费1万刀的服务器,买3年RI全额预付:
- 年度能省:1万×12×72% = 8.64万刀
- 3年总省:25.92万刀
- 5个月就回本
但前提是你真的能用满3年。我见过太多人拍脑袋买,半年后业务调整RI闲置。建议先观察3个月使用情况,确定稳定了再买。
Savings Plans:我现在首推这个
SP是AWS后来推出的,比RI灵活多了。简单说就是:你承诺每小时花X美元在计算服务上,AWS给你打折,剩下的你爱用啥用啥。
SP和RI到底选哪个?
| 你的情况 | 选啥 | 为啥 |
|---|---|---|
| 用Lambda、Fargate、EC2混着来 | SP | RI只能给EC2打折 |
| 技术栈还在调整 | SP | 灵活,不怕变 |
| 就是懒得管 | SP | 自动匹配,省心 |
| 已经确定长期用某个机型 | RI | 折扣稍微高一点点 |
| 追求极致折扣 | RI | 能多省5-6% |
我的建议:2025年了,别折腾RI了,直接上SP。虽然少省点,但省心啊。我自己的项目全用SP,从来没后悔过。
SP覆盖率优化策略
Savings Plans购买策略:
分析阶段:
- 收集3个月历史使用数据
- 识别稳定基线负载
- 计算平均使用量
规划阶段:
基线覆盖: 70-80%
峰值处理: 按需或Spot
增长预留: 10-20%
实施阶段:
第一批: 50%承诺(测试水温)
第二批: 20%承诺(1个月后)
第三批: 10%承诺(3个月后)
优化阶段:
月度审查: 使用率报告
季度调整: 追加或转换
年度评估: 策略更新
Spot实例极致优化
Spot使用场景矩阵
| 应用类型 | 适合度 | 中断容忍 | 成本节省 | 实施策略 |
|---|---|---|---|---|
| 批处理 | ⭐⭐⭐⭐⭐ | 高 | 70-90% | Spot Fleet |
| 大数据分析 | ⭐⭐⭐⭐⭐ | 高 | 70-90% | EMR Spot |
| CI/CD | ⭐⭐⭐⭐ | 中 | 60-80% | 混合模式 |
| Web服务 | ⭐⭐ | 低 | 30-50% | 仅辅助节点 |
| 数据库 | ⭐ | 极低 | 不推荐 | 不使用 |
Spot中断处理最佳实践
# Spot实例中断处理器
import boto3
import time
from datetime import datetime
class SpotInterruptionHandler:
def __init__(self):
self.ec2 = boto3.client('ec2')
self.instance_id = self.get_instance_id()
def check_interruption_notice(self):
"""检查中断通知"""
try:
response = requests.get(
'http://169.254.169.254/latest/meta-data/spot/instance-action',
timeout=1
)
if response.status_code == 200:
return response.json()
except:
return None
def handle_interruption(self):
"""处理中断流程"""
notice = self.check_interruption_notice()
if notice:
print(f"收到中断通知: {notice}")
# 1. 保存应用状态
self.save_application_state()
# 2. 上传数据到S3
self.backup_data_to_s3()
# 3. 通知负载均衡器
self.deregister_from_elb()
# 4. 清理资源
self.cleanup_resources()
return True
return False
def save_application_state(self):
"""保存应用状态到持久存储"""
# 实现状态保存逻辑
pass
def backup_data_to_s3(self):
"""备份关键数据到S3"""
# 实现数据备份逻辑
pass
三、数据库服务折扣优化
RDS Reserved Instances策略
RDS RI购买决策框架
| 数据库类型 | 推荐RI类型 | 期限建议 | 预期折扣 | 注意事项 |
|---|---|---|---|---|
| 生产MySQL/PostgreSQL | 标准RI | 3年 | 64% | Multi-AZ需双倍 |
| 开发环境 | 可转换RI | 1年 | 42% | 保持灵活性 |
| Aurora生产 | 标准RI | 3年 | 69% | 含复制成本 |
| SQL Server | 标准RI | 3年 | 58% | 许可证另计 |
Aurora Serverless优化
Aurora Serverless v2配置优化:
容量配置:
最小ACU: 0.5 (低负载时期)
最大ACU: 16 (峰值处理)
成本控制:
自动暂停: 启用(5分钟无活动)
扩展策略: 目标利用率70%
监控指标:
- ServerlessDatabaseCapacity
- ACUUtilization
- DatabaseConnections
优化建议:
- 使用连接池减少连接开销
- 实施查询缓存策略
- 定期分析慢查询日志
四、存储服务成本优化
S3智能分层决策
存储类别选择流程
graph TD
A[数据访问频率分析] --> B{每天访问?}
B -->|是| C[Standard]
B -->|否| D{每月访问?}
D -->|是| E[Standard-IA]
D -->|否| F{每季度访问?}
F -->|是| G[Glacier Instant]
F -->|否| H{每年访问?}
H -->|是| I[Glacier Flexible]
H -->|否| J[Deep Archive]
S3成本优化清单
- 启用S3 Intelligent-Tiering
- 配置生命周期策略
- 删除未完成的分片上传
- 清理过期版本
- 使用S3 Select减少传输
- 启用S3 Transfer Acceleration(仅必要时)
EBS优化策略
| 优化措施 | 实施方法 | 成本节省 | 难度 |
|---|---|---|---|
| GP2→GP3迁移 | 脚本批量转换 | 20% | 低 |
| 未挂载卷清理 | 自动化检测删除 | 100% | 低 |
| 快照优化 | 增量备份+生命周期 | 50-70% | 中 |
| IOPS优化 | 按需调整配置 | 30-50% | 中 |
五、Serverless服务优化
Lambda成本控制
Lambda优化检查项
| 优化项 | 检查方法 | 优化措施 | 预期节省 |
|---|---|---|---|
| 内存配置 | CloudWatch Metrics | 调整到最优值 | 20-40% |
| 执行时间 | X-Ray分析 | 代码优化 | 30-50% |
| 并发控制 | 预留并发 | 避免冷启动 | 10-20% |
| 架构优化 | Step Functions | 减少调用次数 | 40-60% |
API Gateway优化
// API Gateway缓存配置示例
const cacheConfig = {
cachingEnabled: true,
cacheClusterSize: '0.5', // GB
cacheTtl: 300, // 5分钟
cacheKeyParameters: ['userId', 'requestType'],
// 缓存策略
shouldCache: (request) => {
// GET请求且非个人数据
return request.method === 'GET' &&
!request.path.includes('/user/profile');
},
// 成本优化
costOptimization: {
useHttpApi: true, // 比REST API便宜70%
enableCompression: true,
minimizeIntegrationLatency: true
}
};
六、网络和CDN优化
CloudFront成本优化
CDN定价梯度优化
| 月度流量 | 价格($/GB) | 优化策略 | 节省潜力 |
|---|---|---|---|
| 0-10TB | $0.085 | 基础使用 | - |
| 10-50TB | $0.068 | 批量折扣 | 20% |
| 50-150TB | $0.055 | 承诺用量 | 35% |
| 150TB+ | 协商 | 企业协议 | 50%+ |
数据传输成本控制
数据传输优化策略:
架构设计:
- 同AZ部署相关服务
- 使用VPC Endpoints
- 部署区域性缓存
流量优化:
- 启用压缩(Gzip/Brotli)
- 实施CDN缓存策略
- 使用S3 Transfer Acceleration审慎
成本监控:
- 设置传输费用告警
- 定期审查跨区域流量
- 分析TOP消费者
七、企业级折扣策略
多账户优化框架
Organizations合并计费优势
| 优势类别 | 具体内容 | 价值评估 |
|---|---|---|
| 批量折扣 | 自动聚合用量 | 5-15%额外节省 |
| RI/SP共享 | 跨账户应用 | 提升15-20%利用率 |
| 集中管理 | 统一计费和报告 | 降低30%管理成本 |
| 成本分配 | 精确的标签追踪 | 100%成本可见性 |
企业协议(EDP)谈判要点
EDP谈判清单:
1. 年度承诺金额(通常$1M+)
2. 增长承诺(YoY增长率)
3. 服务范围(全平台vs特定服务)
4. 支付条款(月度/季度/年度)
5. 技术支持级别
6. 专属团队支持
7. 培训和认证权益
8. 创新基金或POC支持
八、真实案例:月省1.6万刀是怎么做到的
案例:深圳某跨境电商平台
去年底接了个活,客户是做独立站的,AWS月费5万刀,老板觉得太贵了想砍预算。
他们的账单构成:
- EC2服务器:3万刀(60%)
- RDS数据库:1万刀(20%)
- S3和流量:5千刀(10%)
- 其他杂项:5千刀(10%)
我的优化方案:
第1个月:买SP
- 分析了3个月账单,发现基线负载很稳定
- 买了3年期SP,覆盖70%的计算成本
- 当月就省了28%,约8千刀
第2个月:优化数据库
- 把MySQL RDS迁到Aurora(性能更好还便宜)
- 给Aurora买了RI
- 数据库成本降了35%,省3千5
第3个月:存储和CDN
- S3开了智能分层(点一下按钮的事)
- CloudFront CDN配置优化
- 这块省了45%,约2千多
最终结果:
- 月费从5万降到3.4万刀
- 月省1.6万,年省19.2万
- 老板请我吃了顿海底捞
案例2:SaaS企业的成本优化
优化时间线:
| 月份 | 优化措施 | 成本变化 | 累计节省 |
|---|---|---|---|
| M1 | 基线评估 | $30,000 | $0 |
| M2 | 实施SP | -20% | $6,000 |
| M3 | Spot集成 | -10% | $9,000 |
| M4 | 存储优化 | -5% | $10,500 |
| M5 | 网络优化 | -3% | $11,400 |
| M6 | 架构优化 | -5% | $12,900 |
九、优化工具推荐
AWS原生工具
| 工具名称 | 功能 | 使用场景 | 费用 |
|---|---|---|---|
| Cost Explorer | 成本分析可视化 | 日常监控 | 免费 |
| Compute Optimizer | 资源规格建议 | 定期优化 | 免费 |
| Trusted Advisor | 最佳实践检查 | 合规审查 | 部分免费 |
| Savings Plans推荐 | SP购买建议 | 购买决策 | 免费 |
第三方工具对比
| 工具 | 特色功能 | 定价模式 | 适用规模 |
|---|---|---|---|
| CloudHealth | 多云管理 | 按支出% | 大型企业 |
| Cloudability | FinOps平台 | 订阅制 | 中大型 |
| Spot.io | Spot自动化 | 按节省% | 技术型企业 |
十、行动计划模板
30天优化路线图
第1周:评估阶段
- 导出3个月成本数据
- 识别TOP 10成本项
- 计算资源利用率
第2周:规划阶段
- 制定优化优先级
- 计算ROI
- 获得管理层批准
第3周:实施阶段
- 购买Savings Plans
- 实施快速优化项
- 配置自动化脚本
第4周:监控阶段
- 设置成本告警
- 建立报告机制
- 制定持续优化计划
总结:记住这几点就够了
折腾了这么多,其实核心就这几条:
1. 先从简单的开始
- S3智能分层:2分钟搞定,立省30-50%
- 删掉没用的资源:EBS卷、快照、弹性IP
- 开个Cost Explorer看看钱都花哪了
2. 稳定业务买SP
- 观察3个月使用情况
- 先买1年期的试试水
- 覆盖70%左右的基线就行,别追求100%
- 剩下的用Spot或按需
3. 别踩这些坑
- 不要拍脑袋买3年期,除非你100%确定
- 不要追求极致覆盖率,留点灵活空间
- 不要只买不监控,每月看看利用率
- 不要一个人憋大招,拉上财务一起搞
能省多少?
根据我的经验:
- 啥都不懂瞎用:0%(你现在)
- 看完文章操作一下:15-25%(1个月)
- 认真优化一遍:30-40%(3个月)
- 持续监控调整:40-60%(半年以上)
最后说一句:省钱是一个持续的过程,不是一锤子买卖。每个季度花半天时间review一下账单,该调整的调整,该升级的升级。时间长了,这钱就滚滚而来了。
注:AWS定价经常变,这篇文章基于2025年1月的价格。具体折扣以AWS官网为准,别拿着我这篇去跟AWS扯皮说我说的。