Check out what’s new from Firebase at Google I/O 2022. Learn more

Cloud Firestore fiyatlandırma örneğine bakın

Cloud Firestore kullanımınızı ve maliyetlerinizi ölçmek için bu gerçek dünyadaki temel sohbet uygulaması örneğini kullanın. Bu kesin bir tahmin değildir, ancak Cloud Firestore kullanımınızın nasıl faturalandırıldığını daha iyi anlamanıza yardımcı olabilir.

Genel Bakış: Kullanım düzeyine göre maliyetler

Tipik maliyetleri göstermek için, kullanıcıların iki veya daha fazla katılımcıyla sohbet başlatabileceği örnek bir sohbet uygulamasını düşünün. Kullanıcılar aktif sohbetlerini bir listede görebilir, mesajları okuyabilir ve mesaj gönderebilir. Bu örnekte, Kuzey Amerika çoklu bölgesi (özellikle nam5 ) için fiyatlandırma kullanıyoruz.

varsayımlar

Kullanım ve veri depolama ile ilgili aşağıdaki varsayımları göz önünde bulundurun:

  • Günlük Aktif Kullanıcılar (DAU'lar), toplam uygulama yüklemelerinin %10'udur. Günlük Aktif Kullanıcılarınızın (DAU'lar) kabaca bir tahminini kullanarak günlük maliyetlerinizi tahmin edebilirsiniz. Bunlar, genellikle toplam uygulama yüklemelerinizin küçük bir alt kümesi olan belirli bir günde uygulamanızı aktif olarak açan ve kullanan kullanıcılardır. Aşağıdaki hesaplamalar için DAU'ları toplam uygulama yükleme sayısının %10'u olarak tahmin ettik.
  • Belge boyutları nispeten küçüktür. Belge boyutunun türe göre dökümü için aşağıdaki tabloya bakın .
  • Veriler yalnızca üç ay süreyle saklanır. Örnek sohbet uygulamasındaki mesajlar yalnızca üç aylık bir süre boyunca saklanır. Silme işlemlerini hesaba katmak için aşağıdaki hesaplamalar, her günlük yazma için günlük bir silme gösterir.
  • Bu maliyet tahminleri, örnek uygulamanın maliyetlerinin çoğunu yansıtır, ancak hepsini yansıtmaz. Bu kılavuzda özetlenen en sık kullanıcı görevleri için işlemleri, kullanıcı ve mesaj depolamasını ve çıkışı hesaplayarak bir uygulamanın maliyetlerinin büyük kısmını hesaba kattık. Ancak, uygulamanızın yapısına ve veri gereksinimlerine bağlı olarak ek maliyetleri hesaba katmanız gerekebilir. Hesaplamalarınıza rehberlik etmesi için bu örneği kullanın, ancak Cloud Firestore maliyetlerinin daha kapsamlı açıklamaları için fiyatlandırma sayfasına bakın.

İşlemlerin kullanıcı görevine göre dökümü için, Döküm: Kullanıcı görevine göre faturalanan kullanım bölümüne bakın.

Küçük
(50k yükleme)

50.000 uygulama yüklemesi için (5.000 Günlük Aktif Kullanıcı): Ayda 12,14 ABD doları

Okuma/Yazma Maliyetleri
Toplam aylık maliyet = 11,10 ABD doları/ay
400K toplam günlük okuma = 50K Maliyetsiz okuma + (0,06$/100K değerinde 350K okuma) = 3,5 * 0,06 ABD doları
0,21 ABD doları / gün * 30 = 6,30 ABD doları
100K toplam günlük yazma = 20K Maliyetsiz yazma + (80K yazma 0,18 USD/100K'dan) = .8 * 0.18 $
0,14 USD / gün * 30 = 4,20 USD
Günlük toplam 100 bin silme = 20K Ücretsiz silme + (0,02/100K $'dan 80K silme) = 0,8 * 0,02 ABD doları
0,02 USD / gün * 30 = 0,60 USD
Depolama/Ağ Maliyetleri
Toplam aylık maliyet = 1,04$/ay
20KB / DAU günlük çıkış * 5K DAU = 100 MB günlük çıkış * 30 = 3 GB aylık ağ çıkışı
3 GB Ücretsiz çıkış = Ücretsiz 1
15KB günlük mesaj depolama / DAU + 3KB depolama / kurulum 2 = 45 KB depolama / DAU * 5K DAU = 225MB günlük depolama / DAU * 30 = 6.75 GB aylık depolama kullanımı
1 GB Ücretsiz depolama + (5,75 * 0,18 ABD doları) = 1,04 ABD doları / ay

1 10 GB aylık ağ çıkışı Cloud Firestore için ücretsizdir.
2 Bizim varsayımımız DAU'ların toplam uygulama yüklemelerinin %10'u olduğu olduğundan, bu sayı uygulamanızı yükleyen toplam kullanıcı sayısını ifade eder.

Orta
(1 milyon yükleme)

1.000.000 uygulama yüklemesi (100.000 Günlük Aktif Kullanıcı): Ayda 292,02 ABD Doları

Okuma/Yazma Maliyetleri
Toplam aylık maliyet = 261,90$/ay
8 milyon toplam günlük okuma = 50K Ücretsiz okuma + (0,06$/100K değerinde 7,95 milyon okuma) = 79,5 * 0,06 ABD doları
4,77 USD / gün * 30 = 143,10 USD
2 milyon toplam günlük yazma = 20K Maliyetsiz yazma + (1.98M yazma 0.18/100K $'dan) = 19,8 * 0,18 ABD doları
3,56 ABD doları / gün * 30 = 106,80 ABD doları
Günlük toplam 2 milyon silme = 20K Ücretsiz silme + (1,98 milyon silme 0,02/100 bin dolardan) = 19,8 * 0,02 USD
0,40 USD / gün * 30 = 12,00 USD
Depolama/Ağ Maliyetleri
Toplam aylık maliyet = 30,12 ABD doları/ay
20KB / DAU günlük çıkış * 100K DAU = 2 GB günlük çıkış * 30 = 60 GB aylık ağ çıkışı
10 GB Ücretsiz çıkış + (50 GB çıkış * 0,12 USD/GB) = Ayda 6,00 USD
15KB günlük mesaj depolama / DAU + 3KB depolama / yükleme 1 = 45KB depolama / DAU * 100K DAU = 4,5 GB günlük depolama / DAU * 30 = 135 GB aylık depolama kullanımı
1 GB Ücretsiz depolama + (134 GB * 0,18 USD/GB) = 24,12 USD/ay

1 Bizim varsayımımız DAU'ların toplam uygulama yüklemelerinin %10'u olduğu olduğundan, bu sayı uygulamanızı yükleyen toplam kullanıcı sayısını ifade eder.

Büyük
(10 milyon yükleme)

10.000.000 uygulama yüklemesi (1.000.000 Günlük Aktif Kullanıcı): 2951,52 ABD Doları

Okuma/Yazma Maliyetleri
Toplam aylık maliyet = Toplam: 2637,90 ABD doları/ay
80 milyon toplam günlük okuma = 50K Ücretsiz okuma + (0,06 $/100K'da 79,95 milyon okuma) = 799,5 * 0,06 ABD doları
47,97 $ / gün * 30 = 1439,10 $
20 milyon toplam günlük yazma = 20K Maliyetsiz yazma + (19.98M yazma 0.18/100K $'dan) = 199,8 * 0,18 USD
35,96 USD / gün * 30 = 1078,80 USD
Günlük toplam 20 milyon silme = 20K Ücretsiz silme + (19,98 milyon silme 0,02/100 bin dolardan) = 199,8 * 0,02 USD
4,00 USD / gün * 30 = 120,00 USD
Depolama/Ağ Maliyetleri
Toplam aylık maliyet = 313,62 $/ay
20KB / DAU günlük çıkış * 1M DAU = 20 GB günlük çıkış * 30 = 600 GB aylık ağ çıkışı
10 GB Ücretsiz çıkış + (590 GB çıkış * 0,12 USD/GB) = 70,80 USD/ay
15KB günlük mesaj depolama / DAU + 3KB depolama / yükleme 1 = 45KB depolama alanı / DAU * 1M DAU = 45 GB günlük depolama / DAU * 30 = 1350 GB aylık depolama kullanımı
(1 GB Ücretsiz depolama alanı) + (1349 GB * 0,18 USD/GB) = Ayda 242,82 USD

1 Bizim varsayımımız DAU'ların toplam uygulama yüklemelerinin %10'u olduğu olduğundan, bu sayı uygulamanızı yükleyen toplam kullanıcı sayısını ifade eder.

Cloud Firestore faturalandırma modelinin dikkate değer bir avantajı, yalnızca kullandığınız kadar ödeme yapmanızdır. Sonuç olarak, faturanız DAU sayınızla birlikte büyüyebilir ve küçülebilir.

Döküm: Kullanıcı görevine göre faturalanan kullanım

Örnek sohbet uygulamamız için veri yapısı aşağıdaki gibidir:

  • users/{userId} — Kullanıcı kayıtları
  • groups/{groupId} — 2 veya daha fazla kullanıcı arasındaki sohbetler
    • messages/{messageId} — Bir sohbetteki her mesaj.

Veri depolama

Uygulamanın verilerini depolamak için depolama maliyetlerini hesaplamak için belge boyutlarıyla ilgili aşağıdaki varsayımları uygulayın:

Toplamak Belge Boyutu (taşıma sırasında) Belge Boyutu (diskte)*
kullanıcılar 1KB 3KB
gruplar 0,5 KB 1.5KB
mesajlar 0.25KB 0.75KB

*Bu boyut hesaplaması, mesaj alanları için dizinleri içerir, ancak mesaj içeriği için dizin oluşturmanın devre dışı bırakıldığını varsayar.

Uygulama ayrıca depolama maliyetlerini düşürmek için yalnızca üç aya kadar olan mesajları da saklar.

Depolama maliyetlerini hesaplama hakkında daha fazla bilgi için bkz. Depolama boyutu hesaplamalarını anlama .

Operasyonlar

Kullanıcılar genellikle uygulamada aşağıdaki genel görevleri tamamlar:

  • Sohbet listesine bakın: Kullanıcılar uygulamanın ana ekranını açar ve gönderilen en son mesaja göre sıralanmış sohbetlerin (grup ve doğrudan) bir listesini görür.
  • Sohbetteki mesajları oku: Kullanıcılar ana ekrandan sohbetleri seçer ve sohbetlerdeki son mesajları okur.
  • Sohbete mesaj gönder: Kullanıcılar sohbetlere mesaj gönderir (grup veya doğrudan).

Örnek uygulamanın üç tipik kullanıcı görevi için Cloud Firestore'daki toplam tahmini işlemleri aşağıdaki gibidir:

  • Okuma: (5 * 10) + (30) = 80 okuma / kullanıcı / gün
  • Yazma: (10 * 2) = 20 yazma / kullanıcı / gün
  • Ağ Çıkışı : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB / kullanıcı / gün
  • Depolama : (20 * 0.75KB) = 15 KB / kullanıcı / gün

Kullanıcı görevine göre toplam kullanım

Uygulamadaki işlemlerin, depolamanın ve ağ oluşturma maliyetlerinin tam açıklamasını ve dökümünü görmek için her bir kullanıcı görevini seçin.

Sohbet listesine bakın

Uygulamanın ana ekranı, en son 25 sohbeti yükler ve 25 belge okuması ücrete tabidir. Etkin bir kullanıcının uygulamayı günde 5 kez açtığını ve her gün kullanıcı başına toplam 125 kez okunduğunu varsayalım. Ancak, aşağıdaki örnekte olduğu gibi daha verimli sorgular bu yükü azaltabilir.

Aşağıdaki örnekte, uygulama tarafından depolanan her başarılı getirmenin zaman damgasını kullanarak sorguyu yeni sohbetlerle sınırlandırıyoruz:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Kullanıcı uygulamayı her kontrol ettiğinde ortalama 10 güncellenmiş sohbet olduğunu varsayalım. Bu sorgu yalnızca 10 belge okumasına neden olur.

Sohbette mesajları oku

Kullanıcılar, ilk yüklemede en son 50 mesajı yükleyerek son mesajları görmek için ana ekrandan sohbet dizilerine tıklar.

Tipik bir kullanıcının bu eylemi günde 5 kez (ana ekranı her açtıklarında bir kez) gerçekleştirdiğini ve her gün kullanıcı başına toplam 250 okuma gerçekleştirdiğini varsayalım. Ayrıca sorgumuzu son getirme zamanından bu yana yeni mesajlarla sınırlayabiliriz:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Bir kullanıcının tüm sohbetlerde günde yaklaşık 30 mesaj aldığını varsayalım. Sorguyu yeni iletileri alacak şekilde sınırladığınızdan, bu, günde yalnızca 30 alınan ileti anlamına gelir.

sohbete mesaj gönder

Kullanıcılar, sohbete girdikten sonra diğer katılımcılara mesaj gönderebilir. Aktif bir kullanıcının günde yaklaşık 10 mesaj gönderdiğini varsayın.

Gönderilen her mesaj iki belge yazmaya neden olur: biri sohbetin messages alt koleksiyonuna yazılır ve diğeri son Güncelleme zaman damgasını ve diğer meta verileri güncellemek için sohbet üst belgesine lastUpdated .

Bu mesajları okuma maliyetinin diğer yolculuklarda hesaba katıldığını unutmayın, bu nedenle aşağıdaki toplamlar yalnızca bu yazma maliyetini dikkate alır.

Dahil edilen avantajlar: Uygulamanız için ücretsiz hizmetler

Cloud Firestore işlemleri, depolama ve ağ bant genişliğinin tümü faturalanabilir kullanım olarak kabul edilse de, ek ücret ödemeden çeşitli başka avantajlar da elde edersiniz. Cloud Firestore'u diğer veritabanı seçenekleriyle karşılaştırırken ücretsiz olan aşağıdaki hizmetleri göz önünde bulundurun:

  • Doğrudan müşteri erişimi: Cloud Firestore'a, yerel SDK'larımızı kullanarak doğrudan müşteri kodunuzdan erişilir. Bu, mobil istemcilerinizi veritabanına bağlamak için bir API sunucusu oluşturmanız ve çalıştırmanız gerekmediği anlamına gelir.
  • Yük dengeleme: Cloud Firestore, veritabanınıza gelen trafiği desteklemek için otomatik olarak ölçeklendiğinden, bir yük dengeleyici çalıştırmanız gerekmez.
  • Sunucu çalışma süresi: Cloud Firestore veritabanları, Google Cloud sunucularında çalışır ve aylık %99'un üzerinde çalışma süresi sunar.
  • Kimlik Doğrulama: Firebase Kimlik Doğrulama ile sınırsız kullanıcının kimliğini basit ve güvenli bir şekilde doğrulayın. Firebase Authentication, doğrudan Cloud Firestore ile entegre olduğundan, kendi kimlik doğrulama hizmetinizi çalıştırmanız gerekmez.
  • Anında iletme bildirimleri: Bulut Mesajlaşma ile mesajlar ve bildirimler gönderin.
  • Diğer Firebase ürünleri: A/B Testi, Analytics, Crashlytics, Performance Monitoring ve Remote Config dahil olmak üzere diğer Firebase ürünlerini ücretsiz olarak entegre edin. Diğer Firebase ürünleri ve Firebase fiyatlandırması hakkında daha fazla bilgi edinin.