Bulut firestore kullanımınızı ve maliyetlerinizi ölçmek için temel bir sohbet uygulamasının bu gerçek dünya örneğini kullanın. Bu kesin bir tahmin değildir, ancak bulut 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 örnek için, Kuzey Amerika çok bölgesi (özellikle nam5
) için fiyatlandırma 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, 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 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ızı yönlendirmek için bu örneği kullanın, ancak bulut 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 Arıza: Kullanıcı görevine göre faturalandırılan kullanım bölümüne bakın.
Küçük
(50k 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 $ | |
0,21 $ / gün * 30 = 6.30 $ | |||||
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 | = | 20K Maliyet No Seles + (80K Silme 0,02/100K) | = | 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 10GB aylık ağ çıkışı bulut Firestore için maliyetlidir.
2 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ı açıklar.
Orta
(1m kurulum)
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ı | |||||
2M Toplam Günlük Silmeler | = | 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 | |||||||
20kb / dau günlük çıkış * 100K daus | = | 2GB 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 / Kurulum 1 | = | 45KB depolama / GEKS * 100K GEKS | = | 4.5GB 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 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
(10m kurulum)
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 $/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 $ / gün * 30 = 120,00 $ |
Depolama/Ağ Maliyetleri | |||||||
---|---|---|---|---|---|---|---|
Toplam aylık maliyet = 313,62 ABD doları/ay | |||||||
20kb / dau günlük çıkış * 1m daus | = | 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 / Kurulum 1 | = | 45 KB depolama / GEKS * 1 milyon GEKS | = | 45GB günlük depolama / dau * 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.
Bulut Firestore faturalandırma modelinin dikkate değer bir yararı, sadece kullandığınız şey için ö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.
Üç tipik kullanıcı görevi için Cloud Firestore'daki örnek uygulamanın 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 kullanıcının bu eylemi günde 5 kez gerçekleştirdiğini (ana ekranı her açtıklarında bir kez) gerçekleştirdiğini ve her gün kullanıcı başına toplam 250 okumaya yol açtığını varsayın. 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 belge yazmasına neden olur: Biri sohbetin messages
alt koleksiyonuna yazma ve diğeri Sohbet Eşyası belgesine lastUpdated
zaman damgasını ve diğer meta verileri güncellemek için yazın.
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()
toplama ile gerçekleştirebilirsiniz.
count()
gibi toplama sorguları için, sorgu ile eşleşen her 1.000 dizin girişinden oluşan her bir grup için bir belge okunur. Bu günlük toplamayı çalıştırdığınızda aşağıdaki aylık ücretler eklenir:
Küçük
(50k 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 belgesi
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
(1m kurulum)
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
Ayda 30.000 okuma * .06/100.000 okuma fiyatı = aylık 0,018 $
Büyük
(10m kurulum)
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 * .06/100000 okuma fiyatı = aylık 0,18 $
Avantajlar Dahil: Uygulamanız için Ücretsiz Hizmetler
Bulut Firestore işlemleri, depolama ve ağ bant genişliği faturalandırılabilir kullanım olarak kabul edilirken, ek bir maliyet olmadan çeşitli diğer avantajlar da elde edersiniz. Cloud Firestore'u diğer veritabanı seçenekleriyle karşılaştırdığınız için ücretsiz olarak aşağıdaki hizmetleri göz önünde bulundurun:
- Doğrudan İstemci Erişim: Cloud Firestore, 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şturmanız ve çalıştırmanız gerekmediği anlamına gelir.
- Yük Dengeleme: Cloud Firestore, veritabanınıza trafiği desteklemek için otomatik olarak ölçeklendirildiğinden, bir yük dengeleyicisi çalıştırmanız gerekmez.
- Sunucu çalışma süresi: Cloud Firestore veritabanları, aylık% 99'dan fazla çalışma süresi sunan Google Cloud sunucularında çalışır.
- Kimlik Doğrulama: Sınırsız kullanıcıları Firebase kimlik doğrulaması ile basit ve güvenli bir şekilde doğrulayın. Firebase kimlik doğrulaması doğrudan Cloud Firestore ile entegre olur, böylece kendi kimlik doğrulama hizmetinizi çalıştırmanız gerekmez.
- Push bildirimleri: Bulut mesajlaşmasıyla mesajlar ve bildirimler gönderin.
- Diğer Firebase Ürünleri: A/B testi, analitik, çökme, performans izleme ve uzaktan yapılandırma dahil olmak üzere diğer Firbase ürünlerini ücretsiz olarak entegre edin. Diğer Firebase ürünleri ve Firebase fiyatlandırması hakkında daha fazla bilgi edinin.