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 buildcompile typescript to jsnpm run watchwatch for changes and compilenpm run testperform the jest unit testscdk deploydeploy this stack to your default AWS account/regioncdk diffcompare deployed stack with current statecdk synthemits the synthesized CloudFormation template
- We should install the same version of
aws-cdkand other@aws-cdk/*dependencies. It seems even minor version difference may be incompatible. - This project uses
v1.38.0for@aws-cdk/*and tested withaws-cdk@1.38.0.