CDK
Curated list of awesome AWS Cloud Development Kit (AWS CDK) open-source projects, guides, blogs and other resources.
The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework for defining cloud infrastructure in code.
Construct Libraries¶
This section includes code libraries in various programming languages which vend constructs that can be used in CDK apps.
APIs¶
- cdk-chalice - AWS CDK construct for AWS Chalice (Python Serverless Microframework for AWS).
- auto-cdk - Automatically generate api-gateway/lambda integrations with the filesystem (beta).
- crow-api - Create a serverless API with routes based on your file structure.
Databases¶
- aws-cdk-dynamodb-seeder - A simple CDK seeder for DynamoDB.
- cdk-tweet-sentiment - Identify sentiments in tweets and log them into an Amazon DynamoDB table.
- cdk-postgresql - AWS CDK Constructs for PostgreSQL.
- cdk-sqlserver-seeder - CDK construct that executes custom SQL scripts against SQL Server database.
Static Websites¶
- cdk-static-website - CDK component that creates a static website using S3, configures CloudFront (CDN) and maps a custom domain via Route53 (DNS).
- ness - CDK powered CLI tool for deploying static sites to your AWS account.
Security¶
- cdk-passwordless - Construct for having passwordless authentication using userpool.
- cdk-iam-generator - Construct to generate IAM Managed Policies and IAM Roles using JSON Configuration.
- c3 - Enables compliancy with privacy and security best practices.
- cdk-iam-floyd - IAM policy statement generator with fluent interface.
- k9-cdk - Construct to generate secure S3 bucket policies easily.
- cdk-cloudfront-authorization - CloudFront with Cognito authentication using Lambda@Edge.
- aws-firewall-factory - Deploy, update, and stage your WAFs while managing them centrally via FMS.
Ops¶
- cdk-instanceStopRule - CDK component which creates an instance with a CloudWatch rule to stop it at the end of the day.
- cdk-time-bomb - CDK Construct that implodes your AWS CDK Stack after a set amount of time.
Queue¶
- cdk-tweet-queue - Fills up an SQS queue with tweets from a tweeter search query.
- cdk-ses-template-mailer - Constructs to create AWS SES email templates + microservice to send templated emails with AWS SES.
- cdk-sqs-monitored - SQS Construct with dead letter queue and configured alarms.
CI/CD¶
- aws-delivlib - Synthesizes CI/CD pipelines for multi-language software delivery (used by the CDK itself).
- cdk-blue-green-container-deployment - Blue/Green container deployment with CodeDeploy.
Monitoring¶
- cdk-watchful - Automatic dashboards and alarms for CDK apps.
- aws-cdk-billing-alarm - Construct that sets up email alerts for exceeding an amount on your AWS bill.
- cdk-monitoring-constructs - Use high-level APIs to create monitoring for your AWS apps. Generates dashboards automatically.
Workflows¶
- cdk-pull-request-check - CDK component that automatically check pull requests.
- cdk-github-webhook - CDK component that provisions GitHub webhooks.
- cdk-codepipeline-slack - CDK component that provisions a #slack approval workflow.
- cdk-codecommit-backup - Backup CodeCommit repositories to S3.
- Alexa Deployment Pipeline - Construct which creates a CodePipeline to deploy Alexa Skills to Lambda and to the Developer console using AWS SAM and DeployToAlexa action.
- cdk-developer-tools-notifications - Slack / Microsoft Teams / Email notifications for developer tools: CodeCommit, CodeBuild, CodeDeploy, CodePipeline.
Multi-accounts setup¶
- aws-bootstrap-kit - Creates a multi-account set-up with AWS Organization, AWS SSO, DNS, and AWS CodePipeline.
- cdk-organizations - CDK constructs that helps to provision AWS Organization, Organizational Units (OU), Accounts and Policies.
High-Level Frameworks¶
- punchcard - TypeScript framework to unify infrastructure and runtime code for the CDK, so you can declare constructs and implement runtime logic within the context of one Node.js application.
- aws-cdk-pure - A toolkit to develop purely functional and high-order cloud components with AWS CDK.
- cdk-stepfunctions-patterns - A set of Step Functions high-level resiliency patterns.
- Orkestra - An event-driven alternative to Airflow built on the AWS CDK and Step Functions.
- SST - An open source framework for building serverless applications with CDK. It features a Live Lambda Development environment, to test and debug Lambda functions locally without having to redeploy them.
- Datajob - Build and deploy a serverless data pipeline or machine learning pipeline on AWS with no effort.
Scaffolding¶
- ReactJS + Cognito + CDK Starter - Starter project for ReactJS + Amazon Cognito + Amazon Amplify Framework with AWS CDK support.
- cra-template-aws-cdk - Create React App template using AWS CDK for out of the box, simple provisioning of serverless React apps.
- create-cdk-app - Create CDK apps from templates.
- awscdk-jsii-template - A GitHub template repository to generate a ready environment to build, test and publish your JSII construct lib for AWS CDK.
Language Support¶
- AWS-CDK-Kotlin-DSL - A Wrapper library of AWS CDK Java. CI automatically generates code and deploys it by daily.
- aws-cdk-maven-plugin - A plugin to define and deploy your AWS CDK applications using Java and Maven.
- aws-lambda-nodejs-webpack - Alternative Node.js lambda CDK construct, using webpack.
- aws-lambda-nodejs-esbuild - Alternative Node.js lambda CDK construct, using esbuild.
Library Publishing¶
- GitHub Action - GitHub Action for AWS CDK.
- jsii-publish - A Docker image and GitHub action to build and publish CDK constructs created via JSII.
Tools¶
- CDK-Dia - Automatic infrastructure diagrams for AWS CDK.
Training Materials and Sample Code¶
- Official CDK Examples - A set of example projects for the AWS CDK.
- CDK Serverless Workshop - A workshop that guides you through the process of creating and deploying CDK application.
- Build an App with AWS Cloud Development Kit course on egghead.io
- Infrastructure is Code with the AWS CDK - Recording of re:Invent 2018 session.
- GitHub Changelog Crawler - A fully fledged CDK app written by Nathan Peck which uses Fargate, API Gateway, Lambda, CloudFront, S3, ElastiCache, and Dynamodb.
- ECS with CI/CD - Demo of deploying ECS application using CDK.
- Example templates for aws cdk - Working TypeScript snippets from several AWS projects.
- Lambda packaging asset - CDK asset which builds lambda function and produces a ZIP file with dependencies.
- Open CDK Guide - Open source guide on CDK and best practices.
- Colorteller Example - Great example project using Fargate and Appmesh.
- CDK Patterns - An opensource collection of serverless architecture patterns built with CDK.
- Create a CI/CD pipeline using CodePipeline and CodeBuild - The cra-pipeline project on GitHub shows an AWS CodePipeline with AWS CodeBuild to deploy a static React application.
- React SPA with server-side rendering on AWS Lambda - The cra-serverless project is a serverless architecture to add pre-rendering to a React website created with create-react-app.
- Mini Tutorial: Setup AWS Lambda + ACM + API Gateway with AWS Cloud Development Kit - Deploy a functional public API that receives an HTML form (e.g. /contact_us.html) POST request and delivers its data to Pushover notification service.
- Example of REST API built with CDK - Source code that powers REST APIs at https://api.l3x.in/.
- dilbert-feed - A serverless application written in Go that allows you to enjoy Dilbert in your RSS feed reader without any ads.
- django-postgres-vue-gitlab-ecs - An example Django + Vue.js web app deployed with CDK using GitLab CI.
- nextjs-vercel-aws-cdk-example - A PostgreSQL (RDS), EventBridge (crons) and SNS (background jobs) example along with a Next.js application.
- Create and Publish CDK Constructs Using projen and jsii - A step-by-step guide with sample code to create a new CDK construct using projen and
jsii
and publish it to npm, Maven Central, PyPi and NuGet.
Blog Posts & Talks¶
- Introduction to how and why CDK - By Leo Lapworth.
- How to Build a CDK Construct Library - By Philipp Garbe.
- CDK All The Things: A Whirlwind Tour - By Kevin S Lin.
- AWS CDK Developer Preview Announcement - The first AWS CDK Developer Preview announced on on 27 August 2018.
- Contributing to the AWS Cloud Development Kit - By Mike Cowgill from Intuit.
- First look into AWS Cloud Development Kit - By Philipp Garbe.
- Boost your AWS Infrastructure with the CDK - SlideShare by Philipp Garbe.
- Getting started with AWS CDK for Amazon ECS - By Nathan Peck.
- AWS re:Invent 2018, best of show: CDK - Aller Media Tech Blog.
- AWS Cloud Development Kit introduction with Live Demos - AWS User Group Finland Meetup January 2019.
- AWS CDK — a glimpse into the future - By Nordcloud Engineering.
- AWS Infrastructure as Code with CDK - By Ross Rhodes.
- Callbacks with AWS Step Functions - By Ross Rhodes.
- Using the CDK for CodePipelines Setup - By Stefan Freitag.
- Using the CDK for AWS MSK Setup - By Stefan Freitag.
- Serverless Dotnet - E01: Intro to AWS CDK - By Jake Scott.
- GitHub repository - By Jake Scott.
- Infrastructure is Code with the AWS CDK - AWS Tech Talk Webinar.
- tecRacer Amazon AWS Blog - Several Blog Posts from aws-blog.de by Gernot Glawe.
- Using CDK to build a UDP NLB Logging Service - By ClouderDex.
- GitHub Repo - By ClouderDex.
- Purely Functional Cloud Components with AWS CDK - Bu fogfish.
- Using the CDK to probe multiple accounts (sfn/lambda/sqs/sechub) - Blog post from fudless.xyz.
- Scheduled Lambda Functions and CI/CD pipeline with AWS CDK - By Maarten Thoelen.
- GitHub Repo - By Maarten Thoelen.
- AWS Client VPN with mutual TLS - By Kirill Merkushev.
- CDK Step Functions - By Matt Morgan.
- Loading DynamoDB with Custom Resources - By Matt Morgan.
- Loading DynamoDB with Provider Framework - By Matt Morgan.
- German: React SPA und server-side rendering (SSR) mit AWS Lambda und CloudFront - By superluminar GmbH.
- Introducing AWS CDK with a real life Lambda and API gateway example - By Alexander Fortin.
- CloudWatch Dashboards as Code (the Right Way) Using AWS CDK - By Simon-Pierre Gingras.
- Coding the Jamstack missing parts: databases, crons & background jobs - By Vincent Voyer.
- AWS CDK Continuous Integration and Delivery Using Travis CI - By Thomas Poignant.
- Custom Resources with AWS CDK - By Roy Ben-Yosef.
- Recommended AWS CDK project structure for Python applications - By Alex Pulver.
Related Projects¶
- jsii - JavaScript interop interface, the technology that CDK uses to create language bindings (currently supports .NET, Java and Python).
- cdk8s - Define Kubernetes native apps and abstractions using object-oriented programming.
- cdktf - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform.
- cdktg - Agile Threat Modeling as Code.
Tips & Tricks¶
- Reflect on the CDK Type System - Explore the CDK's type system.
- Testing Your Construct Library CodeBuild Configuration Locally - With the
jsii/superchain:latest
Docker Image.
Contributing¶
Contributions welcome! Read the contribution guidelines first.