/awesome-cdk

A collection of awesome things related to the AWS Cloud Development Kit (CDK)

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome CDK Awesome 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.

Contents

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

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

Monitoring

Workflows

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

Library Publishing

Tools

  • CDK-Dia - Automatic infrastructure diagrams for AWS CDK.

Training Materials and Sample Code

Blog Posts & Talks

  • 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

Contributing

Contributions welcome! Read the contribution guidelines first.