FastAPI অ্যাপ্লিকেশন ডেপ্লয়মেন্টের জন্য বিভিন্ন ক্লাউড প্ল্যাটফর্মে কাজ করা যায়। এখানে আমরা দেখব কিভাবে Heroku, AWS, এবং DigitalOcean এ FastAPI অ্যাপ্লিকেশন ডেপ্লয় করা যায়।
১. Heroku-তে FastAPI অ্যাপ্লিকেশন ডেপ্লয় করা
Heroku একটি জনপ্রিয় ক্লাউড প্ল্যাটফর্ম যা Python অ্যাপ্লিকেশন খুব সহজে হোস্ট করতে দেয়। Heroku-তে FastAPI অ্যাপ ডেপ্লয় করার জন্য নিচের ধাপগুলো অনুসরণ করুন।
Step 1: Heroku অ্যাকাউন্ট তৈরি করুন
Heroku-তে অ্যাকাউন্ট তৈরি করতে Heroku ওয়েবসাইটে যান এবং একটি অ্যাকাউন্ট তৈরি করুন।
Step 2: Heroku CLI ইনস্টল করুন
Heroku অ্যাপ্লিকেশন ডেপ্লয় করতে Heroku CLI (Command Line Interface) ইনস্টল করতে হবে। এটি ইনস্টল করতে নিচের কমান্ড ব্যবহার করুন:
macOS:
brew install heroku- Windows: Heroku CLI Download থেকে ডাউনলোড করুন।
Linux:
curl https://cli-assets.heroku.com/install.sh | sh
Step 3: FastAPI অ্যাপের জন্য Procfile তৈরি করুন
Heroku-তে FastAPI অ্যাপ্লিকেশন চালানোর জন্য একটি Procfile তৈরি করতে হবে। এই ফাইলটি বলে দেয় কিভাবে অ্যাপটি চালাতে হবে।
Procfile:
web: uvicorn main:app --host=0.0.0.0 --port=${PORT:-5000}
এখানে, main হলো আপনার Python ফাইলের নাম এবং app হলো FastAPI অ্যাপের অবজেক্ট।
Step 4: Git রেপোজিটরি তৈরি করা
Heroku অ্যাপ্লিকেশন গিটের মাধ্যমে ডেপ্লয় করা হয়, তাই আপনাকে গিট রেপোজিটরি তৈরি করতে হবে।
git init
git add .
git commit -m "initial commit"
Step 5: Heroku অ্যাপ তৈরি করা
Heroku-তে একটি অ্যাপ তৈরি করতে:
heroku create your-app-name
Step 6: অ্যাপ ডেপ্লয় করা
আপনার FastAPI অ্যাপ্লিকেশন ডেপ্লয় করতে:
git push heroku master
Step 7: অ্যাপ্লিকেশন রান করা
Heroku-তে আপনার অ্যাপ রান করার জন্য:
heroku open
এটি আপনার ব্রাউজারে অ্যাপ্লিকেশন খুলবে। আপনি heroku logs --tail কমান্ড দিয়ে অ্যাপের লগও দেখতে পারেন।
২. AWS-তে FastAPI অ্যাপ্লিকেশন ডেপ্লয় করা
AWS (Amazon Web Services) এ FastAPI অ্যাপ্লিকেশন ডেপ্লয় করার জন্য EC2 (Elastic Compute Cloud) ব্যবহার করা হয়। এখানে একটি সাধারিত পদ্ধতি দেখানো হলো।
Step 1: EC2 ইন্সট্যান্স তৈরি করা
- AWS Management Console-এ লগইন করুন।
- EC2 সার্ভিসে যান এবং একটি নতুন t2.micro ইন্সট্যান্স তৈরি করুন (এটি ফ্রি টিয়ারের অংশ)।
- Security Group সেট করুন যাতে HTTP (80) এবং SSH (22) পোর্ট খোলা থাকে।
- ইন্সট্যান্স তৈরি হয়ে গেলে, তার Public IP নোট করুন।
Step 2: EC2 ইন্সট্যান্সে লগইন করা
EC2 ইন্সট্যান্সে SSH দিয়ে লগইন করুন।
ssh -i "your-key.pem" ec2-user@your-ec2-ip
Step 3: সার্ভারে FastAPI ইনস্টল করা
EC2 ইন্সট্যান্সে Python, Uvicorn, এবং অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করুন।
sudo yum update -y
sudo yum install python3 -y
pip3 install fastapi uvicorn
Step 4: FastAPI অ্যাপ কোড আপলোড করা
SCP অথবা SFTP ব্যবহার করে আপনার FastAPI অ্যাপ্লিকেশন সার্ভারে আপলোড করুন।
Step 5: FastAPI অ্যাপ রান করা
আপনার অ্যাপ চালাতে:
uvicorn main:app --host=0.0.0.0 --port=80
এখন আপনার অ্যাপ http://your-ec2-ip থেকে অ্যাক্সেস করা যাবে।
Step 6: Nginx বা Gunicorn কনফিগার করা
Production পরিবেশে Nginx বা Gunicorn ব্যবহার করতে পারেন।
৩. DigitalOcean-এ FastAPI অ্যাপ্লিকেশন ডেপ্লয় করা
DigitalOcean একটি জনপ্রিয় ক্লাউড প্ল্যাটফর্ম যা সরলভাবে FastAPI অ্যাপ্লিকেশন হোস্ট করতে সহায়ক।
Step 1: DigitalOcean অ্যাকাউন্ট তৈরি করা
ডিজিটালওশনে একটি অ্যাকাউন্ট তৈরি করুন এবং একটি Droplet (ভি আর ওয়েব সার্ভার) তৈরি করুন।
Step 2: Droplet তৈরি করা
ড্রপলেট তৈরি করার সময়, আপনি Ubuntu ইমেজ এবং SSH key নির্বাচন করতে পারেন।
Step 3: Droplet-এ SSH দিয়ে লগইন করা
ssh root@your-droplet-ip
Step 4: সার্ভারে FastAPI ইনস্টল করা
আপনার ড্রপলেটে FastAPI, Uvicorn, এবং Python ইনস্টল করুন।
sudo apt update
sudo apt install python3-pip python3-dev
pip3 install fastapi uvicorn
Step 5: FastAPI অ্যাপ আপলোড করা
আপনার অ্যাপ সার্ভারে আপলোড করতে SCP ব্যবহার করুন অথবা সরাসরি কোড লিখে FastAPI অ্যাপ তৈরি করুন।
Step 6: FastAPI অ্যাপ চালানো
uvicorn main:app --host=0.0.0.0 --port=80
এখন আপনার অ্যাপ http://your-droplet-ip থেকে অ্যাক্সেস করা যাবে।
Step 7: Nginx দিয়ে ডেপ্লয় করা (ঐচ্ছিক)
উচ্চ পারফরম্যান্সের জন্য Nginx এবং Gunicorn ব্যবহার করুন।
FastAPI অ্যাপ্লিকেশনকে Heroku, AWS, এবং DigitalOcean এ ডেপ্লয় করা খুবই সহজ। উল্লিখিত পদ্ধতিতে আপনি বিভিন্ন প্ল্যাটফর্মে আপনার অ্যাপ্লিকেশনটি ডেপ্লয় করতে পারবেন এবং উন্নত স্কেলেবল অ্যাপ তৈরি করতে পারবেন। FastAPI-এর সাথে Celery বা Nginx ব্যবহার করে আপনি কার্যকরী এবং উচ্চ-পারফরম্যান্স অ্যাপ্লিকেশন ডেপ্লয় করতে পারেন।
Read more