explaingit

aws/aws-cdk

12,771TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Framework that lets developers define AWS cloud infrastructure using TypeScript, Python, Java.NET, or Go code, which then compiles into AWS CloudFormation templates for deployment.

Mindmap

mindmap
  root((repo))
    What it does
      Define cloud infra
      Generate CF templates
      Deploy to AWS
    Languages
      TypeScript
      Python
      Java
      Go
    Key concepts
      Constructs
      Stacks
      CDK App
    CLI workflow
      cdk synth
      cdk diff
      cdk deploy
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Define an entire AWS application's servers, queues, and databases in code instead of YAML templates

USE CASE 2

Preview exactly what will change in your cloud before running a deployment

USE CASE 3

Package reusable cloud components as constructs and share them across projects

USE CASE 4

Deploy multi-service AWS applications with a single CLI command

Tech stack

TypeScriptPythonJava.NETGoAWS CloudFormation

Getting it running

Difficulty · moderate Time to first run · 30min

Requires an AWS account and AWS CLI configured with credentials before running cdk deploy.

Open source under Apache 2.0, use, modify, and distribute freely for any purpose, including commercial products.

In plain English

The AWS Cloud Development Kit (AWS CDK) is a framework that lets developers describe cloud infrastructure using regular programming languages instead of configuration files. Rather than writing long YAML or JSON templates by hand, you write code in TypeScript, Python, Java.NET, or Go that describes which cloud resources you want, and the CDK converts that code into the underlying configuration AWS needs to create them. The core idea is that your infrastructure lives in the same codebase as your application. You group related resources into units called constructs (for example, a queue connected to a notification topic), then combine constructs into stacks, and stacks into a full CDK app. The CDK provides a library of ready-made constructs for every major AWS service so you can wire things together quickly rather than specifying every configuration detail yourself. A command-line tool (the CDK CLI) does the actual work of converting your code into AWS CloudFormation templates, deploying them to your AWS account, and showing you a diff of what will change before you apply anything. The workflow is: write code, run "cdk synth" to see the generated template, run "cdk diff" to compare against what is already deployed, and run "cdk deploy" to push the changes. The project is open source and maintained by AWS. Community contributions are accepted via pull requests. AWS also collects anonymous usage metrics by default, though this can be turned off by following the instructions in their developer guide.

Copy-paste prompts

Prompt 1
Using the AWS CDK in TypeScript, write a construct that creates an SQS queue connected to an SNS topic and grants a Lambda function permission to consume from it.
Prompt 2
I have an existing CloudFormation stack. Show me how to import it into a new AWS CDK app so I can manage it as code going forward.
Prompt 3
Write a CDK stack in Python that deploys a containerized FastAPI app to ECS Fargate behind an Application Load Balancer with HTTPS.
Prompt 4
Using aws-cdk, create a construct that sets up an S3 bucket with versioning, lifecycle rules to move objects to Glacier after 90 days, and a CloudFront distribution in front of it.
Prompt 5
Show me how to run cdk diff to compare my local CDK stack against what is already deployed, then only deploy the changed resources.
Open on GitHub → Explain another repo

← aws on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.