- Install AWS CLI (configured with credentials)
- Add IAM permissions for new user account from root (good practice) - I gave Administrator access to my non root account
- Install Terraform
- your own AWS key pair
This project demonstrates Infrastructure as Code (IaC) best practices by deploying a scalable three-tier architecture on AWS using Terraform. It showcases modular design, security best practices, and proper resource management.
- Presentation Tier (Frontend): Web servers in public subnets that handle user requests
- Application Tier (Backend): Application servers in private subnets that process business logic
- Data Tier (Database): RDS MySQL database in private subnets for data storage
- Clone the repository
git clone https://github.com/wegoagain-dev/three-tier-architecture.git
cd three-tier-architecture- Initialise the repository
terraform init- Plan deployment
terraform plan- Apply configuration
terraform apply --auto-approve- Access outputs
terraform outputPlease allow up to 10 minutes for resources to be provisioned. Mostly due to the database 😑

When deleting terraform and creating new one - either change name of secretsmanager(new name) or force delete using below as it dont allow you to create it again due to policy
aws secretsmanager delete-secret --secret-id three-tier-rds-password --force-delete-without-recoveryEnsure to delete as this can be costly if you just keep resources running
terraform destroy --auto-approve- For ingress SSH for public IP never make this accessible from 0.0.0.0, always change it to your personal IP
I am looking to integrate the following next:
CI/CD pipeline integration
Container orchestration (ECS/EKS)
Monitoring stack (Prometheus/Grafana)