AWS 成本优化指南:代理商充值赠金拿到了,为什么账单还在涨?
目录
前言:赠金拿到了,但账单还在涨
2025 年 11 月,一个做出海 SaaS 的深圳团队找到我们做成本审计。他们四个月前通过 APN 代理商拿到了充值返赠(充$5,000送$500),月账单从 $15,000 降到了 $11,700。
然后到 10 月,账单回到了 $14,300。不是赠金变了——是用量侧在漏。
这种事经手多了之后我发现一个规律:代理商充值赠金解决的是”单价”问题,但云账单膨胀的根因在”用量”:而用量侧的泄漏,赠金一分钱都省不了。
Flexera 2025 年的数据印证了这一点:即使在做成本优化的企业里,仍有 27% 的云支出是浪费。ProsperOps 的基准报告更具体:36% 的 AWS 企业完全没用任何承诺折扣,但那些用了折扣的企业里,中位有效节省率也只有 15%,远低于前 5% 的 45%+。
差距不在赠金深度。在赠金之外的那 5 个泄漏点。
过去两年我们经手了 40 多家企业的 AWS 成本审计。下面按泄漏金额从高到低,拆五个赠金也救不了的陷阱。
一、NAT Gateway 双重计费:流量”过路费”为什么比 EC2 本身还贵?
NAT Gateway 的定价看起来不贵:每小时 $0.045,每 GB 数据处理 $0.045。但它的计费模式有一个很容易被忽略的设计:任何从私有子网到公网 AWS 服务的流量,先过 NAT($0.045/GB),再叠加互联网 egress($0.09/GB)。合计 $0.135/GB。
一个 SaaS 团队的 $12,000 NAT 账单
今年 1 月,一个做企业协作 SaaS 的上海团队找我审账单。他们的月费 $32,000 左右,其中”EC2-Other”这一项占了 $12,000。EC2-Other 听起来像杂费,拆开一看:87% 是 NAT Gateway 的数据处理费,47TB/月。
根因查了两天才找到:CI/CD 流水线里有一个脚本 bug,导致每天跑 340 个构建任务,而不是预期的 10 个。每次构建从 ECR 拉容器镜像,走了 NAT Gateway 而不是 VPC Endpoint。两个月的 bug = $24,000 的 NAT 账单。
修了两样东西:
- 在对应的子网路由表里加了 S3 Gateway Endpoint 和 ECR Interface VPC Endpoint:直接走 AWS 内网,NAT 流量降了 92%
- 修了 CI/CD 脚本的触发条件
修完后 EC2-Other 从 $12,000 降到 $960。一个 VPC Endpoint,月省 $11,000。
Brian 的建议:如果你的月 NAT Gateway 费用超过总账单的 5%,先别优化别的:去 VPC 控制台,确认 S3 和 DynamoDB 走了 Gateway Endpoint(免费),ECR/CloudWatch/SSM 走了 Interface Endpoint($0.01/GB,比 NAT 便宜 78%)。这个动作 30 分钟做完,ROI 是所有成本优化里最高的。
| 路由方式 | 每 GB 成本 | S3 月流量 10TB 的月费 | 年费 |
|---|---|---|---|
| NAT Gateway + 公网 egress | $0.135/GB | $1,350 | $16,200 |
| Interface VPC Endpoint | $0.01/GB | $100 | $1,200 |
| Gateway VPC Endpoint (S3/DynamoDB) | $0 | $0 | $0 |
二、僵尸资源:停掉的 EC2 不花钱,忘删的 EBS 还在扣
AWS 的资源模型里有一个反直觉的设计:EC2 实例停掉后,计算费不收了,但挂载的 EBS 卷继续计费。再加上闲置的 Elastic IP($0.005/小时)、残留的旧快照、忘了删的 NAT Gateway:这些”僵尸”加起来,能占到月账单的 8%-12%。
47 个环境,每周只用 3 小时
去年 9 月,一个做出海跨境电商独立站的团队找到我们。他们为每个功能分支和客户 Demo 都建了一套完整环境:EC2 + RDS + ALB + NAT Gateway。数了一下,47 套环境在跑。其中 41 套在非工作时间(晚上 8 点到早上 10 点,以及周末两天)完全没用。
算了一笔账:每套环境平均月费约 $190,41 套没用满的环境 = 每月 $7,790 的纯浪费。加上 15 个未挂载的 EBS 卷($0.08/GB 月费 × 累计约 8TB)和 23 个闲置 Elastic IP,每月固定泄漏超过 $8,900。
解法很简单:用 AWS Instance Scheduler 给非生产环境配了自动启停:工作日 10:00-20:00 运行,其余时间停机。三周部署完。月费从 $8,900 降到了约 $1,800。
Brian 的建议:非生产环境至少设自动启停。Instance Scheduler 是 AWS 官方提供的免费方案,配置一次管所有环境。如果你用 Kubernetes,Karpenter 可以做更细粒度的节点调度:自动选择最便宜的实例类型并在不用时缩容到零。
五个最常见的僵尸资源,按泄漏金额排序:
| 僵尸资源 | 单资源月费 | 典型数量(中型团队) | 月泄漏 |
|---|---|---|---|
| 非生产 EC2 24/7 运行 | ~$100-300/台 | 15-40 台 | $1,500-$12,000 |
| 未挂载的 EBS 卷 | $0.08/GB | 5-20 个 | $100-$1,600 |
| 闲置 NAT Gateway | $32.85/个 | 1-5 个 | $32-$164 |
| 闲置 Elastic IP | $3.65/个 | 5-30 个 | $18-$110 |
| 旧 EBS 快照(增量累积) | $0.05/GB | 数百 GB | $20-$200 |
三、跨可用区流量税:微服务之间的”内网费”你算过吗?
AWS 对跨可用区(Cross-AZ)流量双向收费:每 GB $0.01 出去 + $0.01 进来 = 合计 $0.02/GB。单看这个费率,不贵。问题是:几乎所有现代微服务架构都在跨 AZ 通信,而且没有人在架构评审时算这笔账。
一个自动扩缩的死循环,月烧 $18,400
今年 3 月,一个做出海手游后端的新加坡团队让我们做成本审计。他们的月账单 $52,000,其中”Data Transfer”这一项 $11,300。
拆开 VPC Flow Logs 发现:Kubernetes 集群跨 3 个 AZ 部署,但没有配 topology-aware routing。结果:AZ-1 的 Pod 调 AZ-3 的 Redis,AZ-2 的 Pod 调 AZ-1 的 API 服务。跨 AZ 流量占到内网流量的 70% 以上。
更糟的是,他们的代码里有一个内存泄漏,每隔几个小时 CPU 飙一次。Auto Scaling 检测到 CPU 涨了就开新实例:但新实例开在不同 AZ,跨 AZ 通信量跟着涨。两个月内启动了 450+ 个实例,每个寿命 10-15 分钟,但跨 AZ 数据传输费照计。
修复分两层:
- 开了
service.kubernetes.io/topology-mode: auto:同 AZ 内的 Pod 优先路由,跨 AZ 流量压了 65% - 修了内存泄漏(这个才是根),Auto Scaling 不再疯狂弹新实例
Data Transfer 从 $11,300 降到了 $3,400。月省 $7,900。
Brian 的建议:如果你用 EKS 或自建 Kubernetes,第一件事就是开 topology-aware routing。如果你用 EC2 直接跑服务,尽量把调用链路上的服务部署在同一个 AZ:延迟更低,而且不需要为内网通信付跨 AZ 费。同 AZ 内数据传输是免费的。
四、存储层的慢性失血:日志永不过期、gp2 不换 gp3、S3 没设生命周期
存储成本不像 NAT 流量那样会突然爆炸——它是一点一点涨上来的,每一条都”没多少钱”,但十条加起来就是每月大几千的固定泄漏。
我们审计过的企业里,最常见三个存储问题:
1. CloudWatch Logs 默认”永不过期”。 AWS 日志保留期默认是 Never Expire。六个月后,开发环境的 debug 日志、Lambda 的 invocation log、负载均衡器的 access log:全部在计费。一个中等规模的 SaaS 团队,18 个月累积的日志存储费能到 $2,000-5,000/月。全改成 30-90 天保留期后,日志费用压了 60-80%。
2. EBS 还在用 gp2。 gp3 是 gp2 的替代品:同等容量便宜 20%,基准 IOPS 从 gp2 的 100 IOPS/GB 变成 gp3 的 3,000 IOPS 免费送。一台 500GB 的 gp2 每月 $50,等容量 gp3 每月 $40,IOPS 反而更多。迁移零停机:在控制台里点”Modify Volume”,选 gp3,AWS 后台自动迁移。
3. S3 没有生命周期策略。 我见过的团队把 S3 当成”无限便宜的存储”。Standard 类 $0.023/GB/月确实不贵。但数据放三年不碰,它还待在 Standard 类:而 Glacier Deep Archive 只要 $0.00099/GB/月,便宜 96%。开一个 Intelligent-Tiering 自动分层,访问模式不确定的 bucket 能省 40-60%,零管理成本。
| 存储优化动作 | 投入时间 | 典型月省 | 技术门槛 |
|---|---|---|---|
| CloudWatch Logs 设保留期 | 10 分钟 | $500-3,000 | 零 |
| gp2 → gp3 EBS 迁移 | 每卷 1 分钟 | 20%/卷 | 零 |
| S3 生命周期策略 | 20 分钟 | $200-2,000 | 零 |
| S3 Intelligent-Tiering | 5 分钟 | 40-60%/bucket | 零 |
这四项加起来两个小时搞定,月省 $1,000-5,000。不需要架构评审,不需要停机窗口。
Brian 的建议:存储优化是”最不性感但 ROI 最高”的成本优化。没有技术风险,不需要协调业务方,一个人周五下午两小时就能做完。优先级排在第二:仅次于 VPC Endpoint。
五、没人”拥有”账单:为什么技术修复只能解决一半问题?
上面四个陷阱都是技术问题。但在我们审计过的 40 多家企业里,有一个更底层的规律:成本泄漏的根因不是技术不会,是没有人觉得”这是我的事”。
典型场景:财务看到账单涨了 → 问工程 → 工程说”我们在写新功能,没空看” → 财务没有控制台权限 → 创始人以为有人在管 → 没人管。
Flexera 的数据说 52% 的工程领导认为 FinOps 和开发团队之间的断层是云浪费的首要原因。另一面,62% 的开发者想对云成本有更多控制权,但只有 32% 有自动化的省钱实践。
这不是技术问题。是”谁拥有这笔账单”的组织问题。
我们给客户推了三件非技术的事,效果比技术优化更持久:
- 每月的 30 分钟成本站会。不是审每一行账单:是拉工程+财务+业务三方,看三个数字:总账单、相比上月变动、变动最大的三项服务是什么。15 分钟看数据,15 分钟决定”这个月要不要做什么”。
- 把成本数据放进工程师看得见的地方。Cost Explorer 的数据在 AWS 控制台里,工程师一天不打开一次。用一个简单的 AWS Lambda 把每日费用推到 Slack 频道里,数字放在那里,自然会有人问”昨天为什么涨了 30%”。
- 非生产环境打标签(谁开的、什么时候到期)。资源有了主人,就不会出现”这个实例谁开的,可以删了吗”的无限讨论。
Brian 的建议:技术优化是止血,组织习惯是预防。做完上面四个技术修复之后,花 30 分钟开第一个成本站会。这一件事的价值比再加一个 Savings Plan 都大。
六、五步止血清单(按 ROI 排序)
| 优先级 | 动作 | 投入 | ROI | 一句话 |
|---|---|---|---|---|
| 1 | 加 VPC Endpoint(S3/DynamoDB) | 30 分钟 | 极高 | 免费替代 NAT 路由 |
| 2 | CloudWatch Logs 设 30-90 天保留 | 10 分钟 | 极高 | 单次设置,永久生效 |
| 3 | 非生产环境配 Instance Scheduler | 1-2 天 | 高 | 76% 节省率 |
| 4 | gp2 → gp3 + S3 生命周期 | 2 小时 | 高 | 零风险,零停机 |
| 5 | 开启第一场月成本站会 | 30 分钟 | 持续性 | 预防 > 止血 |
七、常见问题 FAQ
Q: 已经拿了 AWS 代理商赠金,为什么账单还在涨?
代理商充值赠金降的是单价:EC2、RDS、S3 等资源的单价。但 NAT Gateway 流量、跨 AZ 数据传输、闲置 EBS 卷、CloudWatch Logs 存储:这些费用的定价优惠覆盖不到,用了多少就计多少。我们经手的企业里约 60% 的账单增长来自用量侧,不是单价侧。
Q: NAT Gateway 多贵算不正常?
一个月 NAT 费用超过总账单 5%,基本可以确定有路由泄漏。正常范围 2-3%。如果你看到 EC2-Other 这一项占了账单 10%+,先去 VPC Flow Logs 里查哪些流量走了 NAT,大概率是 S3 或 ECR 没有配 VPC Endpoint。
Q: Savings Plans 和 Reserved Instances 怎么选?怎么避免买多?
Savings Plans 更灵活:承诺每小时 $X 的用量,自动覆盖 EC2/Fargate/Lambda,不管实例族和 Region。Reserved Instances 折扣更深但锁定了具体实例类型。避免买多的原则:只承诺过去 90 天的最低月用量(不是平均、更不是预测),先用 1 年期零预付的 Compute Savings Plans 覆盖稳定基线的 50-60%,跑一个季度确认用量后再补。
Q: 怎么快速扫一遍有没有僵尸资源?
在 Cost Explorer 里按”Usage Type”分组 → 找 EC2-Other 和 EBS 行项目 → 对照 AWS 资源列表,把”有费用但没有活跃资源”的条目列出来。再进 Trusted Advisor → Cost Optimization 面板,AWS 会自动标出闲置的 ELB、未挂载的 EBS、过低的 EC2 利用率。两个动作 20 分钟扫完。
Q: 跨 AZ 流量看起来不贵,为什么实际账单这么高?
费率确实不高($0.02/GB 双向),但量级是多数人低估的。一个中型 Kubernetes 集群,20 个微服务、每秒 5,000 次 API 调用、Pod 分布在 3 个 AZ 且没有 topology-aware routing:一个月跨 AZ 流量轻松跑到 100-200TB,就是 $2,000-4,000。加上 Auto Scaling 弹新实例时不受控的跨 AZ 通信,翻倍也不奇怪。
Q: 这些优化做完,大概能省多少?
我们审计过的企业做完这五项后,平均月省 25-35%,最好的案例省了 52%(那家几乎全中招)。最低的省了 12%(那家 VPC Endpoint 已经配好了,主要省在存储层和僵尸资源清理)。这还不算 Savings Plans 和 Reserved Instances 的叠加效果:两项一起做,月省 35-50% 是合理预期。
总结:赠金 + 止血 = 真正的省钱
代理商充值赠金是第一步:把单价打下来。但如果不同时把用量侧的泄漏堵住,赠金省出来的钱会被偷偷吃掉。
先堵这五个泄漏点,再算赠金。顺序反了就是填坑。
如果用一句话给 CTO 做决策:去 Cost Explorer,看 EC2-Other 这一行。如果超过总账单 5%,先配 VPC Endpoint。然后这个月就做这件事。下周再看别的。
关于 AWS 成本优化的官方最佳实践,AWS Well-Architected Framework 的成本优化支柱是最系统性的参考。但记住:文档告诉你”应该做什么”,本文告诉你”先做哪一件”。两件事不同。
关于 SevenColorYun
作为 AWS APN Premier 级合作伙伴,我们已为 40+ 出海企业提供 AWS 成本审计、架构优化与代理商采购服务。
我们的服务:
- AWS 成本审计(五大泄漏点排查 + NAT/VPC/存储/计算/数据库全维度扫描)
- 充值返赠(充$1,000送$50起,充$10,000送$1,500)
- VPC Endpoint + 网络架构优化(NAT 流量压降 80%+)
- 非生产环境自动启停方案设计(Instance Scheduler + Karpenter)
- 人民币对公付款 + 国内增值税专用发票(6% 云服务费,可抵扣进项)
需要成本审计?点击右下角联系我们的技术顾问,获取 AWS 成本优化方案与充值赠金。