AWS 费用优化完全攻略:2025年最全的省钱技巧
AWS 的功能强大,但如果管理不善,每月账单可能远超预算。很多用户收到账单才发现钱花在了意想不到的地方。本文整理了 13 个 AWS 省钱技巧,帮你将月费降低 30%-70%。
AWS 费用构成分析
典型的 AWS 月账单通常这样分布:
| 费用类别 | 占比 | 常见原因 | |---------|:---:|------| | EC2 计算 | 40-60% | 实例持续运行 | | 数据传出 | 15-25% | 流量跨区域或出网 | | 存储(S3/EBS) | 10-20% | 历史快照、未清理数据 | | RDS/数据库 | 10-15% | 数据库实例 | | 其他服务 | 5-10% | NAT Gateway、Elastic IP 等 |
优化一:合理使用 EC2 预留实例
| 计费方式 | 折扣 | 灵活性 | |---------|:---:|:---:| | 按需(On-Demand) | 0% | 最高,随时释放 | | Savings Plans(1年) | ~30% | 高,可跨实例族 | | Savings Plans(3年) | ~60% | 中,长期承诺 | | 预留实例(1年全额预付) | ~40% | 低,锁定实例类型 | | 竞价实例(Spot) | 60-90% | 极低,可能被回收 |
适用场景
| 场景 | 推荐方式 | |------|:---:| | 开发测试环境 | 按需(下班关机) | | 稳定生产环境 | Savings Plans 1 年 | | 长期稳定的核心服务 | 预留实例 3 年 | | 批处理/CI/CD | Spot 实例 | | 不确定的负载 | 按需 + Savings Plans 混合 |
> 💡 Savings Plans 比传统的预留实例更灵活——承诺每小时 $10 支出,而不是承诺具体的实例型号。
优化二:EC2 定时关机
非 7x24 运行的环境(如开发/测试),定时开关机能省 50%-65%。
Lambda 自动关机脚本
`python
import boto3
def lambda_handler(event, context):
ec2 = boto3.client('ec2')
# 停止带有特定标签的实例
instances = ec2.describe_instances(
Filters=[{'Name': 'tag:AutoStop', 'Values': ['true']}]
)
for r in instances['Reservations']:
for i in r['Instances']:
if i['State']['Name'] == 'running':
ec2.stop_instances(InstanceIds=[i['InstanceId']])
print(f"Stopped: {i['InstanceId']}")
`
配合 EventBridge 在每晚 20:00 触发,早上 8:00 再启动。
优化三:优化 EBS 卷
EBS 类型与价格对比(每 GB/月)
| 类型 | 价格 | 性能 | 适用 | |------|:---:|------|------| | gp3(通用 SSD) | $0.08 | 3000 IOPS 基准 | 默认推荐 | | gp2(旧通用 SSD) | $0.10 | 突发 IOPS | 逐步淘汰 | | io2(预配置 IOPS) | $0.125 | 自定义 IOPS | 数据库 | | st1(吞吐优化 HDD) | $0.045 | 500 MB/s | 大数据 | | sc1(冷 HDD) | $0.015 | 250 MB/s | 归档 |
省钱技巧
- ✅ 新卷使用 gp3(比 gp2 便宜 20%,性能更好) - ✅ 删除未使用的 EBS 卷(尤其终止 EC2 后残留的卷) - ✅ 清理旧的 EBS 快照(保留最近几个即可)
优化四:S3 存储优化
存储类降级策略
| 数据年龄 | 存储类 | 价格(/GB/月) | |:---:|------|:---:| | 0-30 天 | S3 Standard | $0.023 | | 30-90 天 | S3 Standard-IA | $0.0125 | | 90-365 天 | S3 Glacier Instant | $0.004 | | 365 天+ | S3 Glacier Deep Archive | $0.00099 |
设置 S3 生命周期策略
`json
{
"Rules": [{
"Id": "AutoArchive",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_INSTANT_RETRIEVAL"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
]
}]
}
`
> 100GB 日志数据,从 Standard 变更为生命周期托管后,月费从 $2.3 降至 $0.1。
优化五:网络流量优化
AWS 的数据传出费是最容易被忽视的成本。
| 流量类型 | 费用 | |---------|------| | 数据入站(Inbound) | 免费 | | 同 Region 数据传出 | 免费 | | 跨 Region 数据传出 | $0.02/GB | | 互联网数据传出 | $0.09/GB(前 10TB) | | CloudFront 传出 | $0.085/GB(前 10TB) |
减少传出费
- ✅ 用 CloudFront CDN 缓存,减少源站出站 - ✅ 同 Region 内通信(免费) - ✅ 用 VPC Endpoint 访问 S3(省去 NAT Gateway 费用) - ✅ 用 S3 Transfer Acceleration 替代跨 Region 直传
优化六:NAT Gateway 替代方案
NAT Gateway 是美国区域 $0.045/小时 + $0.045/GB,月费轻松超过 $32。
| 方案 | 月费 | 适用 | |------|:---:|------| | NAT Gateway | ~$35+ | 生产环境 | | NAT Instance(t3.nano) | ~$4 | 开发环境 | | VPC Endpoint(S3/DynamoDB) | 免费 | 访问 S3/DynamoDB | | IPv6 Egress-Only Gateway | 免费 | IPv6 网络 |
> 开发环境用 NAT Instance 替代 NAT Gateway,每月省 $30+。
优化七:清理未使用资源
每月检查并清理:
| 资源 | 检查内容 | |------|---------| | 弹性 IP | 未关联实例的 EIP 收费 | | ELB/ALB | 空负载均衡器也收费 | | EBS 快照 | 已删除实例的残留快照 | | RDS 快照 | 保留太多旧快照 | | CloudWatch Logs | 日志过期未删除 | | KMS 密钥 | 旧密钥仍按个收费 |
AWS 自带工具
`bash
AWS Trusted Advisor(免费版)
会提示未使用的 EIP、EBS 卷等
AWS Compute Optimizer
提供 EC2 资源建议
`优化八:选择合适的 EC2 实例类型
| 旧一代 | 新一代 | 性价比提升 | |--------|------|:---:| | t2 | t3 / t4g | 30% | | m4 | m5 / m6g | 25% | | c4 | c5 / c6g | 30% | | m5/c5(x86) | m6g/c6g(ARM Graviton) | 40% |
ARM Graviton 实例
基于 AWS 自研 ARM 芯片的 m6g/c6g/r6g 系列,比 x86 便宜 20-40%,性能相当。绝大多数 Linux 应用可以直接迁移。
`bash
启动一个 Graviton 实例
aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type t4g.micro \ --key-name my-key`优化九:使用 AWS Cost Explorer
Cost Explorer 是 AWS 自带的费用分析工具:
1. AWS Console → Billing → Cost Explorer 2. 按服务、区域、标签分类查看 3. 设置每日费用报告发送到邮箱
AWS Budgets 告警设置
`bash
aws budgets create-budget \
--account-id 123456789012 \
--budget '{"BudgetName":"MonthlyLimit","BudgetLimit":{"Amount":"50","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}'
`
费用优化总结清单
| # | 优化项 | 预期节省 | |:---:|------|:---:| | 1 | 使用 Savings Plans 替代按需 | 30-60% | | 2 | 非生产环境定时关机 | 50-65% | | 3 | EBS 从 gp2 迁移到 gp3 | 20% | | 4 | S3 生命周期自动归档 | 30-70% | | 5 | 用 CloudFront 减少源站出站 | 20-40% | | 6 | 开发环境 NAT Instance 替代 NAT Gateway | $30+/月 | | 7 | 清理弹性 IP、快照、日志 | $10-50/月 | | 8 | 升级到新一代实例(t4g/m6g) | 20-40% | | 9 | 设置 Budgets 告警 | 防超支 | | 10 | 用 Cost Explorer 定期审查 | 发现浪费 |
> 综合应用以上技巧,月费 $100 → $40 是完全可以实现的。
---
本文由 ChengziCloud 整理。需要云服务成本优化方案?联系我们 获取咨询服务。