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

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

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

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

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

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

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

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

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

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

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

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