Problem
I wanted to work with real cloud infrastructure without spending money or relying on simplified tutorials.
Most resources either skip real-world practices or depend on expensive managed services.
The goal was:
Build a production-style infrastructure setup on AWS, while staying within the Free Tier and still following best practices like Infrastructure as Code and CI/CD.
Architecture
Developer (git push)
↓
CI/CD pipeline
↓
Terraform apply
↓
AWS
├── EC2
├── S3
└── IAM
This setup ensures infrastructure is version-controlled, reproducible, and deployed consistently.
Tech Stack
- AWS (EC2, S3, IAM)
- Terraform
- GitHub Actions / GitLab CI
- Git
Key Decisions
Terraform over manual setup To ensure reproducibility and proper version control of infrastructure.
EC2 over serverless To understand infrastructure fundamentals instead of abstracted services.
Free Tier constraint To enforce cost awareness and efficient resource usage.
CI/CD from the beginning To align with real DevOps workflows instead of treating it as an afterthought.
Challenges
- Managing IAM roles and permissions correctly
- Debugging Terraform state issues
- Avoiding unintended AWS costs
- Handling secrets securely in CI/CD
- Understanding how infra changes affect running resources
Result
A working foundation for provisioning and managing AWS infrastructure using Terraform, with a clear path toward automated deployments.
The project is evolving into a reproducible, cost-aware setup that reflects real-world DevOps workflows and constraints.
Future Work
- Add monitoring and logging
- Introduce multi-environment setup
- Expand CI/CD pipeline
Links
- GitHub: infra-zero