FinOps governance
Cost-to-serve with PR-level governance. The novel piece: a merge pipeline that combines Infracost's automated pricing with hand estimates for resources Infracost can't price — every line tagged by source. Infrastructure PRs are gated on cost-delta acknowledgement.
- merge-cost-breakdown.mjs synthesis (Infracost rows + hand estimates)
- Per-source row tagging on every line item
- PR-gated cost-delta governance
- Infracost (automated pricing)
- OpenTofu modules (infra/aws, infra/gcp, infra/cloudflare)
Diagram source: content/architecture.yml. Edit the YAML to add components; the diagram re-renders at build time.
| Resource | Kind | Monthly | Assumption |
|---|---|---|---|
| CloudFront requests + egressest | cdn | $1.10 | ~50 GB/mo egress, ~500k requests at first-tier pricing |
| Tofu state in S3est | ops | $0.27 | Versioned, small state file, light reads |
| S3 bucket (origin)est | storage | $0.05 | ~2 GB site bundle, S3 Standard |
Module is in code (infra/aws/) but the environment has not been applied yet. The lines below estimate the planned topology. Infracost cannot price these without usage assumptions; expect them to be replaced by Infracost rows once apply lands and traffic begins.
| Resource | Kind | Monthly | Assumption |
|---|---|---|---|
| google_compute_global_address.site | cdn | $7.30 | IP address (unused) — 730 hours/mo |
| google_compute_global_forwarding_rule.site | cdn | $7.30 | Forwarding rules — 730 hours/mo |
| HTTPS LB egressest | cdn | $1.20 | ~50 GB/mo egress |
| Cloud Storage bucketest | storage | $0.06 | ~2 GB, Standard storage |
Module is in code (infra/gcp/) but the environment has not been applied to a backing service yet. Infracost rows above show resources currently declared (and billed for) but unused. The lines below estimate additional runtime cost the planned topology will add once traffic begins.
| Resource | Kind | Monthly | Assumption |
|---|---|---|---|
| Load Balancer (weighted steering)est | traffic | $5.00 | $5/mo base + $0.50/500k DNS queries; well under first tier |
| HTTPS health check monitorest | ops | $0.00 | Included with LB |
| DNS zone (austinrose.me)est | dns | $0.00 | Free tier, unlimited queries |
Cloudflare Load Balancing and DNS are not in Infracost's pricing catalog. The lines below are hand estimates of what the apex domain costs to route traffic between the AWS and GCP origins.
Every pull request that touches infra/ runs Infracost against each module and posts a comment summarizing the cost delta. A merge that raises monthly spend by more than a configurable threshold requires an acknowledgement before it can land.
The committed baseline lives at data/cost-breakdown.json and is regenerated on a schedule. The numbers above are read from that file at build time.