AWS Cloud Development Kit

Last updated
AWS Cloud Development Kit
Developer(s) Amazon Web Services
Operating system Cross-platform
Type Cloud computing, Infrastructure as Code
License Apache License 2.0
Website aws.amazon.com/cdk/

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]

Contents

Overview

AWS CDK [4] allows developers to model and provision cloud infrastructure resources using programming languages such as TypeScript, JavaScript, Python, Java, Go, 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

Release history

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';exportclassMyStackextendsStack{constructor(scope:Construct,id:string,props?:StackProps){super(scope,id,props);constmyBucket=newBucket(this,'MyBucket',{encryption:BucketEncryption.S3_MANAGED,blockPublicAccess:BlockPublicAccess.BLOCK_ALL,publicReadAccess:true,removalPolicy:RemovalPolicy.DESTROY,versioned:true});}}

See also

Related Research Articles

<span class="mw-page-title-main">Amazon Web Services</span> On-demand cloud computing company

Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered, pay-as-you-go basis. Clients will often use this in combination with autoscaling. These cloud computing web services provide various services related to networking, compute, storage, middleware, IoT and other processing capacity, as well as software tools via AWS server farms. This frees clients from managing, scaling, and patching hardware and operating systems. One of the foundational services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, with extremely high availability, which can be interacted with over the internet via REST APIs, a CLI or the AWS console. AWS's virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; Hard-disk(HDD)/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its e-commerce network. Amazon S3 can store any type of object, which allows uses like storage for Internet applications, backups, disaster recovery, data archives, data lakes for analytics, and hybrid cloud storage. AWS launched Amazon S3 in the United States on March 14, 2006, then in Europe in November 2007.

<span class="mw-page-title-main">Amazon Elastic Compute Cloud</span> Cloud computing platform

Amazon Elastic Compute Cloud (EC2) is a part of Amazon.com's cloud-computing platform, Amazon Web Services (AWS), that allows users to rent virtual computers on which to run their own computer applications. EC2 encourages scalable deployment of applications by providing a web service through which a user can boot an Amazon Machine Image (AMI) to configure a virtual machine, which Amazon calls an "instance", containing any software desired. A user can create, launch, and terminate server-instances as needed, paying by the second for active servers – hence the term "elastic". EC2 provides users with control over the geographical location of instances that allows for latency optimization and high levels of redundancy. In November 2010, Amazon switched its own retail website platform to EC2 and AWS.

Google App Engine is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. App Engine offers automatic scaling for web applications—as the number of requests increases for an application, App Engine automatically allocates more resources for the web application to handle the additional demand.

Eucalyptus is a paid and open-source computer software for building Amazon Web Services (AWS)-compatible private and hybrid cloud computing environments, originally developed by the company Eucalyptus Systems. Eucalyptus is an acronym for Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems. Eucalyptus enables pooling compute, storage, and network resources that can be dynamically scaled up or down as application workloads change. Mårten Mickos was the CEO of Eucalyptus. In September 2014, Eucalyptus was acquired by Hewlett-Packard and then maintained by DXC Technology. After DXC stopped developing the product in late 2017, AppScale Systems forked the code and started supporting Eucalyptus customers.

<span class="mw-page-title-main">AppScale</span> American cloud infrastructure software company

AppScale is a software company offering cloud infrastructure software and services to enterprises, government agencies, contractors, and third-party service providers. The company commercially supports one software product, AppScale ATS, a managed hybrid cloud infrastructure software platform that emulates the core AWS APIs. In 2019, the company ended commercial support for its open-source serverless computing platform AppScale GTS, but AppScale GTS source code remains freely available to the open-source community.

<span class="mw-page-title-main">Redis</span> Open-source in-memory key–value database

Redis is an open-source in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low-latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of the most popular databases overall. Redis is used in companies like Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu, Amazon and OpenAI.

<span class="mw-page-title-main">Elasticsearch</span> Search engine

Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license, while other parts fall under the proprietary (source-available) Elastic License. Official clients are available in Java, .NET (C#), PHP, Python, Ruby and many other languages. According to the DB-Engines ranking, Elasticsearch is the most popular enterprise search engine.

<span class="mw-page-title-main">Cloud9 IDE</span> Online integrated development environment

Cloud9 IDE is an Online IDE, published as open source from version 2.0, until version 3.0. It supports multiple programming languages, including C, C++, PHP, Ruby, Perl, Python, JavaScript with Node.js, and Go.

ZeroPC was a commercial webtop developed by ZeroDesktop, Inc. located in San Mateo, California. ZeroPC has been called a personal cloud OS. It mimicked the look, feel and functionality of the desktop environment of a real operating system. The software was launched in September 2011 through Disrupt SF 2011 event and recently selected to the finalist of SXSW 2012 in Innovative Web Technology category. ZeroPC is web-based and required a Java applet to operate bundled productivity tool Thinkfree. The web applications found on ZeroPC are built on Java in the back end. Features included drag-and-drop functionality, cloud dashboard and personal cloud storage meta services.

Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS), is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing, with most BaaS startups dating from 2011 or later. Some of the most popular service providers are AWS Amplify and Firebase.

AWS Elastic Beanstalk is an orchestration service offered by Amazon Web Services for deploying applications which orchestrates various AWS services, including EC2, S3, Simple Notification Service (SNS), CloudWatch, autoscaling, and Elastic Load Balancers. Elastic Beanstalk provides an additional layer of abstraction over the bare server and OS; users instead see a pre-built combination of OS and platform, such as "64bit Amazon Linux 2014.03 v1.1.0 running Ruby 2.0 (Puma)" or "64bit Debian jessie v2.0.7 running Python 3.4 ". Deployment requires a number of components to be defined: an 'application' as a logical container for the project, a 'version' which is a deployable build of the application executable, a 'configuration template' that contains configuration information for both the Beanstalk environment and for the product. Finally an 'environment' combines a 'version' with a 'configuration' and deploys them. Executables themselves are uploaded as archive files to S3 beforehand and the 'version' is just a pointer to this.

AWS CloudFormation is a service provided by Amazon Web Services (AWS) that enables users to model and manage infrastructure resources in an automated and secure manner. Using CloudFormation, developers can define and provision AWS infrastructure resources using a JSON or YAML formatted Infrastructure as Code (IaC) template. The service was released on February 25, 2011.

MinIO is a High-Performance Object Storage system released under GNU Affero General Public License v3.0. It is API compatible with the Amazon S3 cloud storage service. It is capable of working with unstructured data such as photos, videos, log files, backups, and container images with the maximum supported object size being 50TB.

This is a timeline of Amazon Web Services, which offers a suite of cloud computing services that make up an on-demand computing platform.

Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. "Serverless" is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, VMs, or physical servers. Serverless computing does not hold resources in volatile memory; computing is rather done in short bursts with the results persisted to storage. When an app is not in use, there are no computing resources allocated to the app. Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.

Apache MXNet is an open-source deep learning software framework that trains and deploys deep neural networks. It is scalable, allows fast model training, and supports a flexible programming model and multiple programming languages. The MXNet library is portable and can scale to multiple GPUs and machines. It was co-developed by Carlos Guestrin at the University of Washington.

AWS App Runner is a fully managed container application service offered by Amazon Web Services (AWS). Launched in May 2021, it is designed to simplify the process of building, deploying, and scaling containerized applications for developers. The service enables users to focus on writing code and developing features, without needing to manage the underlying infrastructure. It provides automatic scaling, load balancing, and security features, making it a suitable choice for deploying web applications and APIs. The service also simplifies MLOps.

Pulumi Corporation is a software company based in Seattle, Washington. Pulumi develops a open-source infrastructure-as-code software.

References

  1. Kocher, Laveesh (2021-12-13). "AWS Announces The Release AWS Cloud Development kit". Open Source For You. Retrieved 2023-03-19.
  2. "AWS Cloud Development Kit (CDK)". Amazon Web Services, Inc. Retrieved 2023-03-19.
  3. "AWS Cloud Development Kit (AWS CDK) User Guide". Amazon Web Services, Inc. Retrieved 2023-03-19.
  4. Steenman, Danny (2022-07-23). "What is the AWS CDK? (A beginners guide)". Towards the Cloud. Retrieved 2023-09-23.
  5. "AWS Cloud Development Kit (CDK) FAQs". Amazon Web Services, Inc. Retrieved 2023-03-19.
  6. Ramel, David. "AWS Adds .NET, Java Support in Cloud Development Kit".
  7. "What's so Cool About AWS CDK?". www.beyondjava.net. Retrieved 2023-03-19.
  8. "An Introduction To AWS Cloud Development Kit (CDK)". Smashing Magazine. 2022-03-10. Retrieved 2023-03-19.
  9. "Working with Constructs". Amazon Web Services, Inc. Retrieved 2023-03-19.
  10. "AWS Construct Library". Amazon Web Services, Inc. Retrieved 2023-03-19.
  11. Steenman, Danny (2022-05-03). "How to create an AWS CDK Construct". Towards the Cloud. Retrieved 2023-09-23.
  12. "AWS Cloud Development Kit (CDK) FAQs". Amazon Web Services, Inc. Retrieved 2023-03-19.
  13. "AWS CDK Developer Preview | AWS Developer Tools Blog". aws.amazon.com. 2018-08-27. Retrieved 2023-03-19.
  14. 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.
  15. "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.
  16. "AWS Cloud Development Kit (AWS CDK) v2 is now generally available". Amazon Web Services, Inc. Retrieved 2023-03-19.
  17. "AWS CDK Toolkit". Amazon Web Services, Inc. Retrieved 2023-03-19.