我很久以前就停止使用 AWS 了。如今我运行的几乎所有业务都迁移到了 Cloudflare。那个 AWS 账号只是我昔日技术生涯的最后一点遗迹。

但自那以后的每一个月,AWS 都会从我这里扣除一笔微不足道的费用。这个月是 1.89 美元。金额实在太小了,以至于整整三年来我从未费心去查明原委。直到这个月,我下定决心要彻底查个水落石出,于是我登录了 AWS 控制台。

然后,我立刻回想起了自己当初为何要逃离它。

寻找即迷失

AWS 的控制台在设计上就烂得令人发指。想要找到某样东西以便将其终止或删除,需要耗费真正的精力:选项散落在多层下拉菜单和“三个点”折叠菜单深处,你真正需要的那个点击按钮,永远藏在你意想不到的角落。

你可能会辩解:“如果删除太容易,大家就会不小心把生产环境一把抹掉。”但这根本不是真正的原因。在控制台里每删一样东西,它都会逼你手动输入“delete”来确认。它完全知道该如何让销毁操作变得审慎而清醒。这种层层阻碍绝非为了保护我——它们被刻意安装在导航流程中,早在你摸到确认弹窗之前就将你劝退。

而且你必须将目标区域(Region)选得分毫不差,因为无论你对着搜索框瞪多久,部署在 us-west-2 的资源在 us-east-1 就是不存在。对于某些服务,情况甚至更为恶劣。操作必须讲究严格的先后次序:你必须先终止负载均衡器,然后再删除实例,顺序绝不能反;在删除 Elastic Beanstalk 创建的底层资源之前,必须先拆除该环境本身,否则它会自动把删掉的资源重新创建出来。AWS 自己的官方文档甚至一本正经地指导你按照这一套次序进行操作。

我那 1.89 美元到底花在哪了

2026年9月1日至9月30日计费周期的 AWS 账单,显示总费用为 1.89 美元,其中 AWS Key Management Service 为 1.00 美元,CloudTrail、Glue 与 Data Transfer 均为 0.00 美元

这就是我的账单。CloudTrail:0.00 美元。AWS Key Management Service:1.00 美元。Glue:0.00 美元。Data Transfer:0.00 美元。逐项明细加起来整整是 1 美元。但账单却白纸黑字写着我欠款 1.89 美元,而另外的 89 美分在该页面上的任何地方都没有列出明细。要么是漏在别处的账目,要么是页面自身账目无法对平——不论缘由为何,凭借 AWS 发给我的账单,我自己根本算不清自己的账。

真正关键的是 KMS 这一行。每个密钥每月 1 美元,按小时折算扣费,无论你账户里是否有任何东西在调用这个密钥。这就是全部收费的源头。一个我多年前为了早已不再运行的项目顺手创建的密钥,就这么天长地久地持续向我收费。

而且这绝非 KMS 独有的现象。AWS 有整整一张“仅凭存在即可计费”的资源清单:

  • KMS 密钥 — 每密钥每月 1 美元。随手建一个,转头忘了,永远扣费。
  • Secrets Manager — 每个密钥/凭据每月 0.40 美元,固定费率,无用量折扣,闲置不减免。
  • 公网 IPv4 地址 — 每小时 0.005 美元,每月约 3.60 美元。自 2024 年 2 月起,无论该地址是否挂载到服务上均执行该费率;而在此之前,申请后未挂载的空闲地址早就已经开始计费了。
  • 没有健康目标的负载均衡器 — 每月白扔大约 16 美元,静静地趴在那里什么也不处理。
  • EBS 卷、快照、NAT 网关、已停止的 RDS 实例 — 算力虽然暂停了,账单却从未停步。

AWS 在其官方文档中白纸黑字印下了自己的自白。在免费套餐页面上写着:“即使您没有定期登录账户,您也可能拥有正在运行的活跃资源。”在关于意外收费的说明页上写着:“如果您关闭了账户或取消订阅了某项服务,请确保已针对分配过 AWS 资源的所有 AWS 区域采取了适当的清理步骤。”

这第二句话正是其设计的精髓所在。资源在默认情况下永远计费。停止它们需要经历多步骤、跨区域、讲究特定顺序的拆卸操作。每一个步骤都是一处可以让你不知不觉失败的陷阱,而一旦你遗漏失败,AWS 就能多收获一个月的营收。

AWS 算的那笔账

小额抽水只有在小数点放错位置时才显得微不足道。假如有 100 万名离开了 AWS 却遗留了残余资源的用户,每月从每个人身上抽走两美元,那就是每月 200 万美元。一年就是 2400 万美元——全来自于那些早就彻底停用其产品的人。

AWS 在 2026 年第二季度报告的年化营收运行率(run rate)达到了 1690 亿美元。2400 万美元仅占其中的 0.014%。不过是脚注中某项明细的四舍五入误差。而这恰恰是整个机制的精妙所在:这笔钱少到 AWS 内部没有任何人会有动力去优化其拆卸注销流程,也少到根本不足以让我为了它去专门开工单找客服理论。默默付钱的成本远比据理力争要低。但汇聚在一起就是一笔巨款,因为像我这样的沉睡账户取之不尽。

即便是彻底注销关闭账户,也绝非干净利落的脱身。你依然会收到当月已用部分的最终结算账单。Marketplace 应用市场的订阅在账户关闭时并不会自动退订——你必须在此之前自己手动逐个终止。而账户里残留的任何服务,只要你日后重新激活账户,便会立即恢复计费。

两美元低于我愿意费心折腾的心理门槛,而操作摩擦力却高高凌驾于门槛之上。这绝非庞大产品无心造成的疏漏。这本身就是一个精心测算过的价格锚点。

“那你直接删掉不就行了”

确实可以。这是句大实话,也是这项机制之所以被称为商业策略而非纯粹诈骗的原因所在。它只是故意被设计得足够繁琐,让绝大多数人懒得动手。

最终拯救我的操作路径是:进入 Cost Explorer,先按服务分组,再按区域分组,随后在我曾经涉足过的每一个区域里,一个资源接着一个资源地手动拆毁。Resource Explorer 能协助跨区域查找隐藏的残余资源,免得你盲目猜测。如果你已经清楚自己在找什么,通过 CLI 命令行能更干净利落地解决这一切。

真正胜出的策略是一开始就别留任何后患。如果你决定和 AWS 说再见,请彻底做个了断:按正确顺序依次终止资源,扫荡每一个区域,然后关闭账户。

结语

1.89 美元微不足道。我写下这篇文章绝不是因为心疼每月损失这两块钱。我写它是因为:整整三年来我懒得过问,恰恰就是其设计所期望达成的完美结果。这绝不是一个有故障的控制台——它是在为其背后的商业利益完美无瑕地运转着。这个界面并不差劲。它只是针对另一类用户做了极致优化:那些乖乖掏钱的人。