This is a demo project for showcasing how to use aws-cdk
to deploy a classic 3-tier web service with load-balancers, docker containers runnning application codes, and a relational database for persistant data.
We use AWS Elastic Load-balancer, AWS ECS Fargate for running Docker containers, and RDS Aurora for relational database.
Tier | Componenet | AWS Service |
---|---|---|
1 | Load-balancer | AWS ELB |
2 | Application Logic | AWS ECS Fargate |
3 | Database | AWS RDS Aurora |
This projects uses a simple express app with database connection for the application logic. You may need to replace the container image billykong/express-database-checker
with your own Docker image if you want to reuse the template.
The cdk.json
file tells the CDK Toolkit how to execute your app.
npm install -g aws-cdk
npm run build
compile typescript to jsnpm run watch
watch for changes and compilenpm run test
perform the jest unit testscdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk synth
emits the synthesized CloudFormation template
- We should install the same version of
aws-cdk
and other@aws-cdk/*
dependencies. It seems even minor version difference may be incompatible. - This project uses
v1.38.0
for@aws-cdk/*
and tested with[email protected]
.