AWS Cloud Development Kit
The AWS Cloud Development Kit (AWS CDK) is an open-source[1] software development framework developed by Amazon Web Services (AWS) for defining and provisioning cloud infrastructure resources using familiar programming languages.[2] The AWS CDK aims to improve the experience of working with Infrastructure as Code by providing higher-level, reusable constructs that enable developers to create and manage AWS resources more efficiently and with less boilerplate code compared to traditional configuration files like AWS CloudFormation templates.[3]
Developer(s) | Amazon Web Services |
---|---|
Operating system | Cross-platform |
Type | Cloud computing, Infrastructure as Code |
License | Apache License 2.0 |
Website | aws |
Overview
AWS CDK[4] allows developers to model and provision cloud infrastructure resources using programming languages such as TypeScript, JavaScript, Python, Java, and C#.[5][6] Developers can define their infrastructure using the same programming languages and tools they use for their application code, enabling better integration between application and infrastructure development processes.[7]
AWS CDK includes a library of constructs,[8] which are pre-built components that encapsulate one or more AWS resources and their configurations.[9] Constructs can be used to build higher-level abstractions known as patterns, which simplify common cloud infrastructure patterns and best practices. The AWS Construct Library provides a collection of constructs for various AWS services, such as Amazon S3, Amazon EC2, and AWS Lambda.[10]
Key features
- Familiar programming languages: AWS CDK supports TypeScript, JavaScript, Python, Java, and C#, allowing developers to use their preferred programming languages for defining cloud infrastructure.
- Reusable constructs: AWS CDK includes a library of constructs that encapsulate AWS resources, their configurations, and best practices, promoting reusability and reducing boilerplate code.
- Higher-level abstractions: Developers can use constructs[11] to create custom, higher-level abstractions, known as patterns, to simplify complex infrastructure patterns and improve maintainability.
- Integration with AWS CloudFormation: AWS CDK applications are compiled into AWS CloudFormation templates, ensuring compatibility with existing AWS CloudFormation features and tools.[12]
- Modularity and extensibility: AWS CDK promotes modularity and extensibility by allowing developers to create and share custom constructs and patterns.
Release history
- 2018: AWS CDK was announced as a developer preview at the AWS Summit in New York on July 17, 2018, offering an early version of the framework for developers to test and provide feedback.[13]
- 2019: AWS CDK reached general availability (GA) on July 11, 2019, with support for TypeScript and Python as the initial programming languages.[14]
- 2019: Support for Java and C# was added to AWS CDK on November 25, 2019, broadening the range of programming languages available for defining and provisioning cloud infrastructure resources.[15]
- 2021: AWS CDK v2 is released and consolidates the AWS Construct Library into a single package called aws-cdk-lib, streamlining usage and updates, ensuring stable APIs, and offering developer productivity improvements such as CDK Watch, a refreshed API Reference, and a new assertions library for automated unit testing in all CDK-supported languages.[16]
Launching CDK
To get started with AWS CDK, developers need to install the AWS CDK Toolkit, which provides a command-line interface (CLI) for creating and managing AWS CDK projects.[17] The CLI can be installed using the Node.js package manager (npm) or any compatible package manager. Once the AWS CDK Toolkit is installed, developers can create a new AWS CDK project, define their infrastructure using constructs, and deploy the resulting AWS CloudFormation stack to their AWS account.
Example code
The following is AWS CDK code written in TypeScript that creates an Amazon S3 bucket with public read access. This code imports the necessary AWS CDK libraries to create a new CloudFormation stack with a single Amazon S3 bucket resource. The Bucket constructor is used to create the bucket with the specified properties, including encryption, block public access, public read access, and versioning. The removal policy property specifies that the bucket should be destroyed when the stack is deleted.
import { Construct, Stack, StackProps } from 'aws-cdk-lib';
import { Bucket } from 'aws-cdk-lib/aws-s3';
import { BucketEncryption } from 'aws-cdk-lib/aws-s3';
import { BlockPublicAccess } from 'aws-cdk-lib/aws-s3';
export class MyStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
const myBucket = new Bucket(this, 'MyBucket', {
encryption: BucketEncryption.S3_MANAGED,
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
publicReadAccess: true,
removalPolicy: RemovalPolicy.DESTROY,
versioned: true
});
}
}
References
- Kocher, Laveesh (2021-12-13). "AWS Announces The Release AWS Cloud Development kit". Open Source For You. Retrieved 2023-03-19.
- "AWS Cloud Development Kit (CDK)". Amazon Web Services, Inc. Retrieved 2023-03-19.
- "AWS Cloud Development Kit (AWS CDK) User Guide". Amazon Web Services, Inc. Retrieved 2023-03-19.
- Steenman, Danny (2022-07-23). "What is the AWS CDK? (A beginners guide)". Towards the Cloud. Retrieved 2023-09-23.
- "AWS Cloud Development Kit (CDK) FAQs". Amazon Web Services, Inc. Retrieved 2023-03-19.
- Ramel, David. "AWS Adds .NET, Java Support in Cloud Development Kit".
- "What's so Cool About AWS CDK?". www.beyondjava.net. Retrieved 2023-03-19.
- "An Introduction To AWS Cloud Development Kit (CDK)". Smashing Magazine. 2022-03-10. Retrieved 2023-03-19.
- "Working with Constructs". Amazon Web Services, Inc. Retrieved 2023-03-19.
- "AWS Construct Library". Amazon Web Services, Inc. Retrieved 2023-03-19.
- Steenman, Danny (2022-05-03). "How to create an AWS CDK Construct". Towards the Cloud. Retrieved 2023-09-23.
- "AWS Cloud Development Kit (CDK) FAQs". Amazon Web Services, Inc. Retrieved 2023-03-19.
- "AWS CDK Developer Preview | AWS Developer Tools Blog". aws.amazon.com. 2018-08-27. Retrieved 2023-03-19.
- Werner Vogels (2019-07-11). "AWS Cloud Development Kit (CDK) – TypeScript and Python are Now Generally Available". Amazon Web Services, Inc. Retrieved 2023-03-19.
- "AWS Cloud Development Kit (CDK) – Java and .NET are Now Generally Available | AWS News Blog". aws.amazon.com. 2019-11-25. Retrieved 2023-03-19.
- "AWS Cloud Development Kit (AWS CDK) v2 is now generally available". Amazon Web Services, Inc. Retrieved 2023-03-19.
- "AWS CDK Toolkit". Amazon Web Services, Inc. Retrieved 2023-03-19.