This project demonstrates the design and deployment of a production-style AWS 3-tier architecture using Terraform Infrastructure as Code (IaC).
The infrastructure includes a custom VPC, public and private subnets, Internet Gateway, Security Groups, EC2 web server, Amazon RDS MySQL database, CloudWatch monitoring, and SNS alerting.
Users ↓ Internet Gateway ↓ Public Subnet ↓ EC2 (Ubuntu + Nginx) ↓ Private Subnet ↓ Amazon RDS MySQL
Monitoring Layer: CloudWatch → SNS → Email Alerts
- AWS
- Terraform
- EC2
- VPC
- RDS MySQL
- CloudWatch
- SNS
- Linux (Ubuntu)
- Nginx
- Git & GitHub
- Custom VPC Deployment
- Public and Private Subnets
- Internet Gateway Configuration
- Route Table Management
- Security Group Configuration
- EC2 Web Server Deployment
- Nginx Installation
- Amazon RDS MySQL Deployment
- CloudWatch Monitoring
- SNS Alerting
- Infrastructure as Code using Terraform Modules
aws-3tier-terraform-project/
├── provider.tf
├── variables.tf
├── outputs.tf
├── terraform.tfvars
├── main.tf
└── modules/
├── vpc/
├── security-group/
├── ec2/
├── rds/
└── monitoring/
- Custom VPC
- Public Subnets
- Private Subnets
- Internet Gateway
- Route Tables
- EC2 Ubuntu Server
- Nginx Web Server
- Amazon RDS MySQL
- Private Subnet Deployment
- CloudWatch Alarm
- SNS Notifications
Initialize Terraform:
terraform init
Validate Configuration:
terraform validate
Preview Changes:
terraform plan
Apply Infrastructure:
terraform apply
Destroy Infrastructure:
terraform destroy
- RDS deployed in private subnets
- Security Groups configured with least privilege
- SSH access restricted using CIDR ranges
- Infrastructure managed using Terraform
- AWS Networking Fundamentals
- Infrastructure as Code (IaC)
- Terraform Modules
- Cloud Security Concepts
- EC2 Deployment
- RDS Database Management
- Monitoring & Alerting
- AWS Architecture Design
Dharmik Patel
GitHub: https://github.com/dhar-mik200