Infrastructure•Mar 2026•3 min read

Pulumi vs AWS CDK

Infrastructure as real code. Both let you use TypeScript instead of YAML. One works everywhere. The other is AWS-only.

🧊Nice Pick

Pulumi

Pulumi works with AWS, GCP, Azure, Cloudflare, and 100+ providers. CDK is AWS-only (CDKTF exists for Terraform but it's separate). If you're multi-cloud or might be, Pulumi is the safer bet. Same DX, more flexibility.

Real Code, Finally

Both Pulumi and CDK let you define infrastructure in TypeScript, Python, Go, or other real languages. No more YAML. No more HCL. Loops, conditionals, type checking, refactoring — all the things you expect from programming.

This is a massive improvement over Terraform's HCL or CloudFormation's JSON/YAML.

Cloud Lock-in

AWS CDK generates CloudFormation templates. It's deeply integrated with AWS. If you're all-in on AWS and always will be, this is fine. The integration is tight and the constructs library is extensive.

Pulumi has providers for everything. AWS, GCP, Azure, Kubernetes, Cloudflare, Vercel, Datadog. One tool, one language, all clouds.

State Management

Pulumi manages state in their cloud service (free for individuals) or you can self-host it with S3+DynamoDB or their open-source backend.

CDK uses CloudFormation for state, which means you get CloudFormation's limitations: slow deployments, 500-resource stack limits, painful rollbacks.

Quick Comparison

FactorPulumiAWS CDK
Cloud Providers100+ (AWS, GCP, Azure...)AWS only
LanguagesTS, Python, Go, C#, JavaTS, Python, Java, C#, Go
AWS IntegrationGoodDeep (native)
Deployment SpeedDirect API callsCloudFormation (slower)
State ManagementPulumi Cloud or self-hostedCloudFormation
Construct LibraryGrowingExtensive (L2/L3)
TestingUnit + integrationUnit + snapshot

The Verdict

Use Pulumi if: You use multiple clouds, want faster deployments, or prefer not being locked into AWS.

Use AWS CDK if: You're all-in on AWS and want the deepest integration with AWS services and constructs.

Consider: Terraform is still the most widely used IaC tool. More hiring pool, more examples, more modules.

🧊
The Bottom Line
Pulumi wins

Pulumi works with AWS, GCP, Azure, Cloudflare, and 100+ providers. CDK is AWS-only (CDKTF exists for Terraform but it's separate). If you're multi-cloud or might be, Pulumi is the safer bet. Same DX, more flexibility.

Related Comparisons

Disagree? nice@nicepick.dev