What it does
The AWS Cloud Development Kit is an infrastructure-as-code framework for defining AWS resources with programming-language constructs. A developer writes an application using the CDK library, synthesizes it into a deployment template, and deploys the resulting stack through the CDK Toolkit. The project supports TypeScript, JavaScript, Python, Java, C#, and Go. It belongs early in the delivery workflow: it expresses and provisions infrastructure, while a separate build or release pipeline can invoke it as part of deployment.
Treat infrastructure as versioned application code
A CDK project contains code that describes cloud resources rather than a sequence of console edits. The TypeScript guide requires Node.js, npm, the CDK Toolkit, TypeScript, and an AWS account with credentials for deployment. It shows creating an application with cdk init app --language typescript, adding constructs from aws-cdk-lib, building the project, and using CDK Toolkit commands to synthesize or deploy it. Those are illustrative documented steps; no stack was created or deployed for this listing.
For a small example, define a storage bucket as a construct in a TypeScript stack, review the synthesized template, and then deploy the stack into a chosen AWS environment. Reusable constructs let a team encode standard resource patterns alongside application code and review changes in version control. The CDK's role is the infrastructure definition and provisioning stage, not general-purpose CI orchestration.
Language and change-management choices
AWS publishes language libraries and templates, and the documentation explains both globally installed and project-pinned CLI workflows. Pinning the toolkit and library versions in the project helps keep local development and a CI environment aligned. Experimental construct modules carry a different risk: their APIs may change, so the guide recommends exact versions for those packages.
The AWS CDK project is open source under Apache License 2.0. Using the framework itself does not replace AWS account setup or the operational decisions about the resources a stack provisions. Teams should review the service-specific deployment requirements before provisioning resources.
Strengths
- Defines infrastructure with reusable constructs in multiple programming languages.
- Supports a code-review workflow for infrastructure definitions and reusable resource patterns.
- Offers an Apache-licensed framework and language-specific construct libraries.
Watch out for
- Deploying a stack requires AWS account credentials and familiarity with the AWS resources it provisions.
- Experimental construct modules can have APIs that change, so their versions need more careful pinning.
Best for
- AWS teams that want infrastructure definitions reviewed and versioned with application code
- Platform engineers creating reusable AWS resource patterns for multiple projects
- CI workflows that need to provision or update AWS infrastructure from a codebase
