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

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

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

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

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

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

Firebase निम्न मीट्रिक के उपयोग के आंकड़े दिखाता है:

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

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

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

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

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