Why IaC Pricing Is a Clusterfuck

Every vendor claims their tool is "free" until you actually try to use it in production. Then you get hit with bills that make you question your career choices.

CloudFormation: "Free" Like a Puppy Is Free

AWS CloudFormation Logo

AWS CloudFormation doesn't cost anything upfront, which is nice until you realize it's like getting a free car that only runs on premium gas and breaks down every weekend.

Sure, basic AWS resources are free to provision. But the moment you need anything beyond basic EC2 and S3 - like custom resources or third-party integrations - AWS starts charging $0.0009 per operation. Sounds cheap? Try provisioning a Datadog monitor resource 10,000 times a month. That's $9 just for one type of resource operation. We had 247 Datadog monitors across 3 environments, and every update triggered handler operations. The AWS Free Tier only covers 1,000 handler operations per month, which sounds generous until you realize third-party providers can burn through that in a single deployment.

I learned this the hard way in November 2023 when we migrated our monitoring setup from Terraform to CloudFormation. What we thought would be a free migration ended up costing $347/month just in CloudFormation handler operations. The Datadog provider alone was generating 12,000+ operations per month because it was polling for state changes every 30 seconds. The bill breakdown looked like we were paying AWS for the privilege of using other people's tools. Check out this CloudFormation cost optimization guide if you want to understand just how deep this rabbit hole goes. There's also extensive documentation on custom resources that fails to mention the cost implications.

Terraform: "Free" Until You Need to Sleep

Terraform Logo

Terraform itself costs nothing. Running Terraform without losing your sanity? That's where they get you.

You start with local state files. Then someone else touches your code and overwrites your state. So you set up S3 backend. Then you need state locking with DynamoDB. Then someone accidentally corrupts the state file and you get this fucking error. The AWS best practices guide covers this setup, but doesn't mention the operational nightmare that follows. Here's a detailed analysis of why state locking still doesn't solve all your problems:

Error: Error acquiring the state lock
Error message: ConditionalCheckFailedException: The conditional request failed

And you spend 6 hours rebuilding infrastructure from memory because your backup state file is also corrupted (this was Friday night, 9 PM, while my kid was screaming in the background).

Within 3 months, you're running a dedicated engineer just on Terraform operations. That's $120k/year before you even get to the infrastructure costs. Add monitoring, security scanning, and CI/CD integration, and you're easily at $200k annually just to make the "free" tool work. This state management guide breaks down the six most common issues you'll face. There's also this comprehensive troubleshooting guide that documents solutions to problems you didn't even know existed yet.

We tried running pure Terraform from v0.12 through v1.3 for 2 years. I calculated we spent more on engineering time debugging state file issues than we would have on HCP Terraform. The breaking point was when our lead DevOps engineer quit after spending a weekend in February 2023 recovering from a corrupted state file that took down staging. The state got corrupted during a partial apply when terraform v1.2.8 crashed mid-execution. This horror story from AWS shows what happens when state corruption goes undetected. There's also this recovery guide that walks through fixing corrupted state files - bookmark it now because you'll need it later.

Pulumi: Death by a Thousand Credits

Pulumi Platform

Pulumi's credit system is designed to confuse you into spending money. They count every individual resource, including shit you didn't even know existed.

We thought we had 200 resources in our Kubernetes cluster. Pulumi's console showed 847 billable resources - I remember the exact number because I stared at that fucking dashboard for 3 hours trying to figure out where all the resources came from. Turns out every security group rule counts separately. Every IAM policy attachment is a separate resource. Every individual subnet route is a resource.

Our "simple" EKS cluster with 5 t3.medium nodes suddenly cost $423/month just in Pulumi credits. The actual compute was only $180/month. The worst part? You don't find out until after deployment. Their cost estimator is useless because nobody knows their actual resource count until Pulumi counts it for you. This detailed pricing analysis breaks down exactly how their credit system works and why it's designed to be confusing. There's also this pricing overview that explains the difference between declared resources and billable resources.

I spent a weekend in March 2024 trying to optimize our resource usage, combining security groups and IAM roles. Cut it down from 847 to 392 resources and felt proud. Then we added one more microservice (just a simple Express.js API) and were back up to 623 resources. Pulumi counted every single environment variable injection as a separate resource.

Want to see how fucked you really are? Run this:

pulumi stack --show-urns | grep -E \"(aws:|kubernetes:)\" | wc -l

That's your actual billable resource count. Spoiler: it's way higher than you think.

Spacelift: At Least They're Honest About Screwing You

Spacelift Platform

Spacelift charges $399/month minimum. Sounds expensive until you realize it doesn't scale with your infrastructure size. You pay the same whether you manage 100 resources or 10,000.

The pricing is actually predictable, which is refreshing after dealing with Pulumi's credit roulette. You know exactly what you're paying each month. No surprises, no weird resource counting, just straightforward "pay this much, get this much concurrency."

We switched to Spacelift after the Pulumi bill hit $800/month for the same infrastructure. Yeah, $399 seemed expensive at first, but at least I could budget for it without having nightmares about resource drift adding $200 to next month's bill.

IaC Platform Reality Check - What Each Tool Actually Costs You

Platform

What They Promise

What You Actually Pay

The Bullshit Factor

AWS CloudFormation

"Free for AWS resources!"

$0 for basic stuff, $347/month for Datadog integration

High

  • "Free" until you need custom resources (learned this in Nov 2023)

Terraform (OSS)

"Completely free!"

$140k+/year in engineering time (4 engineers @ $35k overhead each)

MAXIMUM

  • "Free" like a boat is free

HCP Terraform

"$20/user/month"

$20/user + mysterious enterprise fees

Medium

  • Base price is real, everything else costs extra

Pulumi

"150k free credits!"

Burned through in 2.5 days (847 resources), then $387/month

MAXIMUM

  • Resource counting is a straight-up scam

Spacelift

"$399/month minimum"

Actually $399/month (no bullshit!)

NONE

  • Shockingly honest pricing

The Hidden Costs That Will Destroy Your Budget

Nobody talks about the real costs until you're already fucked. Here's what actually happens when you deploy IaC in production.

The \"Free\" Terraform Nightmare

We started with Terraform 0.12.0 in June 2020 because it was "free." Three years later, we had a dedicated team of 4 engineers (Sarah, Mike, Dave, and that contractor whose name I can't remember) just keeping it running. That's $400k/year in salaries before you factor in the infrastructure costs, monitoring, and the therapy bills.

State File Hell: $15k/year minimum

The Weekend Recovery Tax: Priceless
Every 3 months, someone corrupts a state file. Usually on Friday at 5 PM. I've spent more weekends recovering Terraform state than I care to count. In December 2022, we had to rebuild our entire staging environment from scratch because the state file got corrupted during a failed terraform apply (someone ctrl+c'd it halfway through), and our backup was also corrupted because we were using S3 versioning but the versioning was broken. Took 14 hours.

Security Compliance Bullshit: $50k/year

Multi-Cloud Is a Special Kind of Hell

Multi-Cloud Infrastructure

We thought multi-cloud would give us negotiating power with vendors. Instead, it gave us multiple bills and triple the operational overhead.

AWS: CloudFormation works great until you need to integrate with anything non-AWS. Then you're paying handler operation fees for every third-party resource. Our Datadog integration alone costs $200/month in CloudFormation operations.

Azure: ARM templates are "free" but good luck finding anyone who actually knows how to write them. We hired a consultant from Microsoft for $2k/week just to set up our Azure infrastructure because the ARM template documentation is complete garbage. Half the examples are outdated and the other half reference deprecated resource types. This Reddit thread captures the frustration perfectly, and here's a detailed analysis of why ARM templates are fundamentally broken. Some engineers just recommend avoiding ARM entirely.

GCP: Deployment Manager is so limited we ended up using Terraform anyway. So we're paying for GCP resources plus maintaining Terraform state files plus the engineering overhead of keeping everything in sync.

The breaking point was when we had 3 different state files, 4 different CI/CD pipelines, and 2 different policy systems. I calculated we were spending more on multi-cloud operational overhead than we were saving on compute costs.

Pulumi's Resource Counting Scam

Resource Counting Problem

Pulumi's resource counting is designed to maximize their revenue at your expense. They count resources in the most granular way possible.

The Kubernetes Cluster Trap:

  • 1 EKS cluster = 1 resource (seems reasonable)
  • 5 security groups = 5 resources (okay, still reasonable)
  • 20 security group rules = 20 MORE resources (wait, what?)
  • 15 IAM roles = 15 resources
  • 45 IAM policy attachments = 45 MORE resources (because fuck you)
  • 10 subnets = 10 resources
  • 30 route table entries = 30 MORE resources

That "simple" 5-node EKS cluster (t3.medium instances, basic networking) ended up being 237 billable resources according to Pulumi's console. I know the exact number because I took a screenshot and sent it to our VP of Engineering with the subject line "What the fuck is this?" Point is, way more than anyone would expect. At $0.0005 per resource-hour, that's about $85/month just for Pulumi to count our shit.

The worst part? You can't estimate costs upfront. Their pricing calculator is useless because you don't know your actual resource count until after deployment. We thought our migration would cost $50/month based on their "Simple Cost Calculator" which counted our cluster as "~50 resources." First bill in January 2024 was $387.43 because apparently every security group rule, every environment variable, and every damn annotation counts as a separate billable resource.

The Enterprise Sales Call Tax

Once you hit any kind of scale, every platform wants to get on a call to "understand your needs." Translation: figure out how much they can extract from you.

HCP Terraform: Started at $20/user/month. Enterprise sales called and suddenly we need "enhanced security features" for $500/month extra. Plus "priority support" for another $300/month. Plus "audit logging" that should be fucking included.

Pulumi Enterprise: The sales guy wouldn't even tell us the price until after a 3-hour "discovery call" and a security questionnaire. Turns out "enterprise pricing" starts at $50k/year. For the same features that Spacelift includes at $399/month.

The Hidden Infrastructure Tax

Infrastructure Monitoring

Every IaC platform needs supporting infrastructure that nobody budgets for:

Monitoring and Alerting: $200+/month

Backup and Recovery: $100+/month

CI/CD Integration: $500+/month

The Real Cost Breakdown

After 5 years of running IaC at scale, here's what it actually costs:

Small Team (5-15 engineers):

  • Terraform OSS: $150k/year (1 dedicated engineer + infrastructure)
  • CloudFormation: $100k/year (0.5 engineer + AWS fees for third-party resources)
  • Spacelift: $50k/year ($399/month + minimal engineering overhead)

Medium Company (50-100 engineers):

  • Terraform OSS: $500k/year (3-4 engineers + full operational overhead)
  • HCP Terraform: $200k/year ($20/user + enterprise features + sales tax)
  • Pulumi: $300k/year (credit costs + 2 engineers managing resource optimization)
  • Spacelift: $120k/year (predictable scaling + 1 engineer)

Enterprise (200+ engineers):

  • Any solution: You're fucked, but Spacelift fucks you the least

The pattern is clear: anything that scales with team size or resource count will bankrupt you. Flat-rate pricing with reasonable limits is the only sustainable model.

The IaC Pricing Questions Everyone Actually Asks

Q

Why is Pulumi so fucking expensive?

A

Because they count every goddamn thing as a resource. That security group? That's 6 billable resources (1 group + 5 rules), not 1. We deployed what we thought was a simple Kubernetes cluster and Pulumi counted 847 resources. I remember the exact number because I stared at that dashboard in disbelief for 20 minutes. The worst part? You can't know the real cost until after deployment. Their pricing calculator is useless because nobody knows their actual resource count. We estimated $50/month based on their "Simple Cost Calculator" which counted our infrastructure as "~45 resources." First bill was $387.43 because apparently every security group rule, every environment variable, and every fucking Kubernetes annotation counts as a separate billable resource. Pro tip: Run this command after any Pulumi deployment to see how badly they're screwing you:

pulumi stack --show-urns | wc -l
## Then compare to what you thought you were deploying
pulumi stack --show-urns | grep -E "(aws:ec2|aws:iam|kubernetes:)" | head -20

I found out our "simple" ALB was actually 47 separate billable resources:

  • load balancer (1)
  • target groups (3)
  • health checks (3)
  • security group (1)
  • security group rules (12)
  • listener rules (18)
  • CloudWatch alarms (9)

Each one costs $0.0005/hour.

Q

How much does "free" Terraform actually cost?

A

About $120k/year minimum for a small team once you factor in the engineering time to make it not suck.

You need someone to manage state files (because they will get corrupted). You need monitoring (because applies will fail silently). You need backup systems (because you will accidentally delete something important). You need CI/CD integration (because manual deployment is suicide).

I calculated we spent $247k over 3 years on engineering time making Terraform work versus ~$85k for HCP Terraform. The breaking point was February 2023 when Sarah (our lead DevOps engineer) spent 18 hours over a weekend recovering from this exact error:

Error: Error acquiring the state lock
Error message: ConditionalCheckFailedException: The conditional request failed
Lock Info:
  ID:        8f2b7c4d-1a2e-4f8a-b3c5-6d7e8f9a0b1c
  Path:      terraform-state-prod/terraform.tfstate
  Operation: OperationTypeApply
  Who:       dave@ourcompany.com
  Version:   1.2.8
  Created:   2023-02-17 21:47:32.123456789 +0000 UTC

The state file was corrupted mid-apply when Dave force-quit terraform (ctrl+c) during a network timeout. Both primary and backup state files were fucked.

Q

Why do IaC sales calls happen when you hit enterprise scale?

A

Because that's when they can extract maximum money from you. The moment you have 50+ engineers or mention "enterprise," every vendor suddenly needs to "understand your needs."

Translation: they want to figure out how much budget you have and price accordingly. HCP Terraform goes from $20/user to "custom enterprise pricing" starting at $50k/year (found this out during a 2-hour call in January 2024). Pulumi won't even tell you the enterprise price until after a 3-hour "discovery call" plus security questionnaire plus architecture review.

Only Spacelift has been honest about pricing. They told us exactly what it would cost upfront. Shocking behavior in this industry.

The Pulumi sales guy made us sit through a "security questionnaire" just to get a price quote. Three hours of my life I'll never get back.

Q

Which platform has the most bullshit pricing model?

A

Pulumi, hands down. Resource-under-management pricing where they count resources in the most granular way possible to maximize revenue.

Example: A single EKS cluster with basic networking becomes:

  • 1 cluster resource
  • 5 security groups
  • 23 security group rules (counted separately!)
  • 10 subnets
  • 15 route table entries (also separate!)
  • 8 IAM roles
  • 20 IAM policy attachments (because fuck you)

That's 82 billable resources for what any sane person would call "1 Kubernetes cluster." At $0.0005/resource-hour, you're paying $30/month just for Pulumi to count your shit.

Q

How do you avoid getting screwed by hidden costs?

A

Budget for 3x whatever they tell you the price is. Seriously.

"Free" tools cost $100k+/year in engineering time. Paid tools have mysterious "enterprise features" that aren't listed anywhere. Multi-cloud strategies triple your operational overhead while saving you nothing.

The only honest pricing I've seen is Spacelift: $399/month, period. No resource counting bullshit, no per-user scaling insanity, no enterprise sales tax. You know exactly what you're paying.

Q

What's the real cost difference between platforms?

A

For a medium company (50 engineers, 2000 resources):

Terraform OSS: $300k/year (2-3 dedicated engineers + infrastructure)
HCP Terraform: $150k/year ($20/user + enterprise features)
Pulumi: $200k/year (resource counting + 1 engineer optimizing resource usage)
Spacelift: $60k/year (predictable flat rate + minimal overhead)

The pattern is clear: anything that scales with team size or resource count will bankrupt you.

Q

When should I just stick with CloudFormation?

A

If you're AWS-only and can deal with YAML hell, CloudFormation is hard to beat cost-wise. It's free for AWS resources and the operational overhead is manageable.

But the moment you need third-party integrations, AWS starts nickel-and-diming you with handler operation fees. Our Datadog integration costs $200/month in CloudFormation operations.

And if you ever want to go multi-cloud, you're fucked. CloudFormation locks you into AWS harder than a mob protection racket.

Q

What questions should I ask during vendor demos?

A

Skip the demo bullshit and ask the hard questions:

  1. What's your actual resource counting method? (Watch them squirm)
  2. What happens when I hit your "unlimited" limits? (There are always limits)
  3. What are the real enterprise pricing tiers? (Not the marketing ones)
  4. How much does professional services cost? (You'll need it)
  5. What's your policy on price increases? (They will happen)

Most importantly: Get pricing in writing. Sales promises don't survive contract negotiations.

Q

Why is multi-cloud so expensive?

A

Because you're essentially running multiple infrastructure platforms in parallel with different operational models, pricing schemes, and toolchains.

We thought multi-cloud would give us negotiating power. Instead, we ended up with:

  • 3 different state management systems
  • 4 different CI/CD pipelines
  • 2 different policy frameworks
  • Triple the on-call burden

I calculated we were spending more on multi-cloud operational overhead than we were saving on compute costs. Multi-cloud is a consulting company's dream and an engineering team's nightmare.

Related Tools & Recommendations

tool
Recommended

Azure DevOps Services - Microsoft's Answer to GitHub

alternative to Azure DevOps Services

Azure DevOps Services
/tool/azure-devops-services/overview
100%
pricing
Similar content

Enterprise Git Hosting: GitHub, GitLab & Bitbucket Cost Analysis

When your boss ruins everything by asking for "enterprise features"

GitHub Enterprise
/pricing/github-enterprise-bitbucket-gitlab/enterprise-deployment-cost-analysis
86%
tool
Recommended

GitHub Actions Security Hardening - Prevent Supply Chain Attacks

alternative to GitHub Actions

GitHub Actions
/tool/github-actions/security-hardening
68%
alternatives
Recommended

Tired of GitHub Actions Eating Your Budget? Here's Where Teams Are Actually Going

alternative to GitHub Actions

GitHub Actions
/alternatives/github-actions/migration-ready-alternatives
68%
tool
Recommended

GitHub Actions - CI/CD That Actually Lives Inside GitHub

alternative to GitHub Actions

GitHub Actions
/tool/github-actions/overview
68%
pricing
Recommended

Infrastructure as Code Pricing Reality Check: Terraform vs Pulumi vs CloudFormation

What these IaC tools actually cost you in 2025 - and why your AWS bill might double

Terraform
/pricing/terraform-pulumi-cloudformation/infrastructure-as-code-cost-analysis
66%
integration
Recommended

Jenkins + Docker + Kubernetes: How to Deploy Without Breaking Production (Usually)

The Real Guide to CI/CD That Actually Works

Jenkins
/integration/jenkins-docker-kubernetes/enterprise-ci-cd-pipeline
65%
pricing
Similar content

AWS vs Azure vs GCP Developer Tools: Real Cost & Pricing Analysis

Cloud pricing is designed to confuse you. Here's what these platforms really cost when your boss sees the bill.

AWS Developer Tools
/pricing/aws-azure-gcp-developer-tools/total-cost-analysis
63%
tool
Recommended

Pulumi Cloud - Skip the DIY State Management Nightmare

competes with Pulumi Cloud

Pulumi Cloud
/tool/pulumi-cloud/overview
54%
tool
Recommended

Fix Pulumi Deployment Failures - Complete Troubleshooting Guide

competes with Pulumi

Pulumi
/tool/pulumi/troubleshooting-guide
54%
tool
Recommended

Pulumi Cloud for Platform Engineering - Build Self-Service Infrastructure at Scale

competes with Pulumi Cloud

Pulumi Cloud
/tool/pulumi-cloud/platform-engineering-guide
54%
alternatives
Recommended

Terraform Alternatives That Don't Suck to Migrate To

Stop paying HashiCorp's ransom and actually keep your infrastructure working

Terraform
/alternatives/terraform/migration-friendly-alternatives
53%
tool
Recommended

Terraform - Define Infrastructure in Code Instead of Clicking Through AWS Console for 3 Hours

The tool that lets you describe what you want instead of how to build it (assuming you enjoy YAML's evil twin)

Terraform
/tool/terraform/overview
53%
tool
Recommended

GitLab CI/CD - The Platform That Does Everything (Usually)

CI/CD, security scanning, and project management in one place - when it works, it's great

GitLab CI/CD
/tool/gitlab-ci-cd/overview
52%
tool
Recommended

Jenkins - The CI/CD Server That Won't Die

alternative to Jenkins

Jenkins
/tool/jenkins/overview
47%
tool
Recommended

Jenkins Production Deployment - From Dev to Bulletproof

alternative to Jenkins

Jenkins
/tool/jenkins/production-deployment
47%
tool
Recommended

Red Hat Ansible Automation Platform - Ansible with Enterprise Support That Doesn't Suck

If you're managing infrastructure with Ansible and tired of writing wrapper scripts around ansible-playbook commands, this is Red Hat's commercial solution with

Red Hat Ansible Automation Platform
/tool/red-hat-ansible-automation-platform/overview
46%
tool
Recommended

Amazon SageMaker - AWS's ML Platform That Actually Works

AWS's managed ML service that handles the infrastructure so you can focus on not screwing up your models. Warning: This will cost you actual money.

Amazon SageMaker
/tool/aws-sagemaker/overview
41%
news
Recommended

Musk's xAI Drops Free Coding AI Then Sues Everyone - 2025-09-02

Grok Code Fast launch coincides with lawsuit against Apple and OpenAI for "illegal competition scheme"

aws
/news/2025-09-02/xai-grok-code-lawsuit-drama
41%
news
Recommended

Musk Sues Another Ex-Employee Over Grok "Trade Secrets"

Third Lawsuit This Year - Pattern Much?

Samsung Galaxy Devices
/news/2025-08-31/xai-lawsuit-secrets
41%

Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization