AWS 费用优化完全攻略:2025年最全的省钱技巧

📅 2026-06-30

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 → BillingCost 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 整理。需要云服务成本优化方案?联系我们 获取咨询服务。