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:

  • İndirilen veriler: İstemciler veritabanınızdan veri aldığında, Firebase indirilen veriler için ücret alır. 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 ek yükü: Bir oturum oluşturmak ve sürdürmek için sunucu ve istemciler arasında bazı ek trafik 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 şifreleme ek yükü: Güvenli bağlantılar için gerekli olan SSL şifreleme ek yüküyle ilişkili bir maliyet vardır. 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, TLS oturum biletlerini desteklemeyen cihazlar, çok sayıda SSL bağlantısı anlaşması gerektirebilir.
  • Firebase konsol verileri: Bu genellikle Gerçek Zamanlı Veritabanı maliyetlerinin önemli bir kısmı olmasa da, Firebase, Firebase konsolundan okuyup yazdığınız veriler için ücret alır.

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

Mevcut Gerçek Zamanlı Veritabanı bağlantılarınızı ve veri kullanımınızı görmek için Firebase konsolundaki Kullanım sekmesini kontrol edin. 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: Veritabanınıza eşzamanlı, şu anda açık, gerçek zamanlı bağlantıların 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 depolanır. Buna Firebase barındırma veya diğer Firebase ürünleri aracılığıyla depolanan veriler dahil değildir.
  • İndirilenler: Protokol ve şifreleme yükü dahil, veritabanınızdan indirilen tüm baytlar.
  • Yük: Bu grafik, veri tabanınızın ne kadarının kullanımda olduğunu ve belirli bir 1 dakikalık aralıkta isteklerin işlendiğini gösterir. 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.

  • Yerel SDK'ları kullanın: Mümkün olduğunda, REST API yerine uygulamanızın platformuna karşılık gelen SDK'ları kullanın. SDK'lar açık bağlantıları sürdürerek, tipik olarak REST API ile toplanan SSL şifreleme maliyetlerini azaltır.
  • Hataları kontrol edin: Bant genişliği maliyetleriniz beklenmedik bir şekilde yüksekse, uygulamanızın başlangıçta amaçladığınızdan daha fazla veri veya daha sık eşitleme yapmadığını doğrulayın. Sorunları tam olarak belirlemek için okuma işlemlerinizi ölçmek ve Android , Objective-C ve Web SDK'larında hata ayıklama günlüğünü açmak için profil oluşturucu aracını kullanın. 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: Mümkünse bağlantı bant genişliğinizi optimize etmeye çalışın. Sık, küçük REST istekleri, yerel SDK'yı kullanan tek bir sürekli bağlantıdan daha maliyetli olabilir. REST API kullanıyorsanız, SSL anlaşmalarından kaynaklanan maliyetleri azaltabilecek bir HTTP canlı tutma veya sunucu tarafından gönderilen olaylar kullanmayı düşünün.
  • TLS oturum biletleri kullan: TLS oturum biletleri düzenleyerek devam ettirilen bağlantılarda SSL şifreleme ek masraflarını azaltın. Bu, özellikle veritabanına sık, güvenli bağlantılara ihtiyacınız varsa yararlıdır.
  • Dizin sorguları: Verilerinizi dizine eklemek, sorgular için kullandığınız toplam bant genişliğini azaltır, bu da maliyetlerinizi düşürmenin ve veritabanınızın performansını artırmanın iki avantajına sahiptir. Veritabanınızda dizine eklenmemiş sorguları bulmak için profil oluşturucu aracını kullanın.
  • Dinleyicilerinizi optimize edin: Dinleme işlemlerinizin döndürdüğü verileri sınırlamak için sorgular ekleyin ve yalnızca verilere güncellemeleri indiren dinleyicileri kullanın - örneğin, once() on() ) . Ek olarak, eşitledikleri veri miktarını sınırlamak için dinleyicilerinizi yolun olabildiğince aşağısına yerleştirin.
  • Depolama maliyetlerini azaltın: Periyodik temizleme işleri çalıştırın ve veritabanınızdaki yinelenen verileri azaltın.
  • Kullanım Kuralları: Veritabanınızda potansiyel olarak maliyetli, yetkisiz işlemleri önleyin. Ö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. Firebase Gerçek Zamanlı Veritabanı Kurallarını kullanma hakkında daha fazla bilgi edinin.

Uygulamanız için en iyi optimizasyon planı, özel kullanım durumunuza bağlıdır. Bu, en iyi uygulamaların kapsamlı bir listesi olmasa da, Slack kanalımızda veya Yığın Taşması'nda Firebase uzmanlarından daha fazla tavsiye ve ipucu bulabilirsiniz.