- Terraform
- AWS Cli
- Git
- Docker
- jq
- Bash
Components
- Application load balancer to receive and distribute traffic through to app servers
- App are hosted in AWS ECS Fargate across two AZs in the same region
- Database layer using RDS Aurora Postgres with read replica across AZs
- App image is hosted in ECR
-
Add application repo as a submodule
-
Build a docker image for the app
-
Create ECR repository using AWS Cli
-
Push image to ECR
-
Provisioning Infrastructure in Terraform
- Networking
- Security Groups
- IAM roles
- Database
- Application Load Balancer
- ECS Fargate
-
Seed the database
-
Instructions on how to use the project
-
Better console output for user experience
Please make you the correct AWS credentials are configured before running the following commands.
# one command to spin up everything
make start
# Tear down
make destroy
- Refactor terraform components into modules for better reusability
- Create tests for terraform modules
- Migrate makefile logic to CI/CD pipeline
- Move state to a remote backend
- Map a domain to load balancer dns name in route53 & enable HTTPS for connection