Zero to production-ready infrastructure using Terraform on AWS (Free Tier)
Setting up cloud infrastructure manually is:
- slow
- error-prone
- not reproducible
This project solves that by:
→ Defining infrastructure as code
→ Automating provisioning
→ Making deployments consistent and repeatable
- Provisions EC2 instance on AWS
- Configures security groups (SSH + HTTP)
- Automatically installs and runs Nginx
- Outputs public IP after deployment
- Runs Terraform plan via GitHub Actions (CI/CD)
- AWS (EC2, Security Groups)
- Terraform
- GitHub Actions (CI/CD)
- Linux (Ubuntu)
- Nginx
User
↓
Browser (HTTP)
↓
Public IP
↓
AWS Security Group (80 open)
↓
EC2 (Ubuntu)
↓
Nginx (auto-installed via user_data)
- Infrastructure as Code (Terraform)
- Automated provisioning (no manual SSH setup required)
- CI/CD pipeline for infrastructure validation
- Free-tier friendly setup
git clone https://github.com/ak3ph/infra-zero.git
cd infra-zero/terraformaws configureterraform init
terraform applyOpen in browser:
http://<output-public-ip>
On every push:
- Terraform init runs
- Terraform plan runs
- Infrastructure changes are validated automatically
- Uses AWS Free Tier (
t2.micro) - Public IP may change on recreation
- For production → use Elastic IP
- Terraform basics and resource lifecycle
- AWS EC2 provisioning
- Security group configuration
- Cloud-init & user_data automation
- CI/CD for infrastructure
- Debugging real-world infra issues
- Add Elastic IP (static IP)
- Add domain (Route53)
- Add HTTPS (Let's Encrypt)
- Add load balancer
- Modular Terraform structure