开发者创建后离开,但账单却寄给部门负责人 — 实践中资源删除为何是预算管理的核心

云资源创建容易,但删除却容易忘记。

这种“遗忘”会破坏公司的财务治理。

>

本文涵盖内容

  • 为什么资源删除对实践中的工程师而言不仅仅是清理
  • 未删除资源对公司财务的4种结构性影响
  • 从FinOps角度看资源生命周期的意义
  • 实践中可立即应用的4种治理模式

引言 — 某基础设施团队负责人的月末

月末的云账单到了。基础设施团队负责人发现了一个奇怪的项目:dev-test-instance-aaron-temp-2。它在六个月前创建,而名为Aaron的工程师已在三个月前离职。每月12万韩元,六个月共72万韩元,就这样悄无声息地流失了。

然而,这样的项目并非一两个。经过追溯,部门总云成本的约25%来自来源不明、责任人不明的幽灵资源

我们必须面对的真相是:

“未删除资源”不仅仅是没有清理,

更是公司财务治理进一步崩溃的信号。

在实践/培训中教授“课程结束后请删除资源”的真正原因,并非因为教室成本,而是因为进入实际工作的工程师必须成长为保护公司预算的人


实践中资源删除是预算管理核心的4个原因

1. 预算预测准确性崩溃

FinOps中最重要的指标之一是预算预测准确性(Forecast Accuracy)。CFO和财务团队预测下一季度的云支出,以编制全公司预算,并以此预测为基础决定人员招聘、设备采购和研发投资。

问题在于,未删除资源每月累积,会导致成本基线本身膨胀。如果一个部门去年预测准确度为±5%,现在降至±25%,财务团队就会开始怀疑该部门的所有IT申请。

预测准确性不仅仅是一个数字。它是衡量“该部门了解其基础设施”的信任的尺度。失去信任,就失去预算。

2. 成本责任无法追溯

未打标签创建的资源、离职人员留下的资源、不知道属于哪个项目的资源 — 所有这些都落入“共同成本(Shared Cost)”池

共同成本增加,公司的Showback / Chargeback模型就会崩溃。

  • Showback: “该部门使用了这么多。”
  • Chargeback: “该部门应承担这么多。”

如果这不起作用,就无法衡量哪些服务盈利,哪些项目亏损。单位经济性(Unit Economics)分析的基础崩溃,最终导致错误的业务决策

SaaS公司可能会错误计算每用户利润并错误定价,

数据公司可能会错误估算每查询成本并以亏损价格销售。

3. 治理信任受损,审批流程变长

财务团队和安全团队最常问IT部门的问题很简单:

“为什么产生了这么多费用?”

资源生命周期管理崩溃的组织无法回答这个问题。如果无法回答,下个季度就会发生两件事:

  • 预算自动削减
  • 所有资源创建都需要事先审批

第二点更为致命。如果安全团队和财务团队开始要求对每个实例创建进行审批,工程速度将减半,公司整体的基础设施敏捷性将消失。只有拥有“良好删除文化”的组织才能享受“快速创建的自由”。

4. 直接成本泄漏累积

这是最显眼的部分,但实际上与上述三点相比,这是一个小问题。然而,累积起来绝不小。

被遗忘的资源 (每项) 每小时成本 每年成本
未使用的 Elastic IP $0.005 约 $44
空闲 NAT Gateway $0.045 约 $394
空 EKS 控制平面 $0.10 约 $876
被遗忘的 GPU 实例 (g4dn.xlarge) $0.526 约 $4,608
RDS db.t3.medium 独立 $0.068 约 $596

在一个100人规模的工程组织中,如果每人平均有1-2个这样的残留资源,每年将产生数千万至数亿韩元的直接损失。而这笔钱本可以用于新员工招聘或研发投入。


实践中应用的4种治理模式

① 强制标签策略 (Tag Enforcement)

所有资源必须强制使用4个标签:

  • Owner — 负责人邮箱
  • Project — 费用归属项目代码
  • Environment — dev / staging / prod
  • ExpireAt — 自动过期时间 (ISO 8601)

AWS通过SCP(Service Control Policy)或Tag Policy,Azure通过Azure Policy,GCP通过Organization Policy来阻止创建无标签资源

# Terraform — 强制为所有资源注入标签
locals {
  required_tags = {
    Owner       = var.owner
    Project     = var.project
    Environment = var.environment
    ExpireAt    = var.expire_at
  }
}

resource "aws_instance" "app" {
  # ... 省略 ...
  tags = merge(local.required_tags, {
    Name = "app-server"
  })
}

② 基于TTL的自动过期

Lambda每天根据ExpireAt标签自动回收过期资源。即使人忘记了,系统也会删除。这对于PoC环境、学习环境和演示环境尤其有效。

③ 启用成本异常检测

AWS Cost Anomaly Detection、Azure Cost Management Anomaly、GCP Recommender — 在24小时内检测到成本激增,并通过Slack/电子邮件通知。如果事故在第二天而不是一个月后被发现,损失将减少1/30。

④ 空闲资源每周审查

建立一个习惯,基础设施团队每周审查AWS Trusted Advisor、Compute Optimizer和Cost Explorer Rightsizing的建议。如果“清理时间”没有被安排在日历上,没有人会去清理。


⚠️ 实践中最常见的陷阱

  • “不是我创建的,所以我不用删除” — 如果没人删除,公司就会承担费用。最终是所有人的损失。
  • “开发环境成本很小” — 令人惊讶的是,许多公司的24小时运行的开发集群比生产环境更昂贵。
  • 离职人员交接中遗漏云资源 — 这是幽灵资源最常见的原因。人事流程中必须包含“提交所拥有资源清单”。
  • 默许无标签资源 — 如果“我急着创建的”被允许一次,这种文化将永远不会消失。
  • 用IaC创建,用控制台删除 — 依赖性错误会导致只删除一半,其余的成为孤儿。必须使用创建工具进行删除。

✅ 总结

  • 资源删除不仅仅是清理,更是财务治理的一部分
  • 未删除资源会带来4种后果 — 预测崩溃、责任无法追溯、治理信任受损、直接成本泄漏
  • 4个核心实践工具 — 强制标签、TTL自动化、成本异常检测、空闲资源每周审查
  • 在下个季度预算谈判中维护部门地位最便宜的方法是今天就删除不用的资源

在课程中教授“实验结束后请删除”的真正原因,是为了让学习者在实际工作中成为保护公司资金的工程师。这不仅仅是技术,更是运营文化的传承



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注