A 3 tier environment is a common setup. Use a tool of your choosing/familiarity create these resources. Please remember we will not be judged on the outcome but more focusing on the approach, style and reproducibility. How to deploy, prerequisites for this Assignment
This is an implementation of the classic three tier architecture for application hosting. AWS best practices are followed in this 3-tier infrastructure pattern, because it gives you multiple levels of security, scalability, high availability, and redundancy.
This should launch a basic 3-tier infrastructure following:
- VPC
- Private and public subnets
- An internet-facing ALB
- An autoscaling group of Ec2 instances in private subnets
- An RDS cluster in private subnets and all other resources defined in userdata.sh
Setup:
- Install Terraform
- Setup your credentials via [AWS Provider] and access keys credentials(https://www.terraform.io/docs/providers/aws/index.html#access_key)
- Clone this project
Run commands to deploy:
export env=dev (or prod)
terraform get -update=true
terraform init
terraform plan
terraform apply -var-file=config/${env}.tfvars -var password=<db password>
## From security perspective password should be given as input value
There are two example configuration files in the config/
folder. Each contains inputs for the main terraform module to run.
- dev: for development environment settings
- uat: for uat like environment settings