A production-style cloud application built using Flask, Docker, and AWS services including EC2, Application Load Balancer (ALB), Auto Scaling, and CloudWatch.
Flow:
User → ALB → Auto Scaling Group (EC2 Instances) → Docker → Flask App
- Load Balancer distributes incoming traffic
- Auto Scaling dynamically launches/terminates EC2 instances
- Docker ensures consistent deployment
- CloudWatch monitors system performance
- Python (Flask)
- Docker
- AWS EC2
- AWS Application Load Balancer (ALB)
- AWS Auto Scaling Group (ASG)
- AWS CloudWatch
- ✅ Containerized Flask application
- ✅ Load-balanced traffic distribution
- ✅ Auto Scaling for high availability
- ✅ Multi-AZ deployment
- ✅ Real-time monitoring with CloudWatch
👉 http://flask-alb-1121615369.ap-south-1.elb.amazonaws.com/
- Shows number of incoming requests handled by ALB
- Demonstrates low-latency response under load
- Displays Output EC2 DNS
git clone https://github.com/shripatil70/cloud-native-webapp.git
cd cloud-native-webappdocker build -t flask-app .docker run -p 5000:5000 flask-apphttp://localhost:5000- Launch EC2 instance
- Install Docker & Git
- Clone repo and run container
- Create Application Load Balancer
- Create Target Group
- Configure Auto Scaling Group
- Attach ALB to ASG
- Monitor using CloudWatch
- ⚡ Achieved ~0.1s response time using ALB routing
- 🔄 Enabled automatic scaling based on demand
- 🟢 Maintained high availability using multi-instance architecture
- 📊 Implemented real-time monitoring using CloudWatch
- Add CI/CD using AWS CodePipeline
- Add HTTPS (SSL via ACM)
- Integrate custom domain (Route 53)
- Push Docker image to Docker Hub
Dhanashri Patil





