Gerçek Zamanlı Veritabanı Faturalandırmasını Anlayın

Firebase, veritabanınızda sakladığınız verileri ve OSI modelinin oturum katmanındaki (katman 5) tüm giden ağ trafiğini faturalandırır. Depolama, günlük olarak değerlendirilen her GB/ay için 5 ABD Doları olarak faturalandırılır. Faturalandırma, veritabanınızın konumundan etkilenmez. Giden trafik, tüm veritabanı işlemlerinden gelen bağlantı ve şifreleme ek yükünü ve veritabanı okumaları aracılığıyla indirilen verileri içerir. Hem veritabanı okuma hem de yazma işlemleri faturanızda bağlantı maliyetlerine yol açabilir. Güvenlik kuralları tarafından reddedilen işlemler de dahil olmak üzere veritabanınıza gelen ve giden tüm trafik faturalandırılabilir maliyetlere yol açar.

Faturalandırılmış trafiğin bazı yaygın örnekleri şunlardır:

  • Veri indirildi istemcileri veritabanı, indirilen veriler için Firebase ücretleri veri aldığınızda. Genellikle bu, bant genişliği maliyetlerinizin büyük bir kısmını oluşturur, ancak faturanızdaki tek faktör bu değildir.
  • Protokol havai: sunucu ve istemciler arasında bazı ek trafik kurmak ve bir oturum korumak için gereklidir. Temel protokole bağlı olarak, bu trafik şunları içerebilir: Firebase Realtime Database'in gerçek zamanlı protokol ek yükü, WebSocket ek yükü ve HTTP üstbilgi ek yükü. Her bağlantı kurulduğunda, bu ek yük, herhangi bir SSL şifreleme ek yüküyle birlikte bağlantı maliyetlerine katkıda bulunur. Bu, tek bir istek için çok fazla bant genişliği olmasa da, yükleriniz küçükse veya sık, kısa bağlantılar yapıyorsanız, faturanızın önemli bir parçası olabilir.
  • SSL şifrelemesi havai: güvenli bağlantılar için havai gerekli SSL şifreleme ile ilişkili bir masrafı yoktur. Ortalama olarak, bu maliyet ilk el sıkışma için yaklaşık 3,5 KB ve giden her mesajda TLS kayıt başlıkları için yaklaşık onlarca bayttır. Çoğu uygulama için bu, faturanızın küçük bir yüzdesidir. Ancak, özel durumunuz çok sayıda SSL anlaşması gerektiriyorsa, bu büyük bir yüzde olabilir. Örneğin, desteklemeyen cihazlar TLS oturumu bilet SSL bağlantı tokalaşmaların sayıda gerektirebilir.
  • Firebase konsol veriler: Bu Gerçek Zamanlı Veri Tabanı maliyetlerinin önemli bir kısmının genellikle olmasa da, veriler için Firebase ücretleri okumak ve Firebase konsolundan yazma söyledi.

Faturalandırılmış kullanımınızı tahmin edin

Mevcut Gerçek Zamanlı Veri Tabanı bağlantıları ve veri kullanımını görmek için kontrol Kullanımı Firebase konsolunda sekmesini. Mevcut fatura dönemi, son 30 gün veya son 24 saat üzerinden kullanımı kontrol edebilirsiniz.

Firebase, aşağıdaki ölçümler için kullanım istatistiklerini gösterir:

  • Bağlantılar: En veritabanına eşzamanlı, o anda açık, gerçek zamanlı bağlantı sayısı. Bu, şu gerçek zamanlı bağlantıları içerir: WebSocket, uzun yoklama ve HTML sunucusu tarafından gönderilen olaylar. RESTful istekleri içermez.
  • Depolama: veritabanınızda ne kadar veri saklanır. Buna Firebase barındırma veya diğer Firebase ürünleri aracılığıyla depolanan veriler dahil değildir.
  • İndirme: Tüm protokol ve şifreleme yükü de dahil olmak üzere veritabanından indirilen bayt.
  • Yük: veritabanınızın Bu grafik gösterir ne kadar belirli bir 1 dakikalık ara boyunca, isteği yerine getirmeden, kullanımda. Veritabanınız %100'e yaklaştıkça performans sorunları görebilirsiniz.

Kullanımı optimize edin

Veritabanı kullanımınızı ve bant genişliği maliyetlerinizi optimize etmek için kullanabileceğiniz birkaç en iyi uygulama vardır.

  • Yerli SDK'larını kullanın: Mümkün olduğunca, SDK'larımızı kullanmanızı uygulamanızın platformuna tekabül yerine REST API. SDK'lar açık bağlantıları sürdürerek, tipik olarak REST API ile toplanan SSL şifreleme maliyetlerini azaltır.
  • Hatalar için kontrol edin: bant genişliği maliyetleri beklenmedik yüksek olursa, uygulama daha fazla veri senkronizasyonu veya daha sık başlangıçta öngörülenden daha senkronize olmadığını kontrol edin. Belirlemekte konular için kullanmak profilci aracını sizin okuma işlemleri ölçmek ve hata ayıklama günlüğü açmak için Android , iOS ve Web SDK'larından. Her şeyin istediğiniz gibi çalıştığından emin olmak için uygulamanızdaki arka planı kontrol edin ve işlemleri senkronize edin.
  • Bağlantıları azaltın: Eğer mümkünse, bağlantı bant genişliğini optimize etmek deneyin. Sık, küçük REST istekleri, yerel SDK'yı kullanan tek bir sürekli bağlantıdan daha maliyetli olabilir. REST API kullanmak yaparsanız, bir HTTP canlı tutma veya kullanmayı düşünün sunucu gönderilen olaylar SSL el sıkışma gelen maliyetlerini azaltabilir.
  • TLS oturumu biletleri: düzenlenmek suretiyle yeniden bağlantılarda SSL şifreleme havai maliyetlerini azaltın TLS oturumu biletleri . Bu, özellikle veritabanına sık, güvenli bağlantılara ihtiyacınız varsa yararlıdır.
  • Dizin sorguları: Verilerinizi Endeksleme maliyetleri düşürmek ve veritabanının performansını artırma çift menfaat Eğer sorguları için kullanmak toplam bant genişliğini azaltır. İçin profilci aracını kullanın Sıralanmayan sorguları bulmak veritabanınızda.
  • İşleyicilerinizi optimize edin: sizi dinlemesini işlemleri söz konusu verinin sadece indirme güncellemeleri dönmek ve kullanım dinleyiciler bu verileri sınırlamak için sorgular ekleyin - örneğin, on() yerine once() . Ek olarak, eşitledikleri veri miktarını sınırlamak için dinleyicilerinizi yolun olabildiğince aşağısına yerleştirin.
  • Depolama maliyetlerini düşürün: Run periyodik temizleme işleri ve veritabanındaki herhangi yinelenen verileri azaltır.
  • Kullanım Kuralları: önle sizin veritabanı üzerinde herhangi olası masraflı, yetkisiz işlemler. Örneğin, Firebase Gerçek Zamanlı Veritabanı Kurallarının kullanılması, kötü niyetli bir kullanıcının tüm veritabanınızı tekrar tekrar indirdiği bir senaryoyu önleyebilir. Hakkında daha fazla bilgi Firebase Gerçek Zamanlı Veri Tabanı Kuralları kullanmıyor .

Uygulamanız için en iyi optimizasyon planı, özel kullanım durumunuza bağlıdır. Bu en iyi uygulamaların bir liste olmasa da, bizim üzerinde Firebase uzmanlarından daha fazla tavsiye ve ipuçları bulabilirsiniz Gevşek kanalı veya üzerinde yığın taşması .