Home Blog Introduction to AWS CDK
Back to Blog
DevOps

Introduction to AWS CDK

acretph_jeffy
Jeffy D. Lepatan
General Manager
September 18, 2026
Blog Image

The AWS Cloud Development Kit (AWS CDK) helps you manage cloud infrastructure using standard programming languages. It bridges the gap between your application code and the cloud resources it needs. This guide walks you through the basics of how CDK works, its benefits, and how to get started.

What is AWS CDK?

AWS CDK is an open source framework for building cloud resources. Instead of writing long, manual JSON or YAML templates, you use languages like TypeScript, Python, Java, or C#. CDK turns your code into CloudFormation templates, which AWS then uses to deploy your resources. You get the benefits of standard programming tools like loops and variables, backed by the reliability of CloudFormation.

Core Concepts

Constructs

A construct is a basic building block in CDK. It represents a single cloud component, such as an S3 bucket or a Lambda function. You can combine these to create higher level abstractions, which makes it easier to reuse configurations across your projects.

Stacks and Apps

  • App: The main container for your project. Think of it as your program entry point.
  • Stack: A collection of constructs that CDK turns into a single CloudFormation template. You can manage these stacks independently.

Supported Languages

You can use CDK with these languages:

  • TypeScript
  • JavaScript
  • Python
  • Java
  • C#

Pick the one your team is already using so you can easily integrate CDK into your existing code.

Why Use CDK?

  • Productivity: Write your infrastructure code using syntax you already know, with full IDE support.
  • Reusability: Package your constructs as libraries to share across your team.
  • Maintainability: Use standard tools like version control and code reviews for your infrastructure.
  • Scalability: Build complex architectures with code, reducing manual work and errors.
  • Better DevOps: Integrate CDK into your CI/CD pipelines to automate your deployments.

Getting Started

Prerequisites

  • An AWS account with the right permissions.
  • Node.js (for TypeScript/JavaScript) or the runtime for your chosen language.
  • AWS CLI installed and configured.
  • A basic understanding of how CloudFormation works.

Installation

1. Install the CDK CLI:

 

npm install -g aws-cdk

2. Check that it installed correctly:

 

cdk --version

3. Start a new project (using TypeScript as an example):

 

mkdir my-cdk-app && cd my-cdk-app

cdk init app --language=typescript

mkdir my-cdk-app && cd my-cdk-app

First Project

1. Define a Stack: In your project file (e.g., lib/my-cdk-app-stack.ts), add a simple S3 bucket:

```typescript

import * as cdk from 'aws-cdk-lib';

import { Bucket } from 'aws-cdk-lib/aws-s3';

export class MyCdkAppStack extends cdk.Stack {

constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {

super(scope, id, props);

new Bucket(this, 'DemoBucket', {

versioned: true,

removalPolicy: cdk.RemovalPolicy.DESTROY,

});

}

}

```

2. Synthesize: Run cdk synth to generate the template.

3. Deploy: Run cdk deploy to create the bucket in your account.

4. Verify: Check your AWS console to see the new bucket.

Best Practices

  • Keep Constructs Modular: Group resources logically so you can reuse them.
  • Use Context: Store environment values in cdk.json instead of hard-coding them.
  • Name Clearly: Use a naming convention that tells you exactly what the resource is for.
  • Test Often: Use the CDK assertions library to test your templates before you deploy.
  • Separate Environments: Create different stacks for development, testing, and production.

Common Issues

  • Over-complicating: Keep your abstractions simple. Don't make them so complex that you lose track of what is happening.
  • IAM Permissions: CDK might create permissive policies by default. Always review and tighten your IAM settings.
  • Version Mismatch: Ensure your runtime versions match what your project expects.
  • Skip Checks: Always run cdk synth to catch errors before deploying.
  • Hard-coding: Use built-in environment variables like cdk.Stack.of(this).account instead of hard-coding region or account IDs.

Summary

AWS CDK allows you to treat your infrastructure like application code. By using familiar languages, you can build, test, and deploy cloud resources more efficiently. If you follow these practices, you will find it much easier to maintain your infrastructure and automate your deployments.

Tags:
Devops
acretph_jeffy
Jeffy D. Lepatan
General Manager
Growing up in Cebu taught me the value of hard work, honesty, and earning people's trust. Those same values guide how I lead our Philippine team today. With my background in both systems administration and software development, I know exactly how much responsibility comes with building tools that businesses rely on. My goal is simple: to deliver software that works and to stand by our clients at every step. For me, success is about building long term relationships by staying transparent and always following through on our promises.

Table of Contents

AcretPhilippines Inc.
Bringing Japanese software development excellence to the Philippine market since 2019.

Acret Philippines Inc.

14th Floor Latitude Corporate Center

Cebu Business Park

Lahug, Cebu City

TEL: 032-344-3847

09:00 AM - 06:00 PM (PHT)

Head Office Acret Inc.

〒650-0011

601 Kenso Building, 2-13-3 Shimoyamate-dori

Chuo-ku Kobe-shi, Hyogo, Japan

TEL:+81 78-599-8511

10:00-17:00 JPT

© 2025 Acret Philippines Inc. All rights reserved.