Cloud Firestore faturalandırmasını anlama

Bu belgede Cloud Firestore fiyatlandırması ayrıntılı şekilde açıklanmıştır.

ABD dolarından farklı bir para biriminde ödeme yaparsanız Cloud Platform SKU'larında para biriminizde listelenen fiyatlar geçerli olur.

Fiyatlandırmaya genel bakış

Cloud Firestore kullanırken aşağıdakiler için ücret ödemeniz gerekir:

  • Okuduğunuz, yazdığınız ve sildiğiniz dokümanların sayısı.
  • Bir sorguyu karşılamak için okunan dizin girişlerinin sayısı. Dizin okumaları hakkında daha fazla bilgi edinin.
  • Meta veri ve dizinlerin ek yükü de dahil olmak üzere, veritabanınızın kullandığı depolama alanı miktarı.
  • Kullandığınız ağ bant genişliği miktarı.

Depolama ve bant genişliği kullanımı, gibibayt (GiB) cinsinden hesaplanır. 1 GiB, 230 bayt olarak kabul edilir. Tüm masraflar günlük olarak hesaplanır.

Aşağıdaki bölümlerde, Cloud Firestore kullanımı için ödediğiniz ücretin nasıl hesaplandığı açıklanmaktadır.

Ücretsiz kota

Cloud Firestore, ücretsiz kota sunar. Bu sayede ücret ödemeden kullanmaya başlayabilirsiniz. Daha fazla kotaya ihtiyacınız varsa Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.

Kotalar günlük olarak uygulanır ve Pasifik saatine göre gece yarısı civarında sıfırlanır.

Aşağıdaki tabloda ücretsiz kota miktarları özetlenmiştir:

Ücretsiz katman Kota
Depolanan veriler 1 GiB
Belge okuma sayısı Günde 50.000
Belge yazma sayısı Günde 20.000
Belge silme sayısı Günde 20.000
Giden veri aktarımı Ayda 10 GiB

Aşağıdaki işlemler ve özellikler ücretsiz kullanıma dahil değildir. Bu özellikleri kullanmak için faturalandırmayı etkinleştirmeniz gerekir:

  • TTL silme işlemleri
  • PITR verileri
  • Verileri yedekleme
  • Geri yükleme işlemleri
  • Klonlama işlemleri

Bu özelliklerin nasıl faturalandırıldığı hakkında daha fazla bilgi için Depolama alanı fiyatlandırması bölümünü inceleyin.

Konuma göre fiyatlandırma

Her bir Cloud Firestore konumu için okuma, yazma, silme ve depolama fiyatlarını görüntülemek üzere Google Cloud fiyatlandırması bölümüne bakın.

ABD dolarından farklı bir para biriminde ödeme yaparsanız Cloud Platform SKU'larında para biriminizde listelenen fiyatlar geçerli olur.

Adlandırılmış veritabanları için ücretsiz kota yok

Adlandırılmış (varsayılan olmayan) bir veritabanı oluşturmak için projenizin faturalandırma planını yükseltmeniz gerekir.

Adlandırılmış veritabanlarını oluşturma veya silme işlemi için sizden ek ücret alınmaz ancak bu veritabanları ücretsiz kota için uygun değildir. Bunun yerine, bu adlandırılmış veritabanlarında oluşan kullanıma göre ücretlendirilirsiniz.

Okuma, yazma ve silme

Bir sorguyu karşılamak için okunan belgeler ve dizin girişleri için ücretlendirilirsiniz. Yaptığınız her belge yazma ve silme işlemi için ücretlendirilirsiniz.

Yazma ve silme işlemleri için ücretler gayet basit bir şekilde belirlenir. Yazma için her set veya update işlemi tek bir yazma olarak sayılır.

Okuma işlemleriyle ilgili ücretlerde dikkate almanız gereken bazı ince ayrıntılar vardır. Bu ayrıntılar, aşağıdaki bölümlerde açıklanmıştır.

Dizin girişi okuma işlemleri

Aşağıdaki durumlar hariç olmak üzere, bir sorgu tarafından okunan 1.000 dizin girişi içeren her toplu işlem için bir okuma işlemi ücreti alınır:

  • K en yakın komşu vektör arama sorguları için sorgu tarafından okunan 100'e kadar kNN vektör dizini girişinden oluşan her grup için bir okuma işlemi ücreti alınır.

    Örneğin, limit: 5 ile aşağıdaki vektör arama sorgusu 5 belge döndürürse ve 1.550 kNN vektör dizini girişi okursa döndürülen belgeler için 5 okuma işlemi, dizin girişleri için ise 16 okuma işlemi faturalandırılır:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • En fazla bir aralık alanı olan sorgular için okunan dizin girişleri ücretlendirilmez.

    Örneğin, aşağıdaki sorgu bir eşitlik alanı (age) ve bir aralık alanı (start_date) içerir ve okunan dizin girişleri için ücretlendirilmez:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Aşağıdaki sorgu iki aralık alanı (age ve start_date) içeriyor ve dizin girişleri okuma için ücretlendiriliyor:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Sorguda en az bir tane daha aralık alanı olduğunda, order by ifadesinde görünen bir alan aralık alanı olarak kabul edilir. Bu nedenle, aşağıdaki sorgu iki aralık alanı (age ve start_date) içerir ve dizin girişleri okumaları için ücretlendirilir:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    __name__ alanı, yalnızca bir eşitlik filtresinde kullanılsa bile her zaman bir aralık alanı olarak kabul edilir. Bu nedenle, aşağıdaki sorgu iki aralık alanı (age ve __name__) içerir ve dizin girişleri okuma işlemi için ücretlendirilir:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Toplama sorguları

count(), sum() ve avg() gibi toplama sorguları için sorgu tarafından okunan dizin girişleri yukarıda açıklandığı gibi ücretlendirilir. 0 dizin girişi okuyan toplama sorguları için minimum bir belge okuma ücreti alınır.

Örneğin, 0 ile 1.000 dizin girişi arasında okuma yapan count() işlemleri için bir doküman okuma ücreti alınır. 1.500 dizin girişi okuyan bir count() işlemi için 2 belge okuması üzerinden faturalandırılırsınız.

Kullanılan dizinler ve okunan dizin girişleri hakkında daha fazla bilgi edinmek için Sorgu Açıklaması'nı kullanın.

Sorgu sonuçlarını dinleme

Cloud Firestore, sorgu sonuçlarını dinlemenizi ve sorgu sonuçları değiştiğinde gerçek zamanlı güncellemeler almanızı sağlar.

Sorgu sonuçlarını dinlediğinizde sonuç kümesine bir belge eklendiğinde veya kümedeki belge güncellendiğinde bir okuma değerinde ücret alınır. Belgenin değişmesi sebebiyle sonuç kümesinden bir belge çıkarıldığında da okuma için ücret alınır. Ancak bir belge silindiğinde okuma için ücret alınmaz.

Mobil ve web SDK'larındaki dinleyicilerin faturalandırılması, çevrimdışı kalıcılığın etkin olup olmamasına da bağlıdır:

  • Çevrimdışı kalıcılık etkinleştirilmişse ve dinleyicinin bağlantısı 30 dakikadan daha uzun bir süre boyunca kesilirse (örneğin, kullanıcı çevrimdışı olursa) okunan dokümanlar ve dizin girişleri için yeni bir sorgu göndermiş gibi ücretlendirilirsiniz.

  • Çevrimdışı kalıcılık devre dışıysa dinleyici bağlantısı kesilip yeniden bağlandığında okunan dokümanlar ve dizin girişleri için yeni bir sorgu göndermiş gibi ücretlendirilirsiniz.

Büyük sonuç kümelerini yönetme

Cloud Firestore, çok sayıda sonuç döndüren sorguları yönetmenize yardımcı olacak bazı özelliklere sahiptir:

  • İmleçler: Uzun süreli sorguları devam ettirebilmenizi sağlar.
  • Sayfa jetonları: Sorgu sonuçlarını sayfalara ayırmanıza yardımcı olur.
  • Sınırlar: Alınacak sonuçların sayısını belirtir.
  • Ofsetler: Belirli sayıdaki belgeleri atlamanızı sağlar.

İmleç, sayfa jetonu ve sınırları kullanma için ek ücret alınmaz. Hatta bu özellikler, yalnızca gerçekten ihtiyacınız olan belgeleri okuyup masrafları azaltmanıza yardımcı olabilir.

Ancak, ofset içeren bir sorgu gönderdiğinizde, atlanan her belge için okuma ücreti ödersiniz. Örneğin, sorgunuzda 10 ofset kullanılıyorsa ve sorgu 1 belge döndürürse 11 okuma için ücret ödersiniz. Bu ek maliyet nedeniyle, ofset yerine imleç kullanmayı tercih etmelisiniz.

Belge okuma dışındaki sorgular

Belge okumaları dışındaki sorgularda, (koleksiyon kimlikleri listesi için yapılan bir istek gibi) bir belge okuması için faturalandırılırsınız. Sonuçların tamamının alınması için birden fazla istek yapılması gerekiyorsa (örneğin, sayfalara ayırma özelliğinden yararlanıyorsanız) istek başına bir kez faturalandırılırsınız.

Sorgular için minimum ücret

Yapılan her sorgu için, bir belge okuma işleminin minimum ücreti uygulanır. Sorgunun sonuç verip vermemesi dikkate alınmaz.

Cloud Firestore Security Rules

Mobil ve web istemci kitaplıklarında, Cloud Firestore Security Rules veritabanınızdan bir veya daha fazla belge okumak için exists(), get() veya getAfter() kullanıyorsa aşağıda açıklandığı gibi ek okuma ücreti ödersiniz:

  • Cloud Firestore Security Rules değerlendirmek için gereken okumaların ücretini ödersiniz.

    Örneğin, kurallarınız üç belgeyi ifade ediyor ancak Cloud Firestore'nın kurallarınızı değerlendirmek için bu belgelerden yalnızca ikisini okuması gerekiyorsa bağımlı belgeler için iki ek okuma ücreti ödersiniz.

    Kurallarınız söz konusu belgeyi birden fazla kez ifade etse bile her bağımlı belge için yalnızca bir okuma ücreti ödersiniz.

  • Kural değerlendirmesi için istek başına yalnızca bir defa ücret ödersiniz.

    Sonuç olarak, birden fazla belge okumanın maliyeti, yapılan istek sayısını azalttığı için belgeleri teker teker okumaktan daha uygun olabilir.

  • Sorgu sonuçlarını dinlediğinizde aşağıdaki durumların tümünde kural değerlendirme ücreti ödersiniz:

    • Sorguyu yaptığınızda.
    • Sorgu sonuçları her güncellendiğinde.
    • Kullanıcının cihazının internet bağlantısı kesilip bağlantı tekrar kurulduğunda.
    • Kuralları her güncellediğinizde.
    • Kurallarınızdaki bağımlı belgeleri her güncellediğinizde.

Veritabanı depolama alanı boyutu

Ek depolama yükü dahil olmak üzere Cloud Firestore içinde sakladığınız veri miktarı kadar ücret ödersiniz. Meta veriler, otomatik dizinler ve birleşik dizinler ek yük miktarına dahil edilir.

Cloud Firestore içinde depolanan her belge için aşağıdaki meta veriler gerekir:

  • Koleksiyon kimliği ve belge adı da dahil olmak üzere belge kimliği.
  • Her alanın adı ve değeri. Cloud Firestore şemasız olduğundan bir belgedeki her bir alanın adı, alan değeriyle beraber depolanmalıdır.
  • Belgeyi ifade eden tüm tekli alan dizinleri ve birleşik dizinler. Her dizin girişi; koleksiyon kimliğini, dizin tanımına bağlı olarak herhangi bir sayıdaki alan değerini ve belge adını içerir.

Depolama maliyetleri GiB/ay cinsindendir ve günlük olarak hesaplanır. Cloud Firestore Veritabanı boyutunu günlük olarak ölçer. Bir aylık süre boyunca, veritabanı depolama boyutunu hesaplamak için bu örnek noktaların ortalaması alınır. Bu ortalama değer, depolama alanının birim fiyatıyla (GiB-ay) çarpılır.

Depolama Alanı Boyutu Hesaplamaları bölümüne giderek Cloud Firestore depolama alanının nasıl hesaplandığını öğrenin.

PITR verileri

PITR'yi etkinleştirirseniz PITR verilerinin depolanması için ücretlendirilirsiniz. Çoğu müşteri, PiTR veri depolamasının genel maliyetinin veritabanının depolama maliyetine benzer olduğunu görecektir.

PITR için depolama maliyetleri GiB/ay cinsindendir ve günlük olarak hesaplanır. Cloud Firestore Veritabanı boyutunu günlük olarak ölçer. Bir aylık süre boyunca bu örnek noktaların ortalaması alınarak veritabanı depolama boyutu hesaplanır. Bu ortalama değer, PITR'nin (GiB-ay) birim fiyatıyla çarpılır.

Örneğin, bir ay boyunca veritabanınızın ortalama boyutu 1 GiB ise ve PITR tüm ay boyunca etkinse faturalandırılabilir PITR veri boyutu da 1 GiB olur.

Minimum faturalandırma: PITR'yi etkinleştirdikten sonraki bir gün içinde devre dışı bıraksanız bile 1 günlük PITR depolama maliyeti kadar ücretlendirilebilirsiniz.

Veri yedekleme ve geri yükleme işlemleri

Yedeklemeleri etkinleştirirseniz veritabanı yedeklerinizin depolanması için ücretlendirilirsiniz. Bir yedeğin depolama alanı boyutu, yedekleme yapılırken veritabanının depolama alanı boyutuna eşittir.

Yedeklemeler için depolama maliyetleri GiB/ay cinsindendir. Bir aylık süre boyunca, her yedeklemenin saklandığı gün sayısı da ay boyunca ortalama olarak hesaplanır. Her yedeğin maliyeti, yedeğin depolama alanı boyutunun, yedeğin saklandığı ayın oranıyla ve birim fiyatıyla çarpılmasıyla hesaplanır. Gün sınırları, faturalandırma amacıyla Amerika/Los_Angeles saat dilimine göre tanımlanır.

Geri yükleme işlemi gerçekleştirdiğinizde Cloud Firestore, geri yükleme işlemi için yedeklemenin boyutunu ölçer. Yedeğin boyutu, geri yükleme işlemlerinin birim fiyatıyla (GiB) çarpılır.

Sorgu Açıklaması

Firestore Query Explain kullanımı maliyetlere neden olur.

Bir sorgu varsayılan seçenekle açıklandığında herhangi bir dizin okuma işlemi yapılmaz. Sorgu karmaşıklığından bağımsız olarak bir okuma işlemi ücretlendirilir.

Bir sorgu, analiz seçeneğiyle açıklandığında dizin ve okuma işlemleri gerçekleştirilir. Bu nedenle, sorgu için her zamanki gibi ücretlendirilirsiniz. Açıklama ve analiz etkinliği için ek ücret alınmaz. Yalnızca yürütülen sorgu için normal ücret alınır.

Ağ bant genişliği

Aşağıdaki bölümlerde gösterildiği gibi Cloud Firestore istekleriniz tarafından kullanılan ağ bant genişliği için ücret ödersiniz. Bir Cloud Firestore isteğinin ağ bant genişliği maliyeti; isteğin yanıt boyutuna, Cloud Firestore veritabanınızın konumuna ve yanıtın hedefine bağlıdır.

Cloud Firestore, yanıt boyutunu serileştirilmiş mesaj biçimi üzerinden hesaplar. Protokol ek yükü (ör. SSL ek yükü), ağ bant genişliği kullanımına dahil edilmez. Cloud Firestore Security Rules tarafından reddedilen istekler, ağ bant genişliği kullanımına dahil edilmez.

Ne kadar ağ bant genişliği kullandığınızı öğrenmek için Google Cloud Console üzerinden faturalandırma verilerinizi bir dosyaya aktarabilirsiniz.

Genel ağ fiyatlandırması

Google Cloud Platform'dan (ör. Google Compute Engine'de çalışan bir uygulamadan) gelen isteklerin ücreti aşağıdaki gibi hesaplanır:

Trafik türü Fiyat
Gelen veri aktarımı Ücretsiz
Bir bölge içinde veri aktarımı Ücretsiz
Aynı çoklu bölgedeki bölgeler arasında veri aktarımı Ücretsiz
ABD'deki bölgeler arasında veri aktarımı (GiB başına) 0,01 ABD doları (aylık ilk 10 GiB ücretsiz)
Bölgeler arası veri aktarımı (ABD bölgeleri arasındaki trafik dahil değil) Google Cloud Platform giden internet veri aktarımı ücretleri

ABD dolarından farklı bir para biriminde ödeme yaparsanız Cloud Platform SKU'larında para biriminizde listelenen fiyatlar geçerli olur.

Cloud Firestore ayrıca aşağıdakiler için ek internet çıkışı ücretlerine tabidir:

  • Google Cloud bölgeler arası istekler (ABD bölgeleri arası trafik dahil değil)
  • Google Cloud dışından gelen istekler (ör. bir kullanıcının mobil cihazından)

Google Cloud internet çıkış ücretlerine bakın.

Fiyatlandırma örneğini inceleyin

Cloud Firestore faturalandırma maliyetlerinin gerçek hayattaki bir örnek uygulamada nasıl hesaplandığını görmek için Cloud Firestore faturalandırma örneğini inceleyin.

Harcamaları yönetme

Faturanızda beklenmedik ödemelerle karşılaşmamak için Google Cloud'ın faturalandırma konsolunu kullanarak aylık bütçeler ve uyarılar belirleyin.

Cloud Firestore kullanımınızı izlemek için Firebase Console'da Cloud Firestore Kullanım sekmesini açın. Farklı dönemlerdeki kullanımınızı ölçmek için kontrol panelini kullanın.