- Create AWS account and configure AWS CLI
- Create S3 bucket for terraform state
- Create domain manually
- Set bin/shared/[env].conf with variables required
Run terraform commands:
./terraform/bin/apply.sh [env] [region] [state]
For the first run, this is the dependency sequence.
- network
- app
- ECS base app
- Multiple environment and region ready
- Multiple-state setup
- No CI/CD
- No autoscaling
- No monitoring
- Nothing fancy
- Use terraform modules more extensively, remove LB from ECS module. Externalize when needed.
- Remove dependency on 3rd party vpc module.
- Add declarative CI/CD pipeline.
- Move to terraform cloud for state management.
- Add terratest.
- Split db state. Add ability to run from snapshot.
- Add monitoring and alerting with CW.
- Add autoscaling.
- Move DB to Aurora.
- Externalize secrets to KMS.