
上个月,一个客户的财务总监给我发了封邮件,附了张AWS账单截图,上面红圈圈出十几个EC2实例,问:“这些服务器是谁的?干嘛用的?能不能关?”
我把账单转发给他们的运维负责人。他回我:“我也想知道。”
后来查了三天才搞清楚:有的是三年前上线的测试环境,早该销毁;有的是某个开发自建的实验项目,人走了机器还在跑;还有几个根本查不到归属,只能先关了观察。
这账面上白白跑着的资源,加起来一个月两万多美金。
这不是个例。我见过太多公司的云账单,打开成本分析,满屏的“misc”和“未标记”。财务看不懂,运维说不清,老板问起来没人能答。
今天聊聊云上资源标签治理。不是那种“标签很重要”的废话,而是帮你理清楚:标签到底怎么设计、怎么落地、怎么强制执行,才能让每一分钱都找到主人。
01 标签不是给机器看的,是给人看的
先说一个基本认知:标签这东西,云厂商设计出来,本质是为了帮人管理资源。
机器不关心标签。EC2该跑跑,S3该存存,有没有标签不影响功能。但人关心——财务关心成本归集,运维关心资源归属,业务关心预算分摊。
所以标签设计的第一原则是:用人的语言,而不是机器的语言。
什么意思?
别用“Project123”这种代号,用“电商大促项目组”
别用“Env1”这种模糊词,用“生产”、“测试”、“开发”
别用“张三专用”这种个人标签,用团队维度
我见过一个公司,标签规范写了一整页,规定了十几种标签。结果没人记得住,最后谁都不打。后来简化成五个必填项:成本中心、环境、应用名、负责人、创建时间。推行了半年,覆盖率从20%涨到90%。
标签不是越多越好,是越少越能落地。
02 标签设计的三个维度
梳理了上百家客户的标签实践,发现好用的标签体系都围绕三个维度展开。
维度一:业务维度
回答“这是干什么的”。
成本中心:财务结算的主体,比如“市场部”、“研发中心”
项目:具体项目名,比如“双11大促”、“CRM重构”
应用:业务系统名,比如“订单服务”、“用户中心”
维度二:环境维度
回答“这是在哪跑的”。
环境:生产、预发、测试、开发
区域:国内、海外、东南亚
合规等级:一般、敏感、核心
维度三:运维维度
回答“出事了找谁”。
负责人:团队名或个人邮箱
创建时间:方便追溯生命周期
自动关停标识:是否允许非工作时间自动关停
这三个维度加起来,基本能覆盖90%的管理场景。再多就是负担。
03 最容易被忽视的坑:标签值的一致性
很多公司标签规范写得挺好,但执行下来还是一团乱麻。为什么?因为同一个标签,大家填的值不一样。
比如“环境”这个标签,有的人填“prod”,有的人填“production”,有的人填“生产环境”。成本分析的时候,这三个被当成不同的维度,数据对不上,报表没法看。
解决这个问题只有一个办法:标准化,并且强制执行。
标签键统一:用英文还是中文?全小写还是驼峰?定下来别改。
标签值枚举:环境只能从[prod, staging, dev]里选,不能自己编。
大小写敏感:Prod和prod不一样,所以要么全小写,要么用工具清洗。
有些云厂商支持“标签策略”,可以强制规定哪些资源必须打哪些标签,值不符合规范的不让创建。这招最狠,但也最有效。
04 标签落地的三个阻力
理想很丰满,现实很骨感。标签治理推不动,通常有三个原因。
阻力一:开发觉得麻烦
“我还要写代码呢,没空打标签。”这是最常见的反对声。
解法:别让人手工打。用IaC(Terraform、CloudFormation)在模板里就把标签写好,资源创建时自动带上。开发不用管,标签自动有。
阻力二:历史欠账太多
几万台机器,都没标签,补起来要人命。
解法:分批次补。先给核心生产环境补,再给测试环境补,最后给那些查不到归属的资源定个“待清理”标签,观察一段时间没动静就销毁。别想一口气吃完,半年时间慢慢消化。
阻力三:没人对结果负责
标签打了,成本归集了,然后呢?没人看。
解法:成本报表定期发。每个团队月初收到上个月的支出报表,按标签拆好的,清清楚楚。超标的要写说明,持续超标的要有改进计划。成本可视化的目的,是让责任落到人。
05 从标签到成本分摊
标签打好了,下一步是成本分摊。
云厂商的账单可以按标签出报表,但有个问题:有些成本是共用的,怎么分?
共享资源:比如负载均衡、NAT网关,多个项目共用
固定成本:比如支持计划费用、域名费
混合成本:比如一个RDS实例被多个应用共用
这就要引入分摊模型。常见的有三种:
按比例分摊:按各应用的资源用量比例,把共享成本摊进去。
按固定比例分摊:约定好的固定比例,比如A项目40%,B项目60%。
按标签直接归属:能直接打到具体标签的,就直接归属。
没有完美模型,只有适合的模型。关键是规则透明、定期复盘、接受迭代。
06 自动化的最后一公里
标签治理做到最后,会碰上一个问题:那些没打标签的资源怎么办?
我的建议是:坚决一点,强制执行。
创建资源时检查标签,不符合规范的不让创建
定期扫描未打标签的资源,发通知给疑似负责人
超过一定期限仍未打标签的,自动关停或销毁
这听起来有点狠,但这是唯一能让标签治理持续下去的方法。否则每个月都有人“忘了”,每个月都要追着补,永远做不完。
AWS和阿里云都有相关工具:AWS Config可以写规则检查标签,不符合就触发修复;阿里云的标签策略可以强制要求创建时打标签。用起来。
写在最后
回到开头那个客户。后来我们帮他们做了两件事:
第一,设计了一套简化版标签规范,只有五个必填项,用IaC自动打。
第二,每个月自动生成成本报表,按成本中心拆好,发给对应的负责人。
三个月后,那个财务总监又给我发了封邮件,这回是感谢信。说现在每个月对账只要半天,之前要一周。而且那些“僵尸资源”被清理后,月成本降了18%。
他最后写了一句话:“原来让成本清晰可见,不是技术问题,是管理问题。”
我回他:“技术只是工具,管理才是解药。”
你的云上资源,现在谁能说清楚是谁在用、花多少钱、该不该留?如果说不清楚,今天就可以从标签开始。设计一套简化的规范,用IaC强制落地,每个月发一次报表。