Notes from the team building C3X. Cost estimation for Terraform, the economics of cloud infrastructure, and how to ship FinOps tooling without a SaaS gate.
Data Factory bills orchestration per activity run, data movement per DIU-hour, and mapping data flows per vCore-hour, plus pipeline monitoring. Chatty pipelines and always-on data flow clusters are the usual overspend. Here is the breakdown.
Managed disks bill by type and provisioned size (Premium SSD, Standard SSD, Standard HDD, Ultra), so you pay for capacity whether or not you use it. Ultra and Premium v2 add provisioned IOPS and throughput. Here is how to pick the right tier.
Vertex AI bills training per node-hour, online prediction per node-hour for the endpoint you keep deployed, plus AutoML and model API usage. Idle deployed endpoints are the classic surprise. Here is where the money goes and how to cut it.
Cloud Logging charges about $0.50 per GB ingested after a 50 GB monthly free allowance, plus retention beyond the default. Exclusion filters and sampling are the main levers. Here is how the ingestion-based model works and where cost hides.
Cloud Build bills per build-minute by machine type, with a daily free allowance. Slow builds and oversized machines drive the cost. Caching, parallelism, and right-sized machines are the levers. Here is how the per-minute model works.
Cloud Tasks bills per operation (task creation and dispatch), with the first million operations free each month and about $0.40 per million after. It is inexpensive; the cost to watch is the work the tasks trigger. Here is the model.
GCP offers two network service tiers: Premium routes over Google's backbone for best performance, Standard routes over the public internet for cheaper egress. Choosing Standard where performance allows cuts egress cost. Here is the tradeoff.
Add a CircleCI job that runs after terraform plan, prices the plan JSON, and comments the monthly cost on the pull request, failing the build past a budget. Here is how it fits a config.yml workflow and keeps pipelines fast.
Spacelift runs Terraform with policy-as-code and lifecycle hooks, so you can price the plan in a hook and block the run with an OPA policy when it exceeds a budget. Here is how cost estimation fits a Spacelift stack.
env0 manages Terraform environments with approval workflows and policies, so you can price the plan and gate deployments on a budget. Here is how cost estimation fits an env0 template and its policy-as-code guardrails.
A read replica adds a full instance cost to offload reads and improve read latency, but it does not help writes and adds replication lag. Knowing when a replica pays off, versus caching or a bigger primary, is the decision. Here is the framework.
Every database connection consumes memory on the server, so without pooling you scale the database up just to hold connections. A pooler like PgBouncer or RDS Proxy lets a small database serve many clients. Here is the cost-performance case.
Spot instances cost up to 90% less but can be reclaimed with little warning, so the saving comes with an interruption risk. Matching Spot to fault-tolerant work, and blending with on-demand, is how you get the discount without the outage. Here is how.
Non-production environments often run 24/7 at production-like size, spending most of their money while nobody uses them. Scheduling, right-sizing, and single-AZ are the big levers. Here is how to cut non-prod cost without slowing teams.
Since February 2024, AWS charges about $0.005 per hour (roughly $3.60/month) for every public IPv4 address, whether attached or idle. Idle Elastic IPs and sprawling public IPs add up fast. Here is what changed and how to cut it.
EBS snapshots bill about $0.05 per GB-month for changed blocks (they are incremental), or about $0.0125 in the Archive tier for rarely-restored snapshots. Snapshot sprawl from unmanaged schedules is the usual culprit. Here is how to control it.
Simple Email Service charges roughly $0.10 per 1,000 emails sent, plus a small charge for attachments and inbound, and standard data transfer. It is one of the cheapest ways to send email at scale. Here is the breakdown and the few gotchas.
Cognito bills by monthly active users (MAU) with a free tier, and separately for advanced security features. Cost scales with your user base, not requests. Here is how the MAU model works and how to keep it predictable.
CloudWatch alarms cost about $0.10 each per month (standard), $0.30 for high-resolution or anomaly-detection, and $0.50 for composite. A few are trivial; thousands generated per-resource across a fleet add up. Here is how to keep it sane.
ElastiCache Serverless bills per GB-hour of data stored and per ElastiCache Processing Unit (ECPU) consumed, scaling to your workload with no nodes to size. It suits spiky caches; steady ones can be cheaper on nodes. Here is how it prices.
Route 53 bills per hosted zone and per query, so cost scales with traffic. Cloudflare offers DNS on flat plans (including a free tier) with unlimited queries. Here is how the two models compare and when each wins.
Dataflow bills per vCPU-hour and GB-hour of worker time, plus a data-processed charge for Shuffle (batch) or Streaming Engine. Right-sizing workers and using the managed shuffle are the main levers. Here is how the model works.
Dataproc adds about $0.01 per vCPU-hour on top of the Compute Engine instances it runs, so the cluster costs more than the VMs alone. Ephemeral clusters, preemptible workers, and Dataproc Serverless are the main levers. Here is how to cut it.
Spanner bills compute as nodes (about $0.90/node/hour) or processing units (100 PU = a tenth of a node), plus $0.30 per GB-month of storage, backup, and egress. Processing units let you start small. Here is how to size and control the bill.