रीयलटाइम डेटाबेस बिलिंग को समझें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

फायरबेस आपके द्वारा अपने डेटाबेस में स्टोर किए गए डेटा और OSI मॉडल के सेशन लेयर (लेयर 5) पर सभी आउटबाउंड नेटवर्क ट्रैफ़िक के लिए बिल करता है। प्रत्येक GB/महीने के लिए संग्रहण का बिल $5 है, जिसका मूल्यांकन दैनिक रूप से किया जाता है। बिलिंग आपके डेटाबेस के स्थान से प्रभावित नहीं होती है। आउटबाउंड ट्रैफ़िक में सभी डेटाबेस संचालन से कनेक्शन और एन्क्रिप्शन ओवरहेड और डेटाबेस रीड के माध्यम से डाउनलोड किए गए डेटा शामिल हैं। डेटाबेस पढ़ने और लिखने दोनों से आपके बिल पर कनेक्शन लागत बढ़ सकती है। सुरक्षा नियमों द्वारा अस्वीकृत संचालन सहित आपके डेटाबेस से आने और जाने वाले सभी ट्रैफ़िक बिल योग्य लागतों की ओर ले जाते हैं।

बिल किए गए ट्रैफ़िक के कुछ सामान्य उदाहरणों में शामिल हैं:

  • डाउनलोड किया गया डेटा: जब ग्राहक आपके डेटाबेस से डेटा प्राप्त करते हैं, तो फायरबेस डाउनलोड किए गए डेटा के लिए शुल्क लेता है। आमतौर पर, यह आपकी बैंडविड्थ लागत का बड़ा हिस्सा होता है, लेकिन यह आपके बिल का एकमात्र कारक नहीं है।
  • प्रोटोकॉल ओवरहेड: सत्र स्थापित करने और बनाए रखने के लिए सर्वर और क्लाइंट के बीच कुछ अतिरिक्त ट्रैफ़िक आवश्यक है। अंतर्निहित प्रोटोकॉल के आधार पर, इस ट्रैफ़िक में शामिल हो सकते हैं: Firebase रीयलटाइम डेटाबेस का रीयलटाइम प्रोटोकॉल ओवरहेड, WebSocket ओवरहेड और HTTP हेडर ओवरहेड। हर बार एक कनेक्शन स्थापित होने पर, यह ओवरहेड, किसी भी एसएसएल एन्क्रिप्शन ओवरहेड के साथ मिलकर, कनेक्शन की लागत में योगदान देता है। हालांकि यह एक अनुरोध के लिए बहुत अधिक बैंडविड्थ नहीं है, यह आपके बिल का एक बड़ा हिस्सा हो सकता है यदि आपके पेलोड छोटे हैं या आप बार-बार छोटे कनेक्शन बनाते हैं।
  • एसएसएल एन्क्रिप्शन ओवरहेड: सुरक्षित कनेक्शन के लिए आवश्यक एसएसएल एन्क्रिप्शन ओवरहेड से जुड़ी लागत है। प्रारंभिक हैंडशेक के लिए औसतन यह लागत लगभग 3.5KB है, और प्रत्येक आउटगोइंग संदेश पर TLS रिकॉर्ड हेडर के लिए लगभग दस बाइट्स हैं। अधिकांश ऐप्स के लिए, यह आपके बिल का एक छोटा प्रतिशत होता है। हालाँकि, यह एक बड़ा प्रतिशत बन सकता है यदि आपके विशिष्ट मामले में बहुत अधिक एसएसएल हैंडशेक की आवश्यकता होती है। उदाहरण के लिए, जो उपकरण टीएलएस सत्र टिकट का समर्थन नहीं करते हैं उन्हें बड़ी संख्या में एसएसएल कनेक्शन हैंडशेक की आवश्यकता हो सकती है।
  • फायरबेस कंसोल डेटा: हालांकि यह आमतौर पर रीयलटाइम डेटाबेस लागतों का एक महत्वपूर्ण हिस्सा नहीं होता है, फायरबेस उन डेटा के लिए शुल्क लेता है जिन्हें आप फायरबेस कंसोल से पढ़ते और लिखते हैं।

अपने बिल किए गए उपयोग का अनुमान लगाएं

अपने वर्तमान रीयलटाइम डेटाबेस कनेक्शन और डेटा उपयोग देखने के लिए, Firebase कंसोल में उपयोग टैब देखें। आप मौजूदा बिलिंग अवधि, पिछले 30 दिनों या पिछले 24 घंटों में उपयोग की जांच कर सकते हैं।

फायरबेस निम्नलिखित मेट्रिक्स के लिए उपयोग के आंकड़े दिखाता है:

  • कनेक्शन: आपके डेटाबेस के साथ-साथ, वर्तमान में खुले, रीयलटाइम कनेक्शन की संख्या। इसमें निम्नलिखित रीयलटाइम कनेक्शन शामिल हैं: वेबसाकेट, लंबी मतदान, और HTML सर्वर द्वारा भेजे गए ईवेंट। इसमें रेस्टफुल अनुरोध शामिल नहीं हैं।
  • संग्रहण: आपके डेटाबेस में कितना डेटा संग्रहीत है। इसमें Firebase होस्टिंग या अन्य Firebase उत्पादों के माध्यम से संग्रहीत डेटा शामिल नहीं है।
  • डाउनलोड: प्रोटोकॉल और एन्क्रिप्शन ओवरहेड सहित आपके डेटाबेस से डाउनलोड किए गए सभी बाइट।
  • लोड: यह ग्राफ़ दिखाता है कि दिए गए 1-मिनट के अंतराल पर आपके डेटाबेस का कितना उपयोग, प्रसंस्करण अनुरोधों में है। जैसे ही आपका डेटाबेस 100% तक पहुंचता है, आपको प्रदर्शन संबंधी समस्याएं दिखाई दे सकती हैं।

उपयोग का अनुकूलन करें

आपके डेटाबेस उपयोग और बैंडविड्थ लागतों को अनुकूलित करने के लिए आप कुछ सर्वोत्तम अभ्यासों को नियोजित कर सकते हैं।

  • मूल SDK का उपयोग करें: जब भी संभव हो, REST API के बजाय अपने ऐप के प्लेटफ़ॉर्म से संबंधित SDK का उपयोग करें। एसडीके खुले कनेक्शन बनाए रखते हैं, एसएसएल एन्क्रिप्शन लागत को कम करते हैं जो आम तौर पर आरईएसटी एपीआई के साथ जुड़ते हैं।
  • बग के लिए जाँच करें: यदि आपकी बैंडविड्थ लागत अप्रत्याशित रूप से अधिक है, तो सत्यापित करें कि आपका ऐप अधिक डेटा सिंक नहीं कर रहा है या मूल रूप से आपके इरादे से अधिक बार सिंक कर रहा है। समस्याओं को इंगित करने के लिए, अपने रीड ऑपरेशंस को मापने के लिए प्रोफाइलर टूल का उपयोग करें और एंड्रॉइड , ऑब्जेक्टिव-सी और वेब एसडीके में डीबग लॉगिंग चालू करें। यह सुनिश्चित करने के लिए कि सब कुछ आपके इच्छित तरीके से काम कर रहा है, अपने ऐप में पृष्ठभूमि और समन्वयन प्रक्रियाओं की जाँच करें।
  • कनेक्शन कम करें: यदि संभव हो, तो अपने कनेक्शन बैंडविड्थ को अनुकूलित करने का प्रयास करें। स्थानीय एसडीके का उपयोग करके लगातार, छोटे आरईएसटी अनुरोध एकल, निरंतर कनेक्शन से अधिक महंगा हो सकते हैं। यदि आप REST API का उपयोग करते हैं, तो HTTP कीप-अलाइव या सर्वर-भेजे गए ईवेंट का उपयोग करने पर विचार करें, जो SSL हैंडशेक की लागत को कम कर सकता है।
  • टीएलएस सत्र टिकट का उपयोग करें: टीएलएस सत्र टिकट जारी करके पुन: शुरू किए गए कनेक्शन पर एसएसएल एन्क्रिप्शन ओवरहेड लागत कम करें। यह विशेष रूप से सहायक होता है यदि आपको डेटाबेस से लगातार, सुरक्षित कनेक्शन की आवश्यकता होती है।
  • अनुक्रमणिका प्रश्न: आपके डेटा को अनुक्रमित करने से आपके द्वारा प्रश्नों के लिए उपयोग की जाने वाली कुल बैंडविड्थ कम हो जाती है, जिससे आपकी लागत कम करने और आपके डेटाबेस के प्रदर्शन को बढ़ाने का दोहरा लाभ होता है। अपने डेटाबेस में अनइंडेक्सेड प्रश्नों को खोजने के लिए प्रोफाइलर टूल का उपयोग करें।
  • अपने श्रोताओं को अनुकूलित करें: डेटा को सीमित करने के लिए प्रश्न जोड़ें, जो आपके सुनने के संचालन में वापस आते हैं और श्रोताओं का उपयोग करते हैं जो केवल डेटा के अपडेट डाउनलोड करते हैं - उदाहरण के लिए, once() on() के बजाय। इसके अतिरिक्त, अपने श्रोताओं को उनके द्वारा सिंक किए जाने वाले डेटा की मात्रा को सीमित करने के लिए जितना हो सके पथ के नीचे रखें।
  • भंडारण लागत कम करें: समय-समय पर सफाई कार्य करें और अपने डेटाबेस में किसी भी डुप्लिकेट डेटा को कम करें।
  • नियमों का प्रयोग करें: अपने डेटाबेस पर संभावित रूप से महंगा, अनधिकृत संचालन रोकें। उदाहरण के लिए, फायरबेस रीयलटाइम डेटाबेस नियम का उपयोग करने से ऐसे परिदृश्य से बचा जा सकता है जहां कोई दुर्भावनापूर्ण उपयोगकर्ता आपके संपूर्ण डेटाबेस को बार-बार डाउनलोड करता है। फायरबेस रीयलटाइम डेटाबेस नियमों का उपयोग करने के बारे में और जानें।

आपके ऐप के लिए सर्वोत्तम अनुकूलन योजना आपके विशेष उपयोग मामले पर निर्भर करती है। हालांकि यह सर्वोत्तम प्रथाओं की एक विस्तृत सूची नहीं है, आप हमारे स्लैक चैनल या स्टैक ओवरफ्लो पर फायरबेस विशेषज्ञों से अधिक सलाह और सुझाव प्राप्त कर सकते हैं।