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 örnek için, biz Kuzey Amerika çoklu bölge (özellikle için fiyatlandırma kullandığınız nam5 ).

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) kaba 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. Bkz aşağıdaki tabloya tipine göre belge büyüklükte bir dökümü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 ana hatlarıyla belirtilen en sık kullanıcı görevleri için işlemleri, kullanıcı ve mesaj depolamasını ve çıkışını 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ızı rehberlik için bu örneği kullanın, ancak bakın fiyatlandırma sayfa Bulut Firestore maliyetlerinin daha kapsamlı açıklamalar için.

Kullanıcı görev tarafından operasyonların bir dökümü için bkz kullanıcı görev ile Faturalandırılır kullanımını: Dağılımı bölümünde.

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 ÜCRETSİZ 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 ÜCRETSİZ yazma + (80K yazma 0.18/100K'da) = .8 * 0.18 $
0,14 USD / gün * 30 = 4,20 USD
Günlük toplam 100 bin silme = 20K ÜCRETSİZ silme + (0,02/100K $'dan 80K silme) = .8 * 0.02$
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 boş çıkış = SERBEST 1
15KB günlük mesaj saklama / DAU + 3KB depolama / install 2 = 45 KB depolama / DAU * 5K DAU = 225MB günlük depolama / DAU * 30 = 6.75 GB aylık depolama kullanımı
1 GB ÜCRETSİZ depolama alanı + (5,75 * 0,18 ABD doları) = 1,04 ABD doları / ay

Aylık ağ dışarı çıkması için 1 10GB Bulut Firestore için ücretsizdir.
Bizim varsayım Daus toplam uygulama yüklemelerine% 10'u olmasıdır yana 2, bu rakam uygulamayı yükleyen toplam kullanıcı sayısı oluşturuyor.

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 ÜCRETSİZ 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 ÜCRETSİZ yazma + (1,98M yazma 0,18/100K'da) = 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 ÜCRETSİZ silme + (1.98M silme, 0.02/100K $'dan) = 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 ÜCRETSİZ çıkış + (50 GB çıkış * 0,12 USD/GB) = Ayda 6,00 USD
15KB günlük mesaj saklama / DAU + 3KB depolama / install 1 = 45KB depolama / DAU * 100K DAU = 4,5 GB günlük depolama / DAU * 30 = 135 GB aylık depolama kullanımı
1 GB ÜCRETSİZ depolama alanı + (134 GB * 0,18 USD/GB) = 24,12 USD/ay

Bizim varsayım Daus toplam uygulama yüklemelerine% 10'u olmasıdır yana 1, bu rakam uygulamayı yükleyen toplam kullanıcı sayısı oluşturuyor.

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 ÜCRETSİZ okuma + (0,06$/100K'da 79,95 milyon okuma) = 799,5 * 0,06 ABD doları
47,97 $ / gün * 30 = 1439,10 $
Günlük toplam 20 milyon yazma = 20K ÜCRETSİZ yazma + (19.98M yazma 0.18/100K $'dan) = 199,8 * 0,18 ABD doları
35,96 USD / gün * 30 = 1078,80 USD
Günlük toplam 20 milyon silme = 20K ÜCRETSİZ silme + (19.98M silme, 0.02/100K $'dan) = 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 ÜCRETSİZ çıkış + (590 GB çıkış * 0,12 USD/GB) = 70,80 USD/ay
15KB günlük mesaj saklama / DAU + 3KB depolama / install 1 = 45KB depolama alanı / DAU * 1M DAU = 45 GB günlük depolama / DAU * 30 = 1350 GB aylık depolama kullanımı
(1 GB ÜCRETSİZ depolama alanı) + (1349 GB * 0,18 USD/GB) = Ayda 242,82 USD

Bizim varsayım Daus toplam uygulama yüklemelerine% 10'u olmasıdır yana 1, bu rakam uygulamayı yükleyen toplam kullanıcı sayısı oluşturuyor.

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 faturalandırılmış 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ında sohbetler -
    • messages/{messageId} - Bir sohbette 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 hesaplayarak ilgili daha fazla bilgi için bkz anlama depolama boyutu hesaplamaları .

Operasyonlar

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

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

  • Okur: (5 * 10) + (30) = 80 / kullanıcı / gün okur
  • Yazıyor: (10 * 2) = 20 yazıyor / kullanıcı / gün
  • Ağ Çıkışı: (50 * 0.25KB) + (30 * 0.25KB) = 20KB / user / gün
  • Depolama: (20 x 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 son mesajları görmek için ana ekrandan sohbet dizilerine tıklar ve ilk yüklemede en son 50 mesajı yükler.

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 varsayalım.

Bir yazma: Her gönderileceği mesajı iki belge yazıyor neden olacaktır messages sohbet subcollection ve güncellemek için sohbet ebeveyn belgeye bir yazma lastUpdated zaman damgası ve diğer meta.

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, depolaması 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 aşağıdaki ücretsiz hizmetleri göz önünde bulundurun:

  • Doğrudan istemci erişim: Bulut Firestore yerli SDK'ları kullanarak müşteri kodundan doğrudan 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: Bulut Firestore sizin veritabanına destek trafiğe otomatik ölçekler olduğundan, bir yük dengeleyici çalıştırmak gerekmez.
  • Sunucu çalışma süresi: Bulut Firestore veritabanları sunan Google Bulut sunucularında işletmek % 99 aylık çalışma süresi boyunca .
  • Kimlik doğrulama: Authenticate sınırsız kullanıcılar basit ve güvenli olan Firebase Kimlik Doğrulama . Firebase Authentication, doğrudan Cloud Firestore ile entegre olduğundan, kendi kimlik doğrulama hizmetinizi çalıştırmanız gerekmez.
  • İle Gönder mesajları ve bildirimleri: bildirimleri itin Cloud Messaging .
  • Diğer Firebase ürünler: A / B Testi, Analytics, Crashlytics, Performans İzleme, Tahminleri ve Uzaktan Config'de dahil olmak üzere diğer serbest Firebase ürünlerini entegre edin. Hakkında daha fazla bilgi diğer Firebase ürünler ve Firebase fiyatlandırma .