আপনার প্রোজেক্ট বিনা খরচের Spark প্রাইসিং প্ল্যানে থাকলে, Realtime Database ব্যবহারের জন্য আপনাকে বিল করা হবে না। আপনি কোনও খরচ ছাড়াই ব্যবহার করতে পারবেন, যার মধ্যে রয়েছে ১ জিবি ডেটা স্টোরেজ এবং প্রতি মাসে ১০ জিবি ডেটা ডাউনলোড।
আপনি যদি যখন ব্যবহার করবেন তখন পেমেন্ট করুন Blaze প্রাইসিং প্ল্যানে আপগ্রেড করেন, তাহলে আপনি ফ্রিতে ব্যবহার (১ জিবি ডেটা স্টোরেজ এবং ১০ জিবি/মাস ডেটা ডাউনলোড) চালিয়ে যেতে পারবেন এবং এই পরিমাণের বেশি ব্যবহার করলে আপনাকে বিল করা হবে। আপনার প্রোজেক্ট Blaze প্রাইসিং প্ল্যানে থাকলে, আমরা আপনার প্রোজেক্টের জন্য বাজেট অ্যালার্ট সেট-আপ করার সাজেশন দিই।
এই পৃষ্ঠার বাকি অংশে বিলিং সম্পর্কে আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।
Realtime Database কীভাবে বিলিং হিসেব করে
আপনার ডেটাবেসে স্টোর করা ডেটা এবং OSI মডেলের সেশন লেয়ারে (লেয়ার ৫) সমস্ত আউটবাউন্ড নেটওয়ার্ক ট্রাফিকের জন্য Firebase বিল করে। স্টোরেজের জন্য প্রতি জিবি/মাসে $৫ বিল করা হয়, যা প্রতিদিন মূল্যায়ন করা হয়। আপনার ডেটাবেসের লোকেশনের উপর বিলিং নির্ভর করে না। আউটবাউন্ড ট্রাফিকের মধ্যে সমস্ত ডেটাবেস অপারেশন থেকে কানেকশন এবং এনক্রিপশন ওভারহেড এবং ডেটাবেস রিডের মাধ্যমে ডাউনলোড করা ডেটা অন্তর্ভুক্ত থাকে। ডেটাবেস রিড ও রাইট, দুটির জন্যই আপনার বিলে কানেকশন সংক্রান্ত খরচ যোগ হতে পারে। আপনার ডেটাবেসে আসা ও যাওয়া সব ট্রাফিক, যার মধ্যে নিরাপত্তা সংক্রান্ত নিয়মের কারণে বাতিল করা অপারেশনও অন্তর্ভুক্ত, তার জন্য বিল করা হয়।
বিল করা ট্রাফিকের কিছু সাধারণ উদাহরণের মধ্যে রয়েছে:
- ডাউনলোড করা ডেটা: ক্লায়েন্ট আপনার ডেটাবেস থেকে ডেটা পেলে, Firebase ডাউনলোড করা ডেটার জন্য চার্জ করে। সাধারণত, এটি আপনার ব্যান্ডউইথ খরচের বেশিরভাগ অংশ তৈরি করে, তবে এটি আপনার বিলের একমাত্র ফ্যাক্টর নয়।
- প্রোটোকল ওভারহেড: সেশন তৈরি ও বজায় রাখার জন্য সার্ভার ও ক্লায়েন্টের মধ্যে কিছু অতিরিক্ত ট্রাফিক প্রয়োজন। অন্তর্নিহিত প্রোটোকলের উপর নির্ভর করে, এই ট্রাফিকের মধ্যে অন্তর্ভুক্ত থাকতে পারে: Firebase Realtime Database-এর রিয়েল-টাইম প্রোটোকল ওভারহেড, WebSocket ওভারহেড এবং HTTP হেডার ওভারহেড। প্রতিবার কানেকশন তৈরি হলে, এই ওভারহেড, যেকোনও SSL এনক্রিপশন ওভারহেডের সাথে যুক্ত হয়ে কানেকশন খরচে অবদান রাখে। যদিও এটি একটি অনুরোধের জন্য খুব বেশি ব্যান্ডউইথ নয়, তবে আপনার পেলোড ছোট হলে বা আপনি ঘন ঘন, ছোট কানেকশন করলে এটি আপনার বিলের একটি উল্লেখযোগ্য অংশ হতে পারে।
- SSL এনক্রিপশন ওভারহেড: সুরক্ষিত কানেকশনের জন্য প্রয়োজনীয় SSL এনক্রিপশন ওভারহেডের সাথে খরচ যুক্ত থাকে। গড়ে, এই খরচ প্রাথমিক হ্যান্ডশেকের জন্য প্রায় ৩.৫KB এবং প্রতিটি আউটগোয়িং মেসেজে TLS রেকর্ড হেডারের জন্য প্রায় দশ বাইট। বেশিরভাগ অ্যাপের ক্ষেত্রে, এটি আপনার বিলের একটি ছোট শতাংশ। তবে, আপনার নির্দিষ্ট কেসে অনেক SSL হ্যান্ডশেক প্রয়োজন হলে, এটি একটি বড় শতাংশ হতে পারে। যেমন, যেসব ডিভাইস TLS সেশন টিকিট সাপোর্ট করে না সেগুলির ক্ষেত্রে অনেক বেশি সংখ্যক SSL কানেকশন হ্যান্ডশেক প্রয়োজন হতে পারে।
- Firebase কনসোল ডেটা: যদিও এটি সাধারণত Realtime Database খরচের একটি উল্লেখযোগ্য অংশ নয়, Firebase আপনি Firebase কনসোল থেকে যে ডেটা পড়েন এবং লেখেন তার জন্য চার্জ করে।
আপনার বিল করা ব্যবহার অনুমান করা
আপনার বর্তমান Realtime Database কানেকশন ও ডেটার ব্যবহার দেখতে, Firebase কনসোলের ব্যবহার ট্যাব চেক করুন। আপনি বর্তমান বিলিংয়ের মেয়াদ, গত ৩০ দিন বা গত ২৪ ঘণ্টার ব্যবহার চেক করতে পারবেন।
Firebase নিম্নলিখিত মেট্রিকের জন্য ব্যবহারের পরিসংখ্যান দেখায়:
- কানেকশন: আপনার ডেটাবেসে একই সময়ে, বর্তমানে খোলা, রিয়েল-টাইম কানেকশনের সংখ্যা। এর মধ্যে নিম্নলিখিত রিয়েল-টাইম কানেকশন অন্তর্ভুক্ত: WebSocket, লং পোলিং এবং HTML সার্ভার-প্রেরিত ইভেন্ট। এতে RESTful অনুরোধ অন্তর্ভুক্ত থাকে না।
- স্টোরেজ: আপনার ডেটাবেসে কতটা ডেটা স্টোর করা আছে। এর মধ্যে Firebase হোস্টিং বা অন্য Firebase প্রোডাক্টের মাধ্যমে স্টোর করা ডেটা অন্তর্ভুক্ত নয়।
- ডাউনলোড: প্রোটোকল ও এনক্রিপশন ওভারহেড সহ আপনার ডেটাবেস থেকে ডাউনলোড করা সমস্ত বাইট।
- লোড: এই গ্রাফে দেখানো হয় যে ১ মিনিটের ব্যবধানে আপনার ডেটাবেসের কতটা ব্যবহার করা হচ্ছে, প্রসেসিং অনুরোধ। আপনার ডেটাবেস ১০০% হয়ে গেলে পারফর্ম্যান্স সংক্রান্ত সমস্যা দেখতে পেতে পারেন।
ব্যবহার অপ্টিমাইজ করুন
আপনার ডেটাবেস ব্যবহার ও ব্যান্ডউইথ খরচ অপ্টিমাইজ করার জন্য আপনি কিছু পেশাদার পদ্ধতি প্রয়োগ করতে পারেন।
- নেটিভ SDK ব্যবহার করুন: যখনই সম্ভব, REST API-এর পরিবর্তে আপনার অ্যাপের প্ল্যাটফর্মের সাথে মানানসই SDK ব্যবহার করুন। SDK ওপেন কানেকশন বজায় রাখে, যার ফলে SSL এনক্রিপশন খরচ কমে যায় যা সাধারণত REST API-এর সাথে যোগ হয়।
- বাগ চেক করুন: আপনার ব্যান্ডউইথের খরচ অপ্রত্যাশিতভাবে বেশি হলে, আপনার অ্যাপটি আপনার আসল উদ্দেশ্যের চেয়ে বেশি ডেটা সিঙ্ক করছে না বা ঘন ঘন সিঙ্ক করছে না তা যাচাই করুন। সমস্যা শনাক্ত করতে, প্রোফাইলার টুল ব্যবহার করে আপনার রিড অপারেশন পরিমাপ করুন এবং Android, Objective-C এবং Web SDK-তে ডিবাগ লগিং চালু করুন। আপনার অ্যাপে ব্যাকগ্রাউন্ড ও সিঙ্ক প্রসেস চেক করে দেখুন যে সবকিছু আপনার ইচ্ছা অনুযায়ী কাজ করছে কিনা।
- কানেকশন কমান: সম্ভব হলে, আপনার কানেকশন ব্যান্ডউইথ অপ্টিমাইজ করার চেষ্টা করুন। নেটিভ SDK ব্যবহার করে একটি, নিরবচ্ছিন্ন কানেকশনের চেয়ে ঘন ঘন, ছোট REST অনুরোধের খরচ বেশি হতে পারে। আপনি REST API ব্যবহার করলে, HTTP কিপ-অ্যালাইভ বা সার্ভার-প্রেরিত ইভেন্ট ব্যবহার করার কথা বিবেচনা করুন, যা SSL হ্যান্ডশেক থেকে খরচ কমাতে পারে।
- TLS সেশন টিকিট ব্যবহার করুন: TLS সেশন টিকিট ইস্যু করার মাধ্যমে রিস্টার্ট করা কানেকশনে SSL এনক্রিপশন ওভারহেড খরচ কমান। ডেটাবেসের সাথে ঘন ঘন, সুরক্ষিত কানেকশন প্রয়োজন হলে এটি বিশেষভাবে সহায়ক হয়।
- ইনডেক্স কোয়েরি: আপনার ডেটা ইনডেক্স করা কোয়েরির জন্য আপনার ব্যবহার করা মোট ব্যান্ডউইথ কমায়, যার ফলে আপনার খরচ কমে এবং ডেটাবেসের পারফর্ম্যান্স বাড়ে। আপনার ডেটাবেসে ইনডেক্স না করা কোয়েরি খুঁজতে প্রোফাইলার টুল ব্যবহার করুন।
- আপনার লিসেনার অপ্টিমাইজ করুন: আপনার লিসেন অপারেশন থেকে রিটার্ন করা ডেটা সীমিত করতে কোয়েরি যোগ করুন এবং এমন লিসেনার ব্যবহার করুন যা শুধুমাত্র ডেটার আপডেট ডাউনলোড করে — যেমন,
once()-এর পরিবর্তেon()। এছাড়াও, আপনার শ্রোতাদের যতটা সম্ভব নিচের দিকে রাখুন যাতে তারা কম ডেটা সিঙ্ক করে। - স্টোরেজ খরচ কমান: নির্দিষ্ট সময় অন্তর ক্লিন-আপ জব চালান এবং আপনার ডেটাবেসে কোনও ডুপ্লিকেট ডেটা থাকলে তা কমান।
- নিয়ম ব্যবহার করা: আপনার ডেটাবেসে সম্ভাব্য ব্যয়বহুল, অননুমোদিত অপারেশন প্রতিরোধ করুন। যেমন, Firebase Realtime Database Security Rules ব্যবহার করলে এমন পরিস্থিতি এড়ানো যেতে পারে যেখানে কোনও ক্ষতিকর ব্যবহারকারী বারবার আপনার সম্পূর্ণ ডেটাবেস ডাউনলোড করে। Firebase Realtime Database Rules ব্যবহার করা সম্পর্কে আরও জানুন।
আপনার অ্যাপের জন্য সেরা অপ্টিমাইজেশন প্ল্যান আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রের উপর নির্ভর করে। যদিও এটি পেশাদার পদ্ধতির সম্পূর্ণ তালিকা নয়, আপনি আমাদের Slack চ্যানেল বা Stack Overflow-এ Firebase বিশেষজ্ঞদের কাছ থেকে আরও পরামর্শ ও টিপস পেতে পারেন।