Convert Terraform to AWS CDK
For teams moving entirely off Terraform to CloudFormation
cdk deployterraform applyRequires CloudFormation for account factory
Landing Zone Accelerator built on CloudFormation
Native CloudFormation integration
CloudFormation compliance requirements
import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';
export class InfrastructureStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string) {
    super(scope, id);
    const dataBucket = new s3.Bucket(this, 'DataBucket', {
      bucketName: 'my-data-bucket',
      versioned: true,
      tags: {
        Environment: 'production',
      },
    });
  }
}
        resource "aws_s3_bucket" "data" {
  bucket = "my-data-bucket"
  tags = {
    Environment = "production"
  }
}
resource "aws_s3_bucket_versioning" "data" {
  bucket = aws_s3_bucket.data.id
  versioning_configuration {
    status = "Enabled"
  }
}
        # Convert to TypeScript CDK
tf2cdk convert ./terraform --output ./cdk-app --language typescript
# Convert to Python CDK
tf2cdk convert ./terraform --output ./cdk-app --language python
# Preview without writing files
tf2cdk convert ./terraform --output ./cdk-app --dry-run
# Generate import commands for existing resources
tf2cdk import-plan ./terraform --statefile terraform.tfstate
    Full documentation, migration guides, and troubleshooting available on GitHub.
If tf2cdk saves you weeks of migration work, consider sponsoring development.