EC2 Instance पर Flask/FastAPI App Setup

इस ब्लॉग में हम सीखेंगे कि AWS EC2 instance पर Flask और FastAPI application कैसे setup करें, deploy करें और production-ready बनाएं।

🚀 EC2 Instance पर Flask/FastAPI App Setup (Step-by-Step Guide in Hindi)

जब आप Machine Learning Model या Web API को deploy करना चाहते हैं, तो AWS EC2 instance एक सबसे लोकप्रिय और flexible तरीका है। Flask और FastAPI दोनों lightweight Python frameworks हैं जो ML models को web API के रूप में serve करने के लिए perfect हैं।

🔹 EC2 Instance क्या है?

Amazon EC2 (Elastic Compute Cloud) एक virtual server है जिसे आप cloud पर application deploy, run और scale करने के लिए उपयोग कर सकते हैं। यह physical server की तरह काम करता है लेकिन इसे आप अपनी जरूरत के अनुसार customize कर सकते हैं।

🛠 Prerequisites

  • AWS Account
  • EC2 Key Pair (SSH access के लिए)
  • Python 3.x installed
  • Basic Flask/FastAPI app ready

⚡ Step 1: EC2 Instance Launch करना

  1. AWS Console में login करें और EC2 service select करें।
  2. Launch Instance पर click करें।
  3. Amazon Machine Image (Ubuntu 22.04 LTS recommend) चुनें।
  4. Instance type (t2.micro - free tier) select करें।
  5. Key pair generate करें (pem file save करें)।
  6. Security group में port 22 (SSH), 5000/8000 (Flask/FastAPI), 80 (HTTP) allow करें।
  7. Launch पर click करें।

⚡ Step 2: Instance से Connect करना

ssh -i your-key.pem ubuntu@your-ec2-public-ip
    

⚡ Step 3: Environment Setup

# System update करें
sudo apt update && sudo apt upgrade -y

# Python और pip install करें
sudo apt install python3 python3-pip -y

# Virtual environment setup करें
pip3 install virtualenv
virtualenv venv
source venv/bin/activate
    

⚡ Step 4: Flask/FastAPI App Deploy करना

अब अपना application code EC2 पर upload करें (scp या git clone से)।

# Flask app install और run
pip install flask
python app.py

# FastAPI app install और run
pip install fastapi uvicorn
uvicorn main:app --host 0.0.0.0 --port 8000
    

⚡ Step 5: Gunicorn + Nginx (Production Setup)

# Install gunicorn और nginx
pip install gunicorn
sudo apt install nginx -y

# Flask with gunicorn
gunicorn --bind 0.0.0.0:5000 app:app

# FastAPI with gunicorn + uvicorn workers
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8000
    

अब आप nginx को configure करके public IP पर अपने API को access कर सकते हैं।

📊 Flask vs FastAPI for ML Deployment

Feature Flask FastAPI
Speed Moderate High (ASGI-based)
Learning Curve Beginner Friendly Slightly Advanced
Best Use Case Small APIs High-performance ML APIs

🏆 निष्कर्ष

AWS EC2 पर Flask और FastAPI apps को deploy करना आसान है। Flask छोटे APIs और beginners के लिए ideal है, जबकि FastAPI high-performance और asynchronous applications के लिए बेहतर है। Gunicorn और Nginx के साथ यह setup production-ready हो जाता है।