All posts
AWS Architecture

Pulumi vs Terraform in 2026: Why We Pick Pulumi When It Isn't Only AWS (and CDK When It Is)

By

November 2, 2026

6 min read

Our rule is short: CDK when everything is on AWS, Pulumi over Terraform when it isn't. Pulumi gives you real languages, real tests and an engine you can call from code, and it can use any Terraform or OpenTofu provider, so the ecosystem comes with it. What Pulumi costs, where Terraform is still the better call, and how to move.

Pulumi
Terraform
Infrastructure as Code
AWS CDK
OpenTofu

We have built tooling on Pulumi and deploy our own AWS infrastructure with CDK. The pattern behind both choices is the same: infrastructure written in a real programming language, with types, functions, packages and tests, is easier to get right than infrastructure written in a configuration language. CDK does that for AWS. Pulumi does it for everything else.

Why Pulumi over Terraform

  • Real languages. TypeScript, Python, Go, .NET or Java, with loops, functions, classes and your editor's type checking, instead of HCL's count, for_each and string templates.

  • Real tests. Unit tests with mocked resources in the same test runner as the application, and integration tests that deploy a stack and check it.

  • The engine is a library. Pulumi's Automation API is "a programmatic interface for running Pulumi programs without the Pulumi CLI", available in every Pulumi language. Internal platforms, per-customer environments, and deployments behind your own API become ordinary code.

  • The ecosystem comes with it. `pulumi package add terraform-provider <name>` turns any Terraform or OpenTofu provider into a typed SDK, so leaving Terraform doesn't mean leaving its providers.

  • An open licence. The engine and SDKs are Apache 2.0, where Terraform has been under the Business Source License since August 2023.

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

What it costs

Option

Price (pulumi.com/pricing, November 2026)

Self-managed state (S3 or any object storage)

Free

Pulumi Cloud, Free

$0: one user, unlimited projects and stacks

Pulumi Cloud, Essentials

$40/month including 40 credits, up to 500 managed resources; $0.1825 per resource-month beyond

Pulumi Cloud, Pro

$400/month including 400 credits, up to 2,000 resources

Enterprise

By contract, from $0.5475 per resource-month

A small team can run Pulumi with state in an S3 bucket and pay nothing. Pulumi Cloud earns its price with a team: state locking and history, secrets, policy and a console, all without running anything.

When Terraform is still the better call

  • The team writes HCL well and doesn't write TypeScript or Python. A tool your team is fluent in beats a better tool it fights.

  • A large, stable estate already in Terraform. Migrating means importing every resource and proving nothing is replaced; do it when Terraform is in the way, not for its own sake.

  • You depend on HCP Terraform, Sentinel policies or a HashiCorp support contract.

  • You want HCL without the licence question: that is OpenTofu, not Pulumi.

And why not Pulumi on AWS

On AWS alone we still choose CDK. CloudFormation holds the state and rolls back failed deployments, AWS's higher-level constructs encode a lot of good defaults, and nothing else needs running or paying for. Pulumi on AWS is a perfectly good choice too; it is simply the second-best default when CDK is free and native.

Moving from Terraform

  1. Start new work in Pulumi rather than converting everything; the two can live side by side.

  2. Read Terraform outputs from Pulumi, or Pulumi outputs from Terraform, at the seams between them.

  3. Convert a module at a time with Pulumi's converter, then import the existing resources so nothing is recreated.

  4. Run a preview that shows no changes before switching a module's ownership. That empty diff is the whole test.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of November 2, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.