This project demonstrates a modern DevOps workflow where infrastructure is provisioned on AWS using Terraform and application delivery is automated through CI/CD pipelines.
Every push to the main branch automatically:
- Builds a Docker image
- Pushes the image to Amazon ECR
- Makes the latest container available for deployment on AWS EC2
- ☁️ AWS EC2 (Ubuntu)
- 🐳 Docker
- 🏗️ Terraform
- ⚙️ GitHub Actions
- 📦 Amazon ECR
- 🔐 IAM Roles
- 🖥️ AWS Systems Manager (SSM)
- Python (Flask)
- Docker
- Terraform
- GitHub Actions
- AWS EC2
- AWS ECR
- AWS IAM
- AWS SSM
GitHub Push
↓
GitHub Actions Pipeline
↓
Docker Image Build
↓
Push to Amazon ECR
↓
EC2 pulls latest container
docker build -t cloud-app .Application available at:
http://localhost:5001terraform initterraform applyTerraform provisions:
- EC2 Instance
- Security Group
- IAM Role
- IAM Instance Profile
- SSM permissions
- ECR access permissions
During development, this project involved troubleshooting and solving real-world cloud issues such as:
- SSH authentication failures
- Docker permission problems
- IAM policy configuration
- ECR authentication
- EC2 runtime setup
- AWS Systems Manager (SSM) access
- ✔ Terraform infrastructure provisioning
- ✔ Docker containerization
- ✔ CI/CD pipeline automation
- ✔ Amazon ECR integration
- ✔ AWS EC2 deployment
- ✔ Flask application running in the cloud
- Infrastructure as Code (IaC)
- Docker container workflows
- AWS cloud provisioning
- IAM roles & permissions
- CI/CD automation
- Cloud debugging & troubleshooting
- Real-world DevOps practices