সরাসরি প্রধান সামগ্রীতে চলে যান

মেশিন লার্নিং মডেল AWS ক্লাউডে যেভাবে ডেপ্লয় করবেন

ভূমিকা

আমরা সাধারণত আমাদের তৈরি মেশিন লার্নিং (Machine Learning) মডেল বা ওয়েব অ্যাপ্লিকেশন নিজেদের কম্পিউটারে (Localhost) চালাই। কিন্তু এটাকে যদি পৃথিবীর যেকোনো প্রান্তের মানুষের ব্যবহারের উপযোগী করতে হয়, তবে তাকে ইন্টারনেট বা ক্লাউডে রাখতে হয়। একেই বলে 'ডেপ্লয়মেন্ট' (Deployment)। এই ভিডিওতে দেখানো হয়েছে কীভাবে একটি মেশিন লার্নিং মডেলকে অ্যামাজনের (AWS) একটি সার্ভারে (EC2) খুব সহজে রাখা যায়।


১. কাজের আর্কিটেকচার বা নকশা

ভিডিওর রেফারেন্স: [00:48]

আমাদের সিস্টেমটি কীভাবে কাজ করবে তার একটি সাধারণ ধারণা এখানে দেওয়া হয়েছে:

  • Nginx (এনজিনক্স): এটি একটি হালকা ওয়েব সার্ভার। যখন কেউ আমাদের ওয়েবসাইটের লিঙ্কে ক্লিক করে, তখন Nginx সেই রিকোয়েস্ট গ্রহণ করে।

  • রিয়েকশন: প্রথমে Nginx আমাদের ওয়েবসাইটের HTML, CSS এবং জাভাস্ক্রিপ্ট ফাইলগুলো ব্রাউজারে পাঠায়।

  • API কল: যখন ইউজার কিছু ক্লিক করে দাম জানার জন্য, তখন জাভাস্ক্রিপ্ট কোড থেকে একটি রিকোয়েস্ট ব্যাক-এন্ডে যায়।

  • রিভার্স প্রক্সি (Reverse Proxy): Nginx একটি 'রিভার্স প্রক্সি' হিসেবে কাজ করে, যা ওই রিকোয়েস্টকে আমাদের পাইথন (Python Flask) সার্ভারের কাছে পাঠিয়ে দেয়। পাইথন সার্ভার মডেল থেকে দাম হিসাব করে ফলাফল দেয়।

সহজ ভাষায়: Nginx হলো হোটেলের ওয়েটারের মতো, যে কাস্টমারের অর্ডার (Request) নিয়ে কিচেনে (Python Server) পাঠায় এবং খাবার তৈরি হলে তা কাস্টমারকে সার্ভ করে।


২. Nginx সেটআপ এবং কনফিগারেশন

ভিডিওর রেফারেন্স: [01:54]

প্রথমে নিজের কম্পিউটারে Nginx সেটআপ করে যাচাই করে নেওয়া হয়।

  • Nginx ডাউনলোড করে কনফিগারেশন ফাইল (nginx.conf) এডিট করতে হয়।

  • এখানে 'Root' ফোল্ডার পরিবর্তন করে আমাদের ওয়েবসাইটের ফাইলগুলো যুক্ত করতে হয় যাতে সরাসরি ওয়েবসাইট লোড হয়।

কোডিং কনসেপ্ট: nginx.conf ফাইলে নিচের কোডটুকু ব্যবহার করে আমরা রিভার্স প্রক্সি সেটআপ করি:

Nginx

location /api/ {
    proxy_pass http://127.0.0.1:5000;
} 
  • ব্যাখ্যা: এই কোডটির অর্থ হলো, যদি কেউ /api/ দিয়ে শুরু হওয়া কোনো লিঙ্কে রিকোয়েস্ট পাঠায়, তবে Nginx তাকে সরাসরি ৫০০০ নম্বর পোর্টে চলমান আমাদের পাইথন সার্ভারের কাছে পাঠিয়ে দেবে।

৩. AWS EC2 ইনস্ট্যান্স তৈরি

ভিডিওর রেফারেন্স: [10:15]

EC2 হলো অ্যামাজনের একটি ক্লাউড কম্পিউটার বা ভার্চুয়াল মেশিন।

  • AWS কনসোলে গিয়ে 'Launch Instance' বাটনে ক্লিক করে একটি Ubuntu মেশিন সিলেক্ট করতে হয়।

  • সিকিউরিটি গ্রুপ: এখানে আমাদের HTTP পোর্ট (Port 80) খোলা রাখতে হবে যাতে বাইরের লোকজন ওয়েবসাইটটি দেখতে পারে।

  • কী-পেয়ার (Key Pair): এটি অনেকটা পাসওয়ার্ডের মতো কাজ করে। এটি ডাউনলোড করে আমাদের লোকাল পিসির .ssh ফোল্ডারে রাখতে হয়।


৪. সার্ভারে কোড কপি এবং সেটআপ

ভিডিওর রেফারেন্স: [14:36]

  • SSH সংযোগ: git bash ব্যবহার করে আমরা ক্লাউড মেশিনের সাথে সংযোগ করি।

  • WinSCP ব্যবহার: WinSCP সফটওয়্যার দিয়ে আমাদের কম্পিউটারের ফাইলগুলো সরাসরি ক্লাউড সার্ভারে ড্র্যাগ অ্যান্ড ড্রপ করে কপি করি।

  • Nginx ইনস্টল: লিনাক্স কমান্ড sudo apt-get install nginx দিয়ে সার্ভারে Nginx সেটআপ করা হয়।

  • সিম্বলিক লিঙ্ক (Symlink): এটি একটি শর্টকাটের মতো, যা Nginx-কে বলে দেয় আমাদের কনফিগারেশন ফাইলটি কোথায় আছে। sudo ln -s /etc/nginx/sites-available/bhp.conf /etc/nginx/sites-enabled/ কমান্ড দিয়ে এটি করা হয়।


৫. পাইথন সার্ভার চালু করা

ভিডিওর রেফারেন্স: [25:36]

সবশেষে ব্যাক-এন্ড সার্ভার চালানোর পালা:

  1. সার্ভারে requirements.txt ফাইল থেকে প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে হয়।

  2. python3 server.py কমান্ড দিয়ে সার্ভার চালু করলেই ওয়েবসাইটটি পুরোপুরি লাইভ হয়ে যায়।


বিশ্লেষণ ও আমার মতামত

এই ভিডিওটি ডেপ্লয়মেন্টের একটি চমৎকার বাস্তব উদাহরণ। সাধারণত নতুনদের জন্য সার্ভার, লিনাক্স কমান্ড এবং Nginx কনফিগারেশন অনেক কঠিন মনে হতে পারে, কিন্তু এই ভিডিওতে তা ধাপে ধাপে খুব সহজভাবে দেখানো হয়েছে।

  • বাস্তবতা: বড় প্রোজেক্টে সাধারণত 'Docker' বা 'Gunicorn' ব্যবহার করা হয় যা আরও বেশি নির্ভরযোগ্য। তবে শেখার শুরুতে এই Nginx ও Flask সেটআপটি সবচেয়ে কার্যকর।

  • পরামর্শ: যদি আপনি লিনাক্স বা টার্মিনালে নতুন হন, তবে প্রতিটি কমান্ড দেওয়ার সময় সাবধানে টাইপ করবেন এবং কমান্ডের অর্থগুলো বোঝার চেষ্টা করবেন।

  • বিকল্প: ভবিষ্যতে আপনি চাইলে 'Render', 'Heroku' বা 'Vercel'-এর মতো প্ল্যাটফর্মও ব্যবহার করতে পারেন, যেখানে এত কনফিগারেশন লাগে না। তবে AWS শেখাটা ক্যারিয়ারের জন্য অনেক বড় প্লাস পয়েন্ট।

ভিডিওটি দেখার জন্য লিঙ্ক: https://www.youtube.com/watch?v=q8NOmLD5pTU

[

Deploy machine learning model to production AWS (Amazon EC2 instance)

codebasics · 143K views

](http://www.youtube.com/watch?v=q8NOmLD5pTU)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...