AWS CDK
Amazon's Infrastructure as Code framework for defining AWS cloud resources using familiar programming languages.
AWS Cloud Development Kit (CDK) is an Infrastructure as Code framework by Amazon that lets you define AWS cloud resources using TypeScript, Python, Java, C#, and Go. It provides high-level constructs that encapsulate best practices and defaults, making it easier to build production-ready AWS infrastructure. CDK supports synthesis to CloudFormation templates, allowing use of existing AWS tooling. It includes a large library of construct libraries maintained by AWS and the community.
Features
Drift Detection
Detect and report manual changes outside of IaC
CloudFormation drift detection
Kubernetes-Native
Built on Kubernetes CRDs for native K8s experience
Not K8s-native, uses EKS construct library
Module/Package Registry
Reusable infrastructure components managed via registry
AWS CDK Construct Library, Construct Hub
Multi-Cloud Support
Provision infrastructure across AWS, Azure, GCP and others
AWS-focused, limited multi-cloud via custom resources
Policy as Code
Define and enforce infrastructure policies programmatically
AWS Config rules, Service Control Policies (separate)
Preview/Plan
Preview infrastructure changes before applying them
cdk diff and CloudFormation change sets
Programming Languages
Use general-purpose languages instead of DSL
TypeScript, Python, Java, C#, Go, .NET
Secret Management
Handle sensitive values like passwords and API keys
AWS Secrets Manager, Parameter Store integration
State Management
Track and manage infrastructure state over time
AWS CloudFormation state management
Team Collaboration
Multi-user support with RBAC and audit logs
AWS IAM, CloudFormation StackSets for multi-account