Cloud Firestore fiyatlandırma örneğini inceleyin

Cloud Firestore kullanımınızı ve maliyetlerinizi ölçmek için temel bir sohbet uygulamasıyla ilgili bu gerçek dünya örneğini kullanın. Bu, kesin bir tahmin olmasa da 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şlatabildiği bir sohbet uygulaması örneğini ele alalım. Kullanıcılar, etkin sohbetlerini listede görebilir, iletileri okuyabilir ve ileti 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 etkin kullanıcı sayısı (GEKS), toplam uygulama yüklemelerinin% 10'u. Günlük etkin kullanıcı (GEKS) sayınızla ilgili kabaca bir tahminde bulunarak günlük maliyetlerinizi tahmin edebilirsiniz. Bunlar, uygulamanızı belirli bir günde etkin bir şekilde açıp kullanan kullanıcılardır. Bu kullanıcılar genellikle toplam uygulama yüklemelerinizin küçük bir alt kümesidir. Aşağıdaki hesaplamalar için günlük aktif kullanıcı sayısını, 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 boyunca saklanır. Örnek sohbet uygulamasındaki mesajlar yalnızca üç ay boyunca saklanır. Silme işlemlerini hesaba katmak için aşağıdaki hesaplamalarda her günlük yazma işlemi için günlük silme işlemi gösterilmektedir.
  • Bu maliyet tahminleri, örnek uygulamanın maliyetlerinin büyük bir kısmını yansıtır ancak tamamını değil. Bu kılavuzda belirtilen en sık kullanılan kullanıcı görevleri için işlemleri, kullanıcı ve mesaj depolama alanını ve çıkışı hesaplayarak bir uygulamanın maliyetlerinin büyük bir kısmını hesaba kattık. Ancak uygulamanızın yapısına ve veri ihtiyaçlarına bağlı olarak ek maliyetleri de göz önünde bulundurmanız gerekebilir. Hesaplamalarınızda yol göstermesi için bu örnekten yararlanın ancak Cloud Firestore maliyetleriyle ilgili daha ayrıntılı açıklamalar için fiyatlandırma sayfasına bakın.

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

Küçük
(50.000 yükleme)

50.000 uygulama yüklemesi (5.000 günlük etkin kullanıcı) için: 12,14 ABD doları/ay

Okuma/Yazma Maliyetleri
Toplam aylık maliyet = 11,10 ABD doları/ay
Toplam 400 bin günlük okuma =   50.000 ücretsiz okuma + (100.000 okuma başına 0,06 ABD doları üzerinden 350.000 okuma) =   3,5 * 0,06 ABD doları
0,21 ABD doları / gün * 30 = 6,30 ABD doları
 
Günde toplam 100.000 yazma işlemi =   20.000 ücretsiz yazma işlemi + (100.000 yazma işlemi başına 0,18 ABD doları karşılığında 80.000 yazma işlemi) =   0,8 * 0,18 ABD doları
0,14 ABD doları / gün * 30 = 4,20 ABD doları
 
Toplam günlük silme sayısı: 100.000 =   20.000 ücretsiz silme işlemi + (100.000 başına 0,02 ABD doları karşılığında 80.000 silme işlemi) =   0,8 * 0,02 ABD doları
0,02 ABD doları / gün * 30 = 0,60 ABD doları
Depolama/Ağ Maliyetleri
Aylık toplam maliyet = 1,04 ABD doları/ay
Günlük çıkışın 20 KB / GEKS * 5.000 GEKS =   Günlük 100 MB çıkış * 30 =   Aylık 3 GB ağ çıkışı
3 GB ücretsiz çıkış = Ücretsiz1
 
Günlük 15 KB mesaj depolama alanı / GEKS + 3 KB depolama alanı / yükleme2 =   45 KB depolama alanı / GEKS * 5.000 GEKS =   225 MB günlük depolama alanı / GEKS * 30 =   Aylık 6,75 GB depolama alanı kullanımı
1 GB ücretsiz depolama alanı + (5,75 * 0,18 ABD doları) = 1,04 ABD doları / ay

1 Aylık 10 GB ağ çıkışı Cloud Firestore için ücretsizdir.
2 Günlük aktif kullanıcıların, toplam uygulama yüklemelerinin% 10'u olduğu varsayıldığından 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 etkin kullanıcı) için: 292,02 ABD doları/ay

Okuma/Yazma Maliyetleri
Aylık toplam maliyet = ayda 261,90 ABD doları
Günde toplam 8 milyon okuma =   50.000 ücretsiz okuma + (100.000 okuma başına 0,06 ABD doları karşılığında 7,95 milyon okuma) =   79,5 * 0,06 ABD doları
4,77 ABD doları / gün * 30 = 143,10 ABD doları
 
Günde toplam 2 milyon yazma işlemi =   20.000 ücretsiz yazma + (100.000 yazma başına 0,18 ABD doları karşılığında 1,98 milyon yazma) =   19,8 * 0,18 ABD doları
3,56 ABD doları / gün * 30 = 106,80 ABD doları
 
Günde toplam 2 milyon silme işlemi =   20.000 ücretsiz silme işlemi + (1,98 milyon silme işlemi için 0,02 ABD doları/100.000) =   19,8 * 0,02 ABD doları
0,40 ABD doları / gün * 30 = 12,00 ABD doları
Depolama/Ağ Maliyetleri
Toplam aylık maliyet = 30,12 ABD doları/ay
Günlük çıkışın 20 KB / GEKS * 100 bin GEKS =   Günlük 2 GB çıkış * 30 =   Aylık 60 GB ağ çıkışı
10 GB ücretsiz çıkış + (50 GB çıkış * 0,12 ABD doları/GB) = 6,00 ABD doları / ay
 
15 KB günlük mesaj depolama alanı / GEKS + 3 KB depolama alanı / yükleme1 =   45 KB depolama alanı / GEKS * 100 bin GEKS =   4,5 GB günlük depolama alanı / günlük etkin kullanıcı sayısı * 30 =   Aylık 135 GB depolama alanı kullanımı
1 GB ücretsiz depolama alanı + (134 GB * 0,18 ABD doları/GB) = 24,12 ABD doları / ay

1 GEKS'nin toplam uygulama yüklemelerinin% 10'u olduğunu varsaydığımız için 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 etkin kullanıcı) için: 2.951,52 ABD doları

Okuma/Yazma Maliyetleri
Toplam aylık maliyet = Toplam: 2.637,90 ABD doları/ay
Günde toplam 80 milyon okuma =   50.000 ücretsiz okuma + (100.000 okuma başına 0,06 ABD doları üzerinden 79,95 milyon okuma) =   799,5 * 0,06 ABD doları
47,97 ABD doları / gün * 30 = 1.439,10 ABD doları
 
Günde toplam 20 milyon yazma işlemi =   20.000 ücretsiz yazma işlemi + (100.000 yazma işlemi başına 0,18 ABD doları üzerinden 19,98 milyon yazma işlemi) =   199,8 * 0,18 ABD doları
35,96 ABD doları / gün * 30 = 1.078,80 ABD doları
 
Toplam günlük silme sayısı: 20 milyon =   20.000 ücretsiz silme işlemi + (19,98 milyon silme işlemi için 0,02 ABD doları/100.000) =   199,8 * 0,02 ABD doları
4,00 ABD doları / gün * 30 = 120,00 ABD doları
Depolama/Ağ Maliyetleri
Toplam aylık maliyet = 313,62 ABD doları/ay
Günlük çıkış için 20 KB / GEKS * 1 milyon GEKS =   Günlük 20 GB çıkış * 30 =   Aylık 600 GB ağ çıkışı
10 GB ücretsiz çıkış + (590 GB çıkış * 0,12 ABD doları/GB) = 70,80 ABD doları / ay
 
15 KB günlük mesaj depolama alanı / GEKS + 3 KB depolama alanı / yükleme1 =   45 KB depolama alanı / GEKS * 1 milyon GEKS =   45 GB günlük depolama alanı / günlük etkin kullanıcı sayısı * 30 =   Aylık 1.350 GB depolama alanı kullanımı
(1 GB ücretsiz depolama) + (1.349 GB * 0,18 ABD doları/GB) = 242,82 ABD doları / ay

1 GEKS'nin toplam uygulama yüklemelerinin% 10'u olduğunu varsaydığımız için bu sayı, uygulamanızı yükleyen toplam kullanıcı sayısını ifade eder.

Cloud Firestore faturalandırma modelinin dikkate alınması gereken bir avantajı, yalnızca kullandığınız kadar ödeme yapmanızdır. Bu nedenle, faturanız günlük etkin kullanıcı sayınıza göre artabilir veya azalabilir.

Döküm: Kullanıcı görevine göre faturalandırılan kullanım

Örnek sohbet uygulamamızdaki veri yapısı şu şekildedir:

  • 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

Uygulama verilerinin depolanmasıyla ilgili depolama maliyetlerini hesaplamak için belge boyutlarıyla ilgili aşağıdaki varsayımları uygulayın:

Toplama Belge boyutu (aktarım sırasında) Belge boyutu (disk üzerinde)*
kullanıcılar 1KB 3KB
groups 0,5 KB 1,5 KB
mesajlar 0,25 KB 0,75 KB

*Bu boyut hesaplaması, ileti alanlarının dizinlerini içerir ancak ileti içeriği için dizine eklemenin devre dışı bırakıldığını varsayar.

Uygulama, depolama maliyetlerini düşürmek için yalnızca üç aya kadar eski mesajları saklar.

Depolama maliyetlerini hesaplama hakkında daha fazla bilgi için Depolama alanı boyutu hesaplamalarını anlama başlıklı makaleyi inceleyin.

İşlemler

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

  • Sohbet listesini görme: Kullanıcılar uygulamanın ana ekranını açtığında, gönderilen en son mesaja göre sıralanmış sohbetlerin (grup ve doğrudan) listesini görür.
  • Sohbetteki mesajları okuma: Kullanıcılar ana ekrandan sohbetleri seçip sohbetlerdeki son mesajları okur.
  • Sohbete mesaj gönderme: Kullanıcılar sohbetlere (grup veya doğrudan) mesaj gönderir.

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

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

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

Uygulamadaki işlemlerin, depolama alanının ve ağ iletişimi maliyetlerinin tam açıklamasını ve dökümünü görmek için her kullanıcı görevini seçin.

Sohbet listesini görme

Uygulamanın ana ekranında en son 25 sohbet yüklenir ve 25 belge okuma ücreti alınır. Etkin bir kullanıcının uygulamayı günde 5 kez açtığını ve böylece her kullanıcı için günde toplam 125 okuma yapıldığını varsayalım. Ancak aşağıdaki örnekteki gibi daha verimli sorgular bu yükü azaltabilir.

Aşağıdaki örnekte, uygulamada depolanan her başarılı getirme işleminin zaman damgasını kullanarak sorguyu yeni sohbetlerle sınırlı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 doküman okuma işlemiyle sonuçlanır.

Sohbetteki mesajları okuma

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

Tipik bir kullanıcının bu işlemi günde 5 kez (ana ekranı her açtığında bir kez) yaptığını varsayarsak bu, kullanıcı başına günde toplam 250 okuma anlamına gelir. Sorgumuzu son getirme işleminden sonraki yeni iletilerle de 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 getirecek şekilde sınırladığınız için bu, günde yalnızca 30 iletinin alınması anlamına gelir.

Bir sohbete mesaj gönderme

Kullanıcılar, sohbete katıldıktan sonra diğer katılımcılara mesaj gönderebilir. Etkin bir kullanıcının günde yaklaşık 10 mesaj gönderdiğini varsayalım.

Gönderilen her mesaj, iki belge yazma işlemine neden olur: biri sohbetin messages alt koleksiyonuna yazma, diğeri ise lastUpdated zaman damgasını ve diğer meta verileri güncellemek için sohbetin üst dokümanına yazma.

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.

Yönetici görevleri için faturalandırılan kullanım

Uygulama sahibi veya yöneticisi olarak, uygulamanızın verilerinden rapor oluşturmak isteyebilirsiniz. Örneğin, kullanıcılarınızın gönderdiği ileti sayısının günlük olarak takip edilmesini isteyebilirsiniz. Bu işlemi, messages koleksiyon grubunun count() toplama işlemiyle gerçekleştirebilirsiniz.

count() gibi toplama sorgularında, sorguyla eşleşen en fazla 1.000 dizin girişi içeren her grup için bir belge okuması ücreti alınır. Bu günlük toplama işleminin çalıştırılması aşağıdaki aylık ücretleri ekler:

Küçük
(50.000 yükleme)

50.000 uygulama yüklemesi (5.000 GEKS) için: 0,0009 ABD doları/ay

5.000 etkin kullanıcı * kullanıcı başına 10 yeni ileti = günde 50.000 yeni ileti belgesi

50.000 belge / okuma ücreti başına 1.000 dizin eşleşmesi = 50 okuma

Günde 50 okuma * 30 gün = ayda 1.500 okuma

Ayda 1.500 okuma * 0,06 ABD doları/100.000 okuma fiyatı = aylık 0,0009 ABD doları

Orta
(1 milyon yükleme)

1.000.000 uygulama yüklemesi (100.000 günlük etkin kullanıcı) için: 0,018 ABD doları/ay

100.000 etkin kullanıcı * kullanıcı başına 10 yeni ileti = günde 1.000.000 yeni ileti dokümanı

1.000.000 belge sayısı / okuma ücreti başına 1.000 dizin eşleşmesi = 1.000 okuma

Günlük 1.000 okuma * 30 gün = aylık 30.000 okuma

Aylık 30.000 okuma * 0,06/100.000 okuma fiyatı = aylık 0,018 ABD doları

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

10.000.000 uygulama yüklemesi için (1.000.000 günlük etkin kullanıcı): 0,18 ABD doları

1.000.000 etkin kullanıcı * kullanıcı başına 10 yeni ileti = günde 10.000.000 yeni ileti dokümanı

10.000.000 belge sayısı / okuma başına 1.000 dizin eşleşmesi = 10.000 okuma

Günlük 10.000 okuma * 30 gün = aylık 300.000 okuma

Ayda 300.000 okuma * 0,06/100.000 okuma fiyatı = ayda 0,18 ABD doları

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

Cloud Firestore işlemleri, depolama ve ağ bant genişliği faturalandırılabilir kullanım olarak kabul edilir. Ayrıca, ek ücret ödemeden çeşitli avantajlardan da yararlanabilirsiniz. Cloud Firestore ile diğer veritabanı seçeneklerini karşılaştırırken aşağıdaki ücretsiz hizmetleri göz önünde bulundurun:

  • Doğrudan istemci erişimi: Cloud Firestore, yerel SDK'larımız kullanılarak doğrudan istemci kodunuzdan erişilir. Bu, mobil istemcilerinizi veritabanına bağlamak için bir API sunucusu oluşturup ç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 yük dengeleyici çalıştırmanız gerekmez.
  • Sunucu kesintisiz çalışma süresi: Cloud Firestore veritabanları, Google Cloud sunucularında çalışır ve aylık% 99'un üzerinde kesintisiz çalışma süresi sunar.
  • Kimlik doğrulama: Firebase Authentication ile sınırsız sayıda kullanıcının kimliğini basit ve güvenli bir şekilde doğrulayın. Firebase Authentication, Cloud Firestore ile doğrudan entegre olduğundan kendi kimlik doğrulama hizmetinizi çalıştırmanız gerekmez.
  • Push bildirimleri: Cloud Messaging ile mesaj ve bildirim gönderme
  • Diğer Firebase ürünleri: A/B Testi, Analytics, Crashlytics, Performans İzleme 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.