Goodbye YAML, Hello AWS Cloud Development Kit

Today in AWS we have two native options for modeling our infrastructure as code. The AWS Cloud Development Kit is a relatively new (Summer 2019) option. The AWS CDK allows the use of a familiar programming language for defining infrastructure as code, provisioning services through AWS CloudFormation and creating reusable AWS constructs.

Why AWS Cloud Development Kit The AWS Cloud Development Kit is more than just a new toy or framework. The CDK gives us a new cloud native way of deploying and modeling services in AWS. Maybe you hate long YAML files or one some nice code completion for your favorite editor. Using the CDK we can model our infrastructure in JavaScript, TypeScript and Python! Java and C# are also available as developer preview. Using these languages gives our teams flexibility and allow us to create our own reusable constructs in our preferred language.

Components The AWS CDK is primarily composed of Apps, Stacks and Constructs. This talk will cover these basic components and setup of the CDK as well as some configuration options available.

Reusability The biggest draw to AWS CDK for an organization is the ability to define reusable AWS constructs. Want to standardize the way your organization defines serverless applications, containers or databases? AWS CDK allows you to define organizational constructs that can be packaged up as CDK constructs using your favorite programming languages.

Cons Not everything is perfect using the CDK. I’ll talk through some pain points such as multiple stacks, environments and awkward features.

Demo! I will demo deploying an active-active serverless api using DynamoDB global tables, AWS Lambda, API Gateway, AWS Certificate Manager and Route53 in Python. We will setup the cdk, bootstrap our environment and make our own reusable constructs.

About Ken Winner

Voxi

Ken Winner graduated from Ball State University with a degree in Computer Science. He has a background in cloud services ranging from AWS to Azure as well as desktop applications. He works at Voxi. Ken is an AWS Certified Solutions Architect - Professional.

Ken’s primary focus is on Serverless and IoT applications and architectures. He has cut his teeth on several serverless projects and a few Serverless framework plugins. Working all across “the stack”, Ken’s projects have included internal website monitoring, Cognito setup and integration, application migrations to serverless, and IoT event pipelines with Kinesis and Lambda.