আপনার অ্যাপের হোস্টিং খরচ কীভাবে কমাবেন
হোস্টিং খরচ কমাতে প্রথমে জানুন আসলে কী চলছে এবং কেন, তারপর কেউ ব্যবহার না করলে সবকিছুকে ঘুমাতে দিন। শূন্যে নামা হোস্টে একটি নিষ্ক্রিয় অ্যাপ ও একটি ঘুমন্ত ডেটাবেসের খরচ খুব কম, তাই সবচেয়ে বড় সাশ্রয় সাধারণত আসে যা এগুলোকে জাগিয়ে রাখে তা সরানো থেকে, বেশিরভাগ সময় প্রতি কয়েক সেকেন্ডে ডেটাবেস চেক করা কোড; তারপর ব্যান্ডউইথ কমানো ও যেসব অ্যাপ কেউ ব্যবহার করে না সেগুলো মুছে ফেলা থেকে।
ছোট অ্যাপের বেশিরভাগের আসল সমস্যা ট্র্যাফিক নয়। সমস্যা হলো “কিছু একটা সবসময় চালু থাকে”। এই গাইড দেখায় কীভাবে সেটি খুঁজে ঠিক করতে হয়, সঙ্গে AI অ্যাপ বিল্ডারকে দেওয়ার মতো প্রম্পট।
আসলে কীসের জন্য টাকা দিচ্ছেন
ছোট অ্যাপের হোস্টিং বিল কয়েকটি জিনিস থেকে আসে। কোনটি বড় তা জানলে বোঝা যায় কোথায় তাকাতে হবে।
| খরচ | কী এটি চালায় | সাধারণ সমাধান |
|---|---|---|
| কম্পিউট (সার্ভার) | মেশিনটি কত বড় এবং কত ঘণ্টা চলে | ঘুমাতে দিন; আকার ঠিক করুন |
| ডেটাবেস | এর আকার এবং কতক্ষণ জেগে থাকে | নিরন্তর কোয়েরি থামান যাতে ঘুমাতে পারে |
| ব্যান্ডউইথ | ভিজিটররা কতটুকু ডাউনলোড করে | ছবি কম্প্রেস করুন, ফাইল ক্যাশ করুন |
| স্টোরেজ | যে ফাইল ও ডেটা রাখেন | পুরোনো আপলোড, লগ ও ব্যাকআপ যা লাগে না মুছুন |
| তৃতীয় পক্ষের API | AI মডেল, ম্যাপ, ইমেইল, SMS-এর কল | ফলাফল ক্যাশ করুন, সীমা বসান |
অনেক আধুনিক হোস্ট, Mythex সহ, শূন্যে নামে: কেউ অ্যাপ ব্যবহার না করলে সার্ভার বন্ধ হয়ে যায় এবং কম্পিউটের জন্য কোনো খরচ হয় না, তারপর পরের ভিজিটে জেগে ওঠে। এতে প্রশ্নটি বদলে যায়: “আমার সার্ভার কত বড়?” থেকে “আমার সার্ভার কেন জেগে আছে?”
ধাপ ১: কোথায় টাকা যাচ্ছে দেখুন
কিছু বদলানোর আগে আপনার হোস্টের ব্যবহারের পেজ খুলুন এবং খুঁজুন:
- কোন প্রজেক্ট সবচেয়ে বেশি খরচ করছে। প্রায়ই একটি অ্যাপই বিলের বড় অংশ।
- কোন ক্যাটাগরি: কম্পিউট, ডেটাবেস, ব্যান্ডউইথ না স্টোরেজ।
- কখন খরচ হচ্ছে। রাতে সারাক্ষণ একটানা খরচ, যখন কোনো ব্যবহারকারী নেই, সেটি ইঙ্গিত যে কিছু অ্যাপকে জাগিয়ে রাখছে।
Mythex-এ Usage details গত ৩০ দিনকে Build (AI এজেন্ট) এবং Run (হোস্টিং, ব্যান্ডউইথ, ডেটাবেস ও ফাইল স্টোরেজ) ভাগে দেখায়, প্রজেক্ট অনুযায়ী বিভাজনসহ।
ধাপ ২: নিষ্ক্রিয় অ্যাপ ও ডেটাবেসকে ঘুমাতে দিন
বেশিরভাগ ছোট অ্যাপের জন্য এটিই আসল লিভার। যে ডেটাবেস নিষ্ক্রিয় থাকলে ঘুমায় এবং পরের অনুরোধে জাগে, সেটি শান্ত সময়ে প্রায় কিছুই খরচ করে না। যে ডেটাবেসে প্রতি কয়েক সেকেন্ডে কোয়েরি হয়, সেটি কখনো নিষ্ক্রিয় হয় না, তাই সারাদিন তার দাম দিতে হয়।
Mythex-এর hosting limits প্রকাশিত অ্যাপের জন্য এটি কীভাবে কাজ করে তা ব্যাখ্যা করে: ঘুমন্ত অ্যাপের কম্পিউট খরচ শূন্য, আর ডেটাবেস ছোট আকার দিয়ে শুরু হয়, ব্যস্ত থাকলে বড় হয়, ৫ মিনিট নিষ্ক্রিয় থাকলে ঘুমিয়ে পড়ে, এবং যতক্ষণ জেগে থাকে তার আকার গুণ সময়ের হিসাবে চার্জ হয়। অর্থাৎ যে অ্যাপ প্রতি কয়েক মিনিটে একবারও দিনরাত ডেটাবেস কোয়েরি করে, সেটির বিল সবসময় ব্যস্ত অবস্থার মতো হয়; অথচ কোনো ব্যাকগ্রাউন্ড চ্যাটার ছাড়া একই অ্যাপের খরচ খুবই কম।
যেসব জিনিস অ্যাপকে জাগিয়ে রাখে:
- পোলিং। একটি পেজ প্রতি ২–৫ সেকেন্ডে সার্ভারকে জিজ্ঞেস করে “নতুন কিছু আছে?”। একটি ল্যাপটপে ট্যাবটি খোলা রাখলেই ডেটাবেস কখনো ঘুমায় না।
- স্বয়ংক্রিয়ভাবে রিফ্রেশ হওয়া ড্যাশবোর্ড যা টাইমারে ডেটা পুনরায় লোড করে, এমনকি কেউ দেখছে না তখনও।
- আপটাইম মনিটর যা প্রতি মিনিটে অ্যাপে ping করে।
- সার্ভার কোডে ব্যাকগ্রাউন্ড লুপ, যেমন একটি
setIntervalযা অনন্তকাল ডেটা পরিষ্কার বা সিঙ্ক করে। - নির্ধারিত “keep-alive” অনুরোধ যা কেউ প্রথম ভিজিটের ধীরতা এড়াতে যোগ করেছে। এগুলো ঘুমানো আটকে কাজ করে, আর ঠিক এই ঘুম আটকানোটাই খরচ বাড়ায়।
AI-কে এগুলো খুঁজতে বলুন:
কোডের মধ্যে যা কোনো টাইমারে চলে বা বারবার ডেটাবেস কোয়েরি করে তা খুঁজুন: পোলিং, setInterval, অটো-রিফ্রেশ, ব্যাকগ্রাউন্ড লুপ। প্রতিটি তালিকা করুন, কত ঘন ঘন চলে, এবং কেউ পেজ খোলা না থাকলেও চলে কি না। এখনো কিছু বদলাবেন না।
তারপর একটি একটি করে ঠিক করুন:
ড্যাশবোর্ড প্রতি ৩ সেকেন্ডে /api/orders পোল করে। এটি বদলে শুধু ব্রাউজার ট্যাব দৃশ্যমান থাকলে রিফ্রেশ করুক, এবং ৩ সেকেন্ডের বদলে প্রতি ৬০ সেকেন্ডে। একটি ম্যানুয়াল Refresh বোতাম যোগ করুন।
আপনার অ্যাপের যদি সত্যিই লাইভ আপডেট দরকার হয় (একটি চ্যাট, একটি লাইভ স্কোরবোর্ড), AI-কে জিজ্ঞেস করুন এটি কি কিছু বদলালেই আপডেট পুশ করতে পারে, ক্রমাগত জিজ্ঞেস করার বদলে। বেশিরভাগ অ্যাপের জন্য “ব্যবহারকারী ট্যাবে ফিরে এলে রিফ্রেশ করুন” যথেষ্ট।
ধাপ ৩: সার্ভারের আকার ঠিক করুন
বড় মেশিনের প্রতি ঘণ্টার দাম বেশি। অনেক AI-তৈরি অ্যাপ একটি ডিফল্ট আকার দিয়ে শুরু হয় যা যথেষ্ট; সমস্যা আসে ধীরগতি ঠিক করতে “আরও শক্তি” চাওয়া থেকে, যেখানে আসলে সমস্যা ছিল একটি ধীর কোয়েরি।
- ত্রুটি ছাড়া আপনার ট্র্যাফিক সামলায় এমন সবচেয়ে ছোট আকার রাখুন।
- মেমরি ক্র্যাশ দেখলে আগে AI-কে জিজ্ঞেস করুন অ্যাপ কি মেমরিতে অতিরিক্ত ডেটা লোড করছে (ফলাফলের এক পেজের বদলে পুরো টেবিল)।
- শুধু মাপা ট্র্যাফিক প্রয়োজন হলে মেশিন যোগ করুন।
Mythex-এ প্রকাশের সময় অ্যাপের প্রয়োজন অনুযায়ী মেশিনের আকার বেছে নেওয়া হয়, এবং ট্র্যাফিক বেশি হলেই অতিরিক্ত মেশিন চালু হয় ও ট্র্যাফিক কমলে আবার ঘুমিয়ে পড়ে। খরচ আকারের সঙ্গে বাড়ে, তাই মনে হলে বড় হয়েছে তবে চ্যাটে ছোট আকারের অনুরোধ করুন।
ধাপ ৪: ব্যান্ডউইথ কমান
ব্যান্ডউইথ হলো ভিজিটররা যা ডাউনলোড করে। ছবিই সাধারণত সবচেয়ে বড় অংশ।
- ছবি কম্প্রেস করুন এবং WebP বা AVIF-এর মতো আধুনিক ফরম্যাট ব্যবহার করুন।
- যে আকারে দেখানো হয় সেই আকারে ছবি ছোট করুন। ৪,০০০ পিক্সেলের একটি ছবি ৪০০ পিক্সেলের থাম্বনেইল হিসেবে দেখালে ডাউনলোড করা অংশের বেশিরভাগ অপচয় হয়।
- প্রথম পর্দার নিচের ছবি লেজি-লোড করুন।
- স্ট্যাটিক ফাইল (স্ক্রিপ্ট, স্টাইল, ছবি) ক্যাশ করুন, যাতে ফিরে আসা ভিজিটররা আবার ডাউনলোড না করে। দেখুন ক্যাশিং কী।
- প্রতিটি পেজ ভিউতে অ্যাপকে বড় ফাইল দিতে দেবেন না।
অ্যাপের প্রতিটি ছবি যাচাই করুন। এগুলো যে সর্বোচ্চ আকারে দেখানো হয় সেই আকারে ছোট করুন, WebP-তে রূপান্তর করুন, এবং প্রথম পর্দার নিচের যেকোনো কিছু লেজি-লোড করুন। আগে ও পরে মোট আকার জানান।
দ্রুত পেজ ও কম ব্যান্ডউইথ সাধারণত একসঙ্গে আসে। দেখুন আপনার ওয়েবসাইট কীভাবে দ্রুত করবেন।
ধাপ ৫: যা কেউ ব্যবহার করে না তা পরিষ্কার করুন
- পুরোনো অ্যাপ আনপাবলিশ করুন: টেস্ট ডেপ্লয়মেন্ট, শেষ হওয়া পরীক্ষা-নিরীক্ষা, গত বছরের ইভেন্ট সাইট।
- পুরোনো আপলোড, লগ ও এক্সপোর্ট মুছুন যা আর লাগে না।
- অব্যবহৃত শেয়ারড প্রিভিউ লিংক মুছুন। Mythex-এ প্রিভিউ লিংক খুললে প্রজেক্ট জেগে ওঠে এবং আপনার ক্রেডিটে চলে, তাই যে ভুলে যাওয়া লিংক কেউ বারবার খোলে তার খরচ হতেই থাকে।
- অব্যবহৃত সার্ভিস সরান, যেমন একটি API সার্ভার বা ওয়ার্কার যা অ্যাপ আর ডাকে না।
ধাপ ৬: একটি স্ট্যাটিক সাইট বিবেচনা করুন
আপনার সাইটে লগইন না থাকলে, সংরক্ষিত ব্যবহারকারীর ডেটা না থাকলে এবং সার্ভার লজিক না থাকলে, যেমন একটি মার্কেটিং সাইট, পোর্টফোলিও বা মেনু, এটি একটি স্ট্যাটিক সাইট হতে পারে: CDN থেকে পরিবেশিত সাধারণ ফাইল। চালু রাখার জন্য কোনো সার্ভার বা ডেটাবেস নেই। Mythex-এ স্ট্যাটিক সাইট পড়ে থাকলে ক্রেডিট ব্যবহার করে না।
এই সাইটে কোনো লগইন বা সংরক্ষিত ডেটা নেই। এটি কি কোনো সার্ভার ছাড়া স্ট্যাটিক সাইট হিসেবে আবার বানানো যায়? আমরা কী হারাব?
ধাপ ৭: পেইড API কল লক্ষ্য রাখুন
AI মডেল, ম্যাপ বা SMS ব্যবহারকারী অ্যাপে তৃতীয় পক্ষের বিল হোস্টিংয়ের চেয়ে অনেক বড় হতে পারে।
- প্রতি কলে যা খরচ হয় তার জন্য লগইন বাধ্যতামূলক করুন।
- প্রতি ব্যবহারকারীর সীমা যোগ করুন (দেখুন rate limiting কী)।
- যে উত্তর বদলায় না তা ক্যাশ করুন, যেমন একই ঠিকানার geocoding।
- প্রতিটি প্রদানকারীতে খরচের সীমা বা সতর্কতা সেট করুন।
সাধারণ ভুল
- মেপে না দেখে আন্দাজ করা। আগে ব্যবহারের বিভাজন দেখুন; দামি অংশটি প্রায়ই আপনার আশার চেয়ে আলাদা হয়।
- ধীরতা ঠিক করতে বড় সার্ভার কেনা। একটি অনুপস্থিত ডেটাবেস ইনডেক্স বা অতিরিক্ত ডেটা লোড করাই সাধারণত আসল কারণ।
- সবকিছু পোল করা। প্রতিটি কয়েক-সেকেন্ডের টাইমার ডেটাবেসকে জেগে থাকার একটি কারণ।
- অ্যাপকে “গরম” রাখতে পিং করা। এটি শূন্যে নামার যে সাশ্রয় পান তা বাতিল করে। প্রথম ভিজিটে একটু জেগে ওঠা মেনে নিন, অথবা ইচ্ছা করে সবসময় চালু রাখার জন্য টাকা দিন।
- পুরোনো ডিপ্লয়মেন্ট ভুলে যাওয়া। ডেটাবেস ও ব্যাকগ্রাউন্ড জব সহ অব্যবহৃত অ্যাপ নীরবে খরচ যোগ করে।
- অকম্প্রেসড ছবি। ছোট সাইটে প্রায়ই ব্যান্ডউইথের সবচেয়ে বড় একক খরচ।
চেকলিস্ট
- আমি জানি কোন প্রজেক্ট ও কোন ক্যাটাগরি (কম্পিউট, ডেটাবেস, ব্যান্ডউইথ, স্টোরেজ) সবচেয়ে বেশি খরচ করে।
- কেউ দেখছে না এমন সময়েও কিছু প্রতি কয়েক সেকেন্ডে ডেটাবেস পোল করে না।
- ড্যাশবোর্ড যুক্তিসংগত ব্যবধানে বা শুধু ট্যাব দৃশ্যমান থাকলে রিফ্রেশ হয়।
- কোনো আপটাইম মনিটর বা ব্যাকগ্রাউন্ড লুপ কারণ ছাড়া অ্যাপকে জাগিয়ে রাখে না।
- সার্ভার কাজ করে এমন সবচেয়ে ছোট আকারের।
- ছবি ছোট, কম্প্রেসড ও লেজি-লোড; স্ট্যাটিক ফাইল ক্যাশ করা।
- পুরোনো অ্যাপ আনপাবলিশ, পুরোনো ফাইল মোছা, অব্যবহৃত প্রিভিউ লিংক সরানো।
- ডেটা বা লগইন নেই এমন সাইট স্ট্যাটিক।
- পেইড API-তে লগইন, ব্যবহারকারী-প্রতি সীমা এবং প্রদানকারীর খরচের সতর্কতা আছে।
Mythex-এ খরচ কমানো
Mythex বানানো ও হোস্টিং দুটোর জন্য একটি ক্রেডিট ব্যালেন্স ব্যবহার করে, তাই হোস্টিংয়ের সাশ্রয় বানানোর জন্য বেশি ক্রেডিট রাখে। Mythex-এর কিছু নির্দিষ্ট বিষয়:
- প্রকাশিত অ্যাপ ও তার ডেটাবেস নিষ্ক্রিয় থাকলে ঘুমায় এবং পরের ভিজিটে জাগে। ডেটাবেস ৫ মিনিট নিষ্ক্রিয় থাকলে ঘুমায়, তাই অবিরাম পোলিং বন্ধ করাই সাধারণত সবচেয়ে বড় লাভ।
- Pro প্ল্যান হোস্টিং, ডেটাবেস, ব্যান্ডউইথ, ফাইল স্টোরেজ এবং প্রিভিউ স্যান্ডবক্সের জন্য Free রেটের অর্ধেক দেয়; AI-এর খরচ দুই প্ল্যানেই একই। দেখুন Credits।
- কম ব্যালেন্সের কারণে প্রকাশিত অ্যাপ বিরতি পাওয়ার আগে আপনি একটি ইমেইল পান; বিরতিতে থাকা অ্যাপ তার ডেটাবেস ও ফাইল রেখে দেয়।
চলার খরচের বড় চিত্রের জন্য দেখুন একটি অ্যাপ বানাতে কত খরচ হয় এবং ওয়েব হোস্টিং কী।
প্রশ্নোত্তর
ব্যবহারকারী কম হলেও আমার হোস্টিং বিল বেশি আসছে কেন?
সাধারণত কিছু একটা একে জাগিয়ে রাখে। প্রতি কয়েক সেকেন্ডে ডেটাবেস চেক করা কোড, প্রতি মিনিটে অ্যাপে ping করা আপটাইম মনিটর, বা ভুলে যাওয়া একটি ব্যাকগ্রাউন্ড লুপ সার্ভার ও ডেটাবেসকে সারাক্ষণ চালু রাখতে পারে, এমনকি কোনো ভিজিটর না থাকলেও।
ঘুমন্ত অ্যাপের কি খরচ হয়?
যেসব হোস্ট শূন্যে নামে, সেখানে ঘুমন্ত অ্যাপের কম্পিউট খরচ খুব কম বা শূন্য; তবে সংরক্ষিত ডেটার জন্য সাধারণত মূল্য দিতে হয়। Mythex-এ ঘুমন্ত প্রকাশিত অ্যাপের কম্পিউট খরচ শূন্য, এবং এর ডেটাবেস ৫ মিনিট নিষ্ক্রিয় থাকলে ঘুমিয়ে পড়ে, আর শুধু জেগে থাকা সময়ের জন্য চার্জ হয়।
পোলিং কি হোস্টিং খরচের জন্য খারাপ?
প্রতি কয়েক সেকেন্ডে পোলিং মানে ডেটাবেস কখনো নিষ্ক্রিয় থাকে না, তাই ঘুমাতে পারে না। কম ঘন ঘন পোল করুন, শুধু কেউ পেজটি দেখার সময় করুন, অথবা জিজ্ঞেস করার বদলে আপডেট পুশ করুন।
একটি স্ট্যাটিক সাইট কি ওয়েব অ্যাপের চেয়ে হোস্ট করা সস্তা?
সাধারণত হ্যাঁ। স্ট্যাটিক সাইট হলো CDN থেকে পরিবেশিত কিছু ফাইল, যার কোনো সার্ভার বা ডেটাবেস চালু রাখতে হয় না। আপনার সাইটে লগইন বা সংরক্ষিত ডেটা না থাকলে, এটি স্ট্যাটিক সাইট হিসেবে বানানো সবচেয়ে বড় সাশ্রয়গুলোর একটি।