IBRAVRA Media Network
Comparisons • 13 min read

Terraform vs Pulumi vs AWS CDK: Infrastructure-as-Code Pricing Playbook

Three tools provision the same 1,000 resources for $100, $182.50, and $0 a month. This guide prices all three meters, the tier jumps, and the operator tax.

By Enow A. Jovial • Published 2026-11-05

Three tools provision the same thousand resources, and the monthly bills are $0, $100, and $182.50. That spread is not a pricing accident — it is three different meters. HCP Terraform charges per managed resource per month. Pulumi Cloud charges per resource-hour against a prepaid credit pool. AWS CDK charges nothing for the control plane at all, and bills you only for the AWS resources you create. The cheapest tool on the invoice is not always the cheapest to run: the free one needs an operator, and the wrong choice at 20,000 resources is a five-figure annual gap. This guide prices all three on the same workloads and names the meter that decides the winner at each scale.

What the three tools are, in one paragraph

Terraform is HashiCorp's declarative infrastructure-as-code engine, written in HCL, with state files, plans, and applies; HCP Terraform is the managed control plane that hosts the state, runs the plans, and enforces policy. Pulumi is an infrastructure-as-code engine written in general-purpose languages — TypeScript, Python, Go, .NET, Java, YAML — with Pulumi Cloud as its managed control plane for state, secrets, and deployments. AWS CDK is Amazon's open-source framework for defining AWS infrastructure in code; there is no managed CDK control plane to buy, because the framework synthesizes CloudFormation templates you deploy yourself. Terraform's engine is Business Source License, Pulumi's and CDK's are Apache-2.0. A team choosing a tool is choosing a language, a state store, and a meter at the same time.

The three platforms meter three different things: HCP Terraform bills managed resources per hour at the peak count, Pulumi bills declared resource-hours against a prepaid credit pool, and AWS CDK bills nothing — you pay only for the AWS resources it creates. At 1,000 resources the control-plane bills are $100, $182.50, and $0; at 20,000 they are $2,000, $3,650, and $0. The meter, not the logo, decides the winner.

Why it matters

Infrastructure-as-code spend is invisible until it is not. A team that manages 1,000 resources pays $100 a month on HCP Terraform Essentials and barely notices. The same team at 20,000 resources pays $2,000 a month on Essentials, $9,400 on Standard, and $19,800 on Premium — $237,600 a year at the top tier. The bill scales with the resource count, and the count scales with every microservice, environment, and security group rule — each one is a managed resource in state. HCP Terraform bills the peak hourly count, so a spike at 2 PM inflates that hour's bill even after the resources are gone. The pricing decision is a capacity decision, and it should be made before the first apply, not after the first invoice.

Founder & CEO Insight — Enow A. Jovial

"Every team I have watched pick an IaC platform picked it for the language and paid for the meter. HCL, TypeScript, or Python is a preference. Per-resource-per-month is a budget line. Write the resource count down first, run it through all three meters, and let the arithmetic pick — the language never pays the invoice." — Enow A. Jovial, Founder & Chief Executive Officer

The pricing tables, from the vendors' own pages

HCP Terraform prices per managed resource, billed hourly on the peak count in that hour. The figures below are corroborated across independent 2026 reads of HashiCorp's pricing page, which returns a rate-limit error from this network — verify them on the live page before signing.

HCP Terraform tierPer resource / monthPer resource / hourFree allowance
Free$0$0Up to 500 managed resources
Essentials$0.10$0.0001359None
Standard$0.47$0.00064None
Premium$0.99$0.00135None
AuthorityHashiCorp pricing page, corroborated 2026HashiCorp pricing page footnotesHashiCorp pricing page

Pulumi Cloud prices per resource-hour against a prepaid credit pool. One Pulumi Credit costs $1, and managed resources draw from the pool at $0.00025 per resource-hour. Essentials is $40 a month with 40 credits included, for up to 500 managed resources; Pro is $400 a month with 400 credits, for up to 2,000; Enterprise is custom-priced. Free is $0 for one user with 500 workflow minutes a month; extra minutes are $0.01 each.

Pulumi Cloud editionMonthly feeIncluded creditsStated scaleMeter beyond pool
Free$0$01 user$0.00025 / resource-hour
Essentials$4040 credits ($40)Up to 500 managed resources$0.00025 / resource-hour
Pro$400400 credits ($400)Up to 2,000 managed resources$0.00025 / resource-hour
EnterpriseCustomCustomCustomCustom
AuthorityPulumi pricing page, read Nov 5, 2026Pulumi pricing pagePulumi pricing pagePulumi pricing page
Pulumi Cloud pricing: Essentials $40 a month including 40 credits for up to 500 managed resources, and Pro $400 a month including 400 credits for up to 2,000 managed resources
Pulumi Cloud pricing: Essentials $40 a month including 40 credits for up to 500 managed resources, and Pro $400 a month including 400 credits for up to 2,000 managed resources

AWS CDK has no control-plane price at all. Amazon's own FAQ: there is no additional charge for AWS CDK; you pay for the AWS resources created using CDK as if you created them manually, with no minimum fees and no required upfront commitments. The cost of CDK is the AWS resources plus the operator time to run the pipelines, the state, and the drift checks yourself.

AWS CDK FAQ: there is no additional charge for AWS CDK; you pay for the AWS resources created using it, with no minimum fees and no required upfront commitments
AWS CDK FAQ: there is no additional charge for AWS CDK; you pay for the AWS resources created using it, with no minimum fees and no required upfront commitments

The worked math: the same estate on all three meters

Pulumi's meter is $0.00025 per resource-hour, which is $0.1825 per resource per month over a 730-hour month; HCP Terraform Essentials is $0.10. The comparison, at list prices, before any included credits:

HCP Essentials monthly=resources×$0.10\text{HCP Essentials monthly} = \text{resources} \times \$0.10
Pulumi meter monthly=resources×730×$0.00025=resources×$0.1825\text{Pulumi meter monthly} = \text{resources} \times 730 \times \$0.00025 = \text{resources} \times \$0.1825
ResourcesHCP EssentialsHCP StandardHCP PremiumPulumi meter (gross)AWS CDK
500$50 ($0 on Free)$235$495$91.25$0
1,000$100$470$990$182.50$0
5,000$500$2,350$4,950$912.50$0
20,000$2,000$9,400$19,800$3,650.00$0
AuthorityHashiCorp pricing pageHashiCorp pricing pageHashiCorp pricing pagePulumi pricing pageAWS CDK FAQ

Pulumi's included credits change the net bill. Essentials includes $40 of credits, Pro includes $400. The net monthly bill is the edition fee plus any usage above the included pool:

Pulumi net=edition fee+max⁡(0,gross meter−included credits)\text{Pulumi net} = \text{edition fee} + \max(0, \text{gross meter} - \text{included credits})

At 1,000 resources on Essentials: $40 plus $182.50 minus $40, which is $182.50 all-in. At 2,000 resources on Pro: the gross meter is $365.00, inside the $400 included pool, so the bill is $400 flat. At 5,000 resources on Pro: $400 plus $912.50 minus $400, which is $912.50 all-in. At 20,000 resources on Pro: $400 plus $3,650.00 minus $400, which is $3,650.00 all-in. The three-year totals at 5,000 resources are $18,000 on HCP Essentials, $32,850 on Pulumi Pro, and $0 on CDK before operator time — a $14,850 gap between the two managed planes, and the entire gap is the meter, not the features.

At each plan's stated ceiling: Pulumi Essentials is $40 for up to 500 resources, or $0.08 per resource per month; Pulumi Pro is $400 for up to 2,000, or $0.20; HCP Essentials is a flat $0.10 at any count. Below 500 resources, HCP's Free tier and CDK both cost $0 on the control plane, and the decision is about features, not price.

State, drift, and governance: what the tiers actually buy

Price is only half the comparison. The three platforms differ in where state lives, who watches for drift, and which tier unlocks policy enforcement:

CapabilityHCP TerraformPulumi CloudAWS CDK
State storageManaged in HCP, all tiersManaged in Pulumi Cloud, all tiersSelf-managed (S3 + DynamoDB, or local)
Drift detectionStandard tier and abovePro edition and aboveNone managed; cdk diff by hand
Policy as codeSentinel / OPA, Standard and aboveCrossGuard, Pro and aboveNone built in; use CDK Aspects or OPA yourself
LanguageHCLTypeScript, Python, Go, .NET, Java, YAMLTypeScript, Python, Java, .NET, Go
Cloud scopeMulti-cloudMulti-cloudAWS only
Engine licenseBusiness Source License 1.1Apache-2.0Apache-2.0
AuthorityHashiCorp pricing pagePulumi pricing pageAWS CDK FAQ

The governance gap is the real reason teams land on Standard or Pro instead of the entry tier. Drift detection and policy enforcement stop a 2 AM manual console change from silently diverging from state, and both vendors gate them above the cheapest paid tier. A team that buys Essentials for the $0.10 rate and then needs drift detection pays the Standard rate — $0.47 per resource, a 4.7x jump — and that jump belongs in the budget from day one. The Docker vs Kubernetes vs Amazon ECS container deployment pricing guide prices the workloads these tools provision, and the headless WordPress vs Next.js decoupling guide covers the architecture the IaC stack deploys.

The traps: peak hours, declared resources, and the operator tax

Three traps erase the savings. First, HCP Terraform bills the peak resource count in each hour, so a bad pipeline that creates 500 throwaway resources at 2 PM inflates that hour's bill even after the resources are destroyed — ephemeral environments are billable while they exist. Second, Pulumi's meter runs on declared resources in every program, so a stack that declares resources it never provisions still consumes credits. Third, CDK's $0 control-plane price is not a $0 total cost: the state store, the CI pipeline, the drift checks, and the on-call for a broken deploy are operator hours, and at 20,000 resources those hours cost more than either managed plane.

The operator tax is the honest counterweight to CDK's $0. A self-managed Terraform or CDK setup needs a state backend, locking, a runner, and someone who owns the pipeline on a Saturday night. At small scale that is an afternoon of setup. At 20,000 resources across ten environments it is a part-time job, and the managed planes exist precisely to buy that job back. The correct comparison is never $0 versus $2,000; it is $0 plus operator hours versus $2,000 with the operations included.

The decision table

Team shapeResourcesBest fitMonthly control-plane costAuthority
Solo dev, one AWS accountUnder 500HCP Free or CDK$0HashiCorp / AWS CDK FAQ
Small team, multi-cloud, HCL shop500–1,000HCP Essentials$50–$100HashiCorp pricing page
Small team, TypeScript shop500–1,000Pulumi Essentials$91.25–$182.50Pulumi pricing page
Growing team needing drift detection2,000Pulumi Pro$400Pulumi pricing page
Growing team needing drift detection2,000HCP Standard$940HashiCorp pricing page
Enterprise, strict governance20,000HCP Premium$19,800HashiCorp pricing page
AWS-only, strong platform teamAnyAWS CDK$0 + operator timeAWS CDK FAQ

Who should NOT pick each tool

Do not pick HCP Terraform if your resource count is dominated by short-lived ephemeral environments — the peak-hour meter punishes exactly that pattern, and CDK or a self-managed backend will be cheaper. Do not pick Pulumi if your team writes HCL and has no appetite for a general-purpose language; the productivity gain of TypeScript is real, but a forced language migration is a quarter of lost velocity. Do not pick AWS CDK if you run more than one cloud — it provisions AWS only, and a second cloud means a second tool. Do not pick any managed plane if you manage fewer than 500 resources and need nothing beyond state and runs: the Free tiers and CDK both cost $0, and the decision should be about language and workflow, not price. The Cloudflare Workers vs Vercel edge functions guide covers the serverless layer these tools often deploy, and the pricing calculator runs the per-resource math on your own estate before you commit.

The execution checklist

  • [x] Step 1: Count the estate. List every resource in state across every environment, including security group rules and IAM policies. The count, not the team size, decides the bill.
  • [x] Step 2: Run the meter. Multiply the count by $0.10 for HCP Essentials, by $0.1825 for the Pulumi meter, and by $0 for CDK. Write all three numbers down.
  • [x] Step 3: Price the tier you actually need. If you need drift detection or policy enforcement, price HCP Standard or Pulumi Pro, not the entry tier — the jump is 4.7x on HCP.
  • [x] Step 4: Apply the included pools. Subtract Pulumi's included credits ($40 on Essentials, $400 on Pro) and HCP's 500-resource Free allowance before comparing.
  • [x] Step 5: Audit ephemeral environments. Count how many resources exist for less than a day each week; on HCP's peak-hour meter they still bill for the hours they exist.
  • [x] Step 6: Budget the operator tax. If CDK wins on price, write down who owns the state backend, the runner, and the Saturday-night deploy before choosing it.
  • [x] Step 7: Re-count quarterly. Resource counts grow with every service. Re-run this checklist every quarter; a 5,000-resource estate becomes a 20,000-resource estate in a year of growth.
The cheapest migration is the one you do before the estate grows: moving 500 resources between control planes is an afternoon, moving 20,000 is a project. Pick the tool for the estate you will have in two years, not the one you have today — and re-read the pricing page before you sign.

Pipelines need somewhere to run — the CI/CD pricing playbook prices the three CI vendors by the minute.

The DNS layer under those control planes is priced in the Cloudflare DNS vs Route 53 vs Google Cloud DNS pricing guide.