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 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 ö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ölgesine (özellikle nam5
) yönelik fiyatlandırmayı kullanıyoruz.
Varsayımlar
Kullanım ve veri depolamayla ilgili aşağıdaki varsayımları göz önünde bulundurun:
- Günlük Aktif Kullanıcı Sayısı (DAU'lar), toplam uygulama yüklemelerinin %10'unu oluşturur. Günlük Aktif Kullanıcılarınızın (DAU'lar) kaba bir tahminini kullanarak günlük maliyetlerinizi tahmin edebilirsiniz. Bunlar, belirli bir günde uygulamanızı aktif olarak açan ve kullanan kullanıcılardır; bu, genellikle toplam uygulama yüklemelerinizin küçük bir alt kümesidir. Aşağıdaki hesaplamalar için GEKS'leri toplam uygulama yükleme sayısının %10'u olarak tahmin ettik.
- Belge boyutları nispeten küçüktür. Türe göre belge boyutunun 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şlemi için günlük silme işlemini gösterir.
- Bu maliyet tahminleri, örnek uygulamanın maliyetlerinin büyük kısmını yansıtır, ancak hepsini yansıtmaz. Bu kılavuzda özetlenen en sık kullanıcı görevlerine yönelik işlemleri, kullanıcı ve mesaj depolamayı 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 ihtiyaçlarına bağlı olarak ek maliyetleri de hesaba katmanız gerekebilir. Hesaplamalarınıza rehberlik etmesi için bu örneği kullanın ancak Cloud Firestore maliyetlerine ilişkin daha kapsamlı açıklamalar için fiyatlandırma sayfasına bakın.
İşlemlerin kullanıcı görevine göre dökümü için Arıza: Kullanıcı görevine göre faturalandırılan kullanım bölümüne bakın.
Küçük
(50 bin kurulum)
50.000 uygulama yüklemesi için (5.000 Günlük Aktif Kullanıcı): 12,14 USD/ay
Okuma/Yazma Maliyetleri | |||||
---|---|---|---|---|---|
Toplam aylık maliyet = 11,10 ABD doları/ay | |||||
Toplam 400.000 günlük okuma | = | 50.000 Ücretsiz okuma + (350.000 okuma: 0,06 USD/100.000) | = | 3,5 * 0,06 ABD doları | |
0,21 ABD doları / gün * 30 = 6,30 ABD doları | |||||
Toplam 100.000 günlük yazma | = | 20.000 Ücretsiz yazma + (80.000 yazma 0,18 USD/100.000'den) | = | 0,8 * 0,18 ABD doları | |
0,14 ABD doları / gün * 30 = 4,20 ABD doları | |||||
Toplam günlük 100.000 silme işlemi | = | 20.000 Ücretsiz silme + (0,02 USD/100.000'den 80.000 silme) | = | 0,8 * 0,02 ABD doları | |
0,02 ABD doları / gün * 30 = 0,60 ABD doları |
Depolama/Ağ Maliyetleri | |||||||
---|---|---|---|---|---|---|---|
Toplam aylık maliyet = 1,04 ABD doları/ay | |||||||
20 KB / GEKS günlük çıkış * 5.000 GEKS | = | 100 MB günlük çıkış * 30 | = | Aylık 3 GB ağ çıkışı | |||
3 GB Ücretsiz çıkış = Ücretsiz 1 | |||||||
15KB günlük mesaj depolama / DAU + 3KB depolama / yükleme 2 | = | 45KB depolama / GEKS * 5K GEKS | = | 225 MB günlük depolama alanı / GEKS * 30 | = | 6,75 GB aylık depolama kullanımı | |
1 GB Ücretsiz depolama + (5,75 * 0,18 USD) = aylık 1,04 USD |
1 10 GB aylık ağ çıkışı Cloud Firestore için ücretsizdir.
2 GEKS'lerin toplam uygulama yüklemelerinin %10'unu oluşturduğu varsayımımız nedeniyle bu sayı, uygulamanızı yükleyen toplam kullanıcı sayısını oluşturur.
Orta
(1 milyon yükleme)
1.000.000 uygulama yüklemesi için (100.000 Günlük Aktif Kullanıcı): 292,02 USD/ay
Okuma/Yazma Maliyetleri | |||||
---|---|---|---|---|---|
Toplam aylık maliyet = 261,90 ABD doları/ay | |||||
Günlük toplam 8 milyon okuma | = | 50.000 Ücretsiz okuma + (0,06 ABD Doları/100.000'den 7,95 milyon okuma) | = | 79,5 * 0,06 ABD doları | |
4,77 ABD doları / gün * 30 = 143,10 ABD doları | |||||
Toplam 2 milyon günlük yazma | = | 20.000 Ücretsiz yazma + (1,98 milyon yazma, 0,18 USD/100.000) | = | 19,8 * 0,18 ABD doları | |
3,56 ABD doları / gün * 30 = 106,80 ABD doları | |||||
Günlük toplam 2 milyon silme | = | 20.000 Ücretsiz silme + (0,02 USD/100.000'den 1,98 milyon silme) | = | 19,8 * 0,02$ | |
0,40 ABD doları / gün * 30 = 12,00 ABD doları |
Depolama/Ağ Maliyetleri | |||||||
---|---|---|---|---|---|---|---|
Toplam aylık maliyet = 30,12 ABD doları/ay | |||||||
20 KB / GEKS günlük çıkış * 100.000 GEKS | = | 2 GB günlük çıkış * 30 | = | 60 GB aylık ağ çıkışı | |||
10 GB Ücretsiz çıkış + (50 GB çıkış * 0,12 USD/GB) = 6,00 USD/ay | |||||||
15KB günlük mesaj depolama / DAU + 3KB depolama / yükleme 1 | = | 45KB depolama / GEKS * 100K GEKS | = | 4,5 GB günlük depolama / GEKS * 30 | = | 135 GB aylık depolama kullanımı | |
1 GB Ücretsiz depolama + (134 GB * 0,18 USD/GB) = 24,12 USD/ay |
1 GEKS'lerin toplam uygulama yüklemelerinin %10'unu oluşturduğu varsayımımız nedeniyle bu sayı, uygulamanızı yükleyen toplam kullanıcı sayısını oluşturur.
Büyük
(10 milyon yükleme)
10.000.000 uygulama yüklemesi için (1.000.000 Günlük Aktif Kullanıcı): 2.951,52 USD
Okuma/Yazma Maliyetleri | |||||
---|---|---|---|---|---|
Toplam aylık maliyet = Toplam: 2637,90 ABD doları/ay | |||||
Toplam günlük 80 milyon okuma | = | 50.000 Ücretsiz okuma + (0,06 ABD Doları/100.000 karşılığında 79,95 milyon okuma) | = | 799,5 * 0,06 ABD doları | |
47,97 ABD doları / gün * 30 = 1.439,10 ABD doları | |||||
Toplam günlük 20 milyon yazma | = | 20.000 Ücretsiz yazma + (0,18 USD/100.000 $'dan 19,98 milyon yazma) | = | 199,8 * 0,18 ABD doları | |
35,96 ABD doları / gün * 30 = 1.078,80 ABD doları | |||||
Günlük toplam 20 milyon silme | = | 20.000 Ücretsiz silme + (0,02 ABD Doları/100.000'den 19,98 milyon silme) | = | 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 | |||||||
20 KB / GEKS günlük çıkış * 1 milyon GEKS | = | 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 | = | 45 KB depolama / GEKS * 1 milyon GEKS | = | 45 GB günlük depolama / GEKS * 30 | = | 1350GB aylık depolama kullanımı | |
(1 GB Ücretsiz depolama) + (1349 GB * 0,18 USD/GB) = 242,82 USD/ay |
1 GEKS'lerin toplam uygulama yüklemelerinin %10'unu oluşturduğu varsayımımız nedeniyle bu sayı, uygulamanızı yükleyen toplam kullanıcı sayısını oluşturur.
Cloud Firestore faturalandırma modelinin dikkate değer bir avantajı, yalnızca kullandığınız kadar ödeme yapmanızdır. Sonuç olarak faturanız GEKS sayınız ile birlikte büyüyüp küçülebilir.
Döküm: Kullanıcı görevine göre faturalandırılan 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}
— Sohbetteki her mesaj.
-
Veri depolama
Uygulama verilerinin depolanmasına ilişkin 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,5KB | 1,5KB |
mesajlar | 0.25KB | 0.75KB |
*Bu boyut hesaplaması mesaj alanlarına ilişkin dizinleri içerir ancak ileti 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ı 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 ortak 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) listesini görür.
- Sohbetteki mesajları okuyun: Kullanıcılar ana ekrandan sohbetleri seçer ve sohbetlerdeki son mesajları okur.
- Sohbete mesaj gönderin: Kullanıcılar sohbetlere (grup veya doğrudan) mesaj gönderir.
Örnek uygulamanın üç tipik kullanıcı görevi için Cloud Firestore'daki toplam tahmini işlemleri aşağıdaki gibidir:
- Okuma Sayısı: (5*10) + (30) = 80 okuma/kullanıcı/gün
- Yazma: (10*2) = 20 yazma/kullanıcı/gün
- Ağ Çıkışı : (50 * 0,25KB) + (30 * 0,25KB) = 20KB / 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.
Sohbetlerin listesine bakın
Uygulamanın ana ekranı en son 25 sohbeti yükler ve 25 belge okuması için ücret alınır. Aktif bir kullanıcının uygulamayı günde 5 kez açtığını, yani her gün kullanıcı başına toplam 125 okumanın gerçekleştiğini varsayalım. Ancak aşağıdaki örnekte olduğu gibi daha verimli sorgular bu yükü azaltabilir.
Aşağıdaki örnekte, her başarılı getirmenin uygulama tarafından saklanan 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üncellenen sohbetin olduğunu varsayalım. Bu sorgu yalnızca 10 belge okumasına neden olur.
Sohbetteki mesajları okuma
Kullanıcılar en son mesajları görmek için ana ekrandan sohbet konularını tıklar ve en son 50 mesaj ilk yüklemeye yüklenir.
Tipik bir kullanıcının bu eylemi günde 5 kez (ana ekranı her açtığında bir kez) gerçekleştirdiğini ve bunun her gün kullanıcı başına toplam 250 okumaya yol açtığını varsayalım. Sorgumuzu son getirme zamanından bu yana yeni iletilerle de sınırlandırabiliriz:
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 mesajları getirecek şekilde sınırladığınız için bu, günde yalnızca 30 mesajın alınması anlamına gelir.
Sohbete mesaj gönderme
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.
Gönderilen her mesaj iki belgenin yazılmasına neden olur: biri sohbetin messages
alt koleksiyonuna yazılır, diğeri ise lastUpdated
zaman damgasını ve diğer meta verileri güncellemek için sohbetin ana belgesine yazılır.
Bu mesajları okumanın maliyetinin diğer yolculuklarda hesaba katıldığını unutmayın; dolayısıyla aşağıdaki toplamlar yalnızca bu yazma maliyetini dikkate alır.
Yönetici görevleri için faturalandırılmış kullanım
Bir uygulama sahibi veya yöneticisi olarak muhtemelen uygulamanızın verilerinden raporlar oluşturmak istersiniz. Örneğin, kullanıcılarınız tarafından gönderilen mesajların günlük sayısını tutmak isteyebilirsiniz. Bunu, messages
toplama grubunun count()
toplanmasıyla gerçekleştirebilirsiniz.
count()
gibi toplama sorguları için, sorguyla eşleşen 1.000'e kadar dizin girişinin her bir grubu için bir belge okuması için ücretlendirilirsiniz. Bu günlük toplamayı çalıştırdığınızda aşağıdaki aylık ücretler eklenir:
Küçük
(50 bin kurulum)
50.000 uygulama yüklemesi için (5.000 DAU): 0,0009 ABD doları/ay
5.000 aktif kullanıcı * kullanıcı başına 10 yeni mesaj = günde 50.000 yeni mesaj dokümanı
Sayılan 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/100.000 okuma fiyatı = ayda 0,0009 USD
Orta
(1 milyon yükleme)
1.000.000 uygulama yüklemesi için (100.000 Günlük Aktif Kullanıcı): 0,018 USD/ay
100.000 aktif kullanıcı * kullanıcı başına 10 yeni mesaj = günde 1.000.000 yeni mesaj dokümanı
Sayılan 1.000.000 belge / okuma ücreti başına 1.000 dizin eşleşmesi = 1.000 okuma
Günde 1.000 okuma * 30 gün = ayda 30.000 okuma
Aylık 30.000 okuma * 0,06/100.000 okuma fiyatı = aylık 0,018 USD
Büyük
(10 milyon yükleme)
10.000.000 uygulama yüklemesi için (1.000.000 Günlük Aktif Kullanıcı): 0,18 USD
1.000.000 aktif kullanıcı * kullanıcı başına 10 yeni mesaj = günde 10.000.000 yeni mesaj dokümanı
Sayılan 10.000.000 belge / okuma ücreti başına 1.000 dizin eşleşmesi = 10.000 okuma
Günde 10.000 okuma * 30 gün = ayda 300.000 okuma
Ayda 300.000 okuma * 0,06/100000 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ğinin tümü faturalandırılabilir kullanım olarak kabul edilirken, aynı zamanda hiçbir ek ücret ödemeden çeşitli başka avantajlardan da yararlanırsınız. 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 istemci erişimi: Cloud Firestore'a yerel SDK'larımızı kullanarak doğrudan istemci kodunuzdan erişilir. Bu, mobil istemcilerinizi veritabanına bağlamak için bir API sunucusu oluşturup çalıştırmanıza gerek olmadığı anlamına gelir.
- Yük dengeleme: Cloud Firestore, veritabanınıza gelen trafiği destekleyecek şekilde otomatik olarak ölçeklendiğinden, bir yük dengeleyici çalıştırmanıza gerek yoktur.
- 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 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 doğrudan Cloud Firestore ile entegre olduğundan kendi kimlik doğrulama hizmetinizi çalıştırmanıza gerek kalmaz.
- Anında bildirimler: Cloud Messaging ile mesaj ve bildirim gönderin.
- Diğer Firebase ürünleri: A/B Testi, Analytics, Crashlytics, Performans İzleme ve Remote Config dahil diğer Firebase ürünlerini ücretsiz olarak entegre edin. Diğer Firebase ürünleri ve Firebase fiyatlandırması hakkında daha fazla bilgi edinin.