- Docker / ExpressJs / AWS SDK for JavaScript
- AWS S3
- AWS SQS
- AWS CloudWatch Logs
- AWS CodePipeline
- AWS CodeCommit
- AWS Elastic Container Registry (ECR)
- AWS EventBridge / EventBridge Rules / EventBus
- AWS Elastic Container Service (ECS)
- Clutser
- Service
- Task
- Service Connect
- AWS Cloud Map (or Namespaces)
- AWS Elastic Load Balancer (ELB)
To deploy nodejs express application using Docker engine and multiple AWS serivices.
- cloudformation/pg-database-template-06.yaml contains the cloudformation template for RDS Postgres DB that exports the credencials to SSM Parameters as well
- cloudformation/pipeline.template-02.yaml contains the cloudformation template for AWS CI/CD pipeline
- ts-express-app/server.js is the express app entry point
- Dockerfile contains all the commands to assemble an image
- buildspec.yml is collection of build commands and related settings, in YAML format, that CodeBuild uses to run a build
- Source code is stored in Github
- When source code is updated with new push event, the pipeline is triggered. Below are the list of different stages of pipeline.
- Build:
- AWS uses buildspec.yml file to build the image with the Dockerfile
- Push:
- Docker image is pushed to ECR Registry
- Deploy:
- Docker image is used to run a container in the ECS Service
- Build:
- Nodejs application is reachable with {LoadBalancerUrl} url that is shown in the Output tab of Cloudformation