Terraform/OpenTofu 成本差异估算
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/estimate-terraform-and-opentofu-cost-deltas-before-infrastructure-changes-merge-with-infracost 到 AI 助手。
技能介绍
要解决什么问题
Terraform 或 OpenTofu 的 PR 审查通常关注配置是否正确、变更是否符合预期,但几乎不会回答另一个问题:这次变更会让云账单多花多少钱? 新增一台实例、把存储卷扩容一倍、把数据库换成更大的规格——这些改动在代码审查里只是几行 HCL,成本影响却要到月底账单出来才看得见。Infracost 的思路是把成本估算前置到 PR 阶段,让 reviewer 在合并前就能看到预期开销。
它如何工作
核心流程很直接:
- 输入是 plan 输出:执行
terraform plan或opentofu plan,把计划导出为 JSON 文件,作为估算输入。 - 调用 Infracost CLI 解析:Infracost 读取 plan JSON,识别其中的全部资源,结合其定价引擎逐项估价。
- 输出成本差异:对比变更前后的成本,呈现预计增加还是节省费用,以及差值来自哪些资源。
- 支持按用量计费的资源:除了按小时计费的实例,S3 存储、Lambda 请求这类用量型资源也在估算范围内。
适用边界与注意点
- 前提是能拿到
plan的 JSON 输出,只手写 HCL 而不执行 plan 的场景不适用。 - 估算依赖 Infracost 的定价数据与资源支持范围,部分小众资源或区域可能出现估价偏差,实际账单仍可能与之不同。
- 估算结果用于变更前的横向比较(涨了还是降了、幅度多大),而不是对账单的精确预言。
使用场景
- 基础设施团队提交 Terraform 变更 PR 时,需评估扩容带来的成本增加,在合并前确认预算影响。
- 使用 OpenTofu 管理集群,计划升级节点规格,想在 PR 中对比升级前后的月度费用差异。
- 存储管理员计划将 S3 桶从标准存储切换为 Glacier,需在变更合并前估算节省的成本。
- 平台工程师在 CI 流水线中集成成本检查,防止超出预算的基础设施变更被合并。
适合人员
- 云平台工程师,需要在基础设施 PR 合并前评估变更对云账单的具体影响。
- FinOps 工程师,负责云成本治理,需要在代码评审阶段识别潜在的成本超支风险。
- 基础设施团队负责人,希望在批准资源扩容变更前获得量化的成本估算依据。
- 运维工程师,使用 Terraform 或 OpenTofu 管理资源,需要在部署前确认费用变化。