Cloud Firestore faturalandırmasını anlama

Bu belgede Cloud Firestore fiyatlandırma ayrıntıları açıklanmaktadı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 hizmetini kullandığınızda aşağıdaki işlemler için ücretlendirilirsiniz:

  • 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 okuma işlemleri 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 alanı ve bant genişliği kullanımı gibibayt (GiB) cinsinden hesaplanır. 1 GiB = 230 bayttır. Tüm masraflar günlük olarak hesaplanır.

Aşağıdaki bölümlerde, Cloud Firestore kullanımınız için nasıl ücretlendirildiğinizle ilgili ayrıntılar verilmiştir.

Ücretsiz kota

Cloud Firestore, ücretsiz olarak kullanmaya başlamanızı sağlayan ücretsiz kota sunar. 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ı başlıklı makaleyi 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ı sayfasını inceleyin.

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

Ücretsiz kota, proje başına yalnızca bir veritabanı için geçerlidir.

Projelerde ücretsiz kotaya uygun yalnızca bir veritabanı olabilir.

Ek veritabanları oluşturmak için projenizin faturalandırma planını yükseltmeniz gerekir.

Oluşturduğunuz ilk veritabanı (kimliği ne olursa olsun) ücretsiz kota için uygundur. Bu veritabanını silerseniz oluşturduğunuz bir sonraki veritabanı, ücretsiz kotaya uygun yeni veritabanı olur.

Veritabanı oluşturmak veya silmek için ek ücret ödemeniz gerekmez. Sonraki tüm veritabanları, bu veritabanlarında gerçekleşen kullanıma göre ücretlendirilir.

Okuma, yazma ve silme

Bir sorguyu karşılamak için okunan belgeler ve dizin girişleri için ücretlendirilirsiniz. Gerçekleştirdiğiniz her doküman 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şlemleri için ücretlendirmede dikkat etmeniz gereken bazı noktalar vardır. Bu ayrıntılar, aşağıdaki bölümlerde açıklanmıştır.

Dizin girişi okuma sayısı

Bir sorgu tarafından okunan her 1.000 dizin girişinden oluşan grup için bir okuma işlemi ücreti alınır. Aşağıdaki durumlar bu kuralın dışındadır:

  • K-en yakın komşu vektör arama sorguları için sorgu tarafından okunan en fazla 100 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ür ve 1.550 kNN vektör dizini girişini okursa döndürülen belgeler için 5 okuma işlemi ve dizin girişleri için 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 ücret alınmaz:

    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çerir ve dizin girişi okuma işlemleri için ücretlendirilir:

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

    Sorguda en az bir tane daha aralık alanı varsa ORDER BY yan tümcesinde 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şi okuma işlemleri için ücretlendirilir:

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

    __name__ alanı, yalnızca eşitlik filtresinde kullanılsa bile her zaman aralık alanı olarak kabul edilir. Bu nedenle, aşağıdaki sorgu iki aralık alanı (age ve __name__) içerir ve dizin girişi okuma işlemleri 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ığı şekilde ücretlendirilir. 0 dizin girişi okuyan toplama sorguları için minimum bir belge okuma ücreti alınır.

Örneğin, 0 ile 1.000 arasında dizin girişi okuyan count() işlemleri için bir belge okuma işlemi olarak faturalandırılır. 1.500 dizin girişini okuyan bir count() işlemi için 2 belge okuma ücreti ödersiniz.

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

Sorgu sonuçlarını dinleme

Cloud Firestore, bir sorgunun sonuçlarını dinlemenize ve sorgu sonuçları değiştiğinde anlık güncellemeler almanıza olanak tanır.

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 olmadığına da bağlıdır:

  • Çevrimdışı kalıcılık etkinleştirildiyse ve dinleyicinin bağlantısı 30 dakikadan uzun süre kesilirse (örneğin, kullanıcı çevrimdışı olursa) yepyeni bir sorgu yayınlamış gibi okunan dokümanlar ve dizin girişleri için ücretlendirilirsiniz.

  • Çevrimdışı kalıcılık devre dışı bırakılırsa dinleyicinin bağlantısı her kesilip yeniden kurulduğunda, yepyeni bir sorgu yayınlamışsınız gibi okunan dokümanlar ve dizin girişleri için ücretlendirilirsiniz.

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

Cloud Firestore, çok sayıda sonuç döndüren sorguları yönetmenize yardımcı olacak çeşitli ö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() ya da getAfter() kullanıyorsa ek okuma işlemleri için aşağıdaki şekilde ücretlendirilirsiniz:

  • Cloud Firestore Security Rules değerlendirmesi için gerekli olan okuma işlemleri için ücretlendirilirsiniz.

    Örneğin, kurallarınız üç dokümana başvuruyorsa ancak Cloud Firestore kurallarınızı değerlendirmek için bu dokümanlardan yalnızca ikisini okumak zorundaysa bağımlı dokümanlar 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

Cloud Firestore hizmetinde depoladığınız veri miktarı için ücretlendirilirsiniz. Depolama ek yükü de bu miktara dahildir. Meta veriler, otomatik dizinler ve birleşik dizinler ek yük miktarına dahil edilir.

Cloud Firestore içinde depolanan her doküman için aşağıdaki meta veriler gereklidir:

  • 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 dokümandaki her alanın adı, alan değeriyle birlikte 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 cinsinden olup 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 alanı boyutu hesaplanır. Bu ortalama değer, depolama alanının birim fiyatıyla (GiB-ay) çarpılır.

Cloud Firestore depolama alanının nasıl hesaplandığını Depolama Alanı Boyutu Hesaplamaları bölümünden öğrenebilirsiniz.

PITR verileri

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

PITR için depolama alanı maliyetleri GiB/ay cinsindendir ve günlük olarak hesaplanır. Cloud Firestore, veritabanı boyutunu günlük olarak ölçer. Bir aylık dönem boyunca bu örnek noktaların ortalaması alınarak veritabanı depolama alanı boyutu hesaplanır. Bu ortalama değer, belirli bir zamana geri yüklemenin birim fiyatıyla (GiB-ay) ç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 alanı maliyeti kadar ücretlendirilebilirsiniz.

Verileri yedekleme ve geri yükleme işlemleri

Yedeklemeleri etkinleştirirseniz veritabanı yedeklerinizin depolama alanı için ücretlendirilirsiniz. Yedeklemenin depolama boyutu, yedekleme yapıldığı sırada veritabanının depolama boyutuna eşittir.

Yedeklemelerin depolama maliyetleri GiB/ay cinsinden hesaplanır. Bir aylık süre boyunca, her bir yedeğin saklandığı gün sayısının aylık ortalaması da hesaplanır. Her yedeğin maliyeti, yedeğin depolama boyutu ile yedeğin saklandığı ayın oranının çarpılması ve ardından birim fiyatla çarpılmasıyla hesaplanır. Gün sınırları, faturalandırma amacıyla America/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. Yedeklemenin boyutu, geri yükleme işlemlerinin birim fiyatıyla (GiB) çarpılır.

Sorgu Açıklaması

Firestore Query Explain kullanımı ücrete tabidir.

Sorgu varsayılan seçenekle açıklandığında dizin okuma işlemi yapılmaz. Sorgunun karmaşıklığına bakılmaksızın 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 ücretlendirilirsiniz. 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ş bir mesaj biçimine göre 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'u kullanarak fatura 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
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)
ABD bölgeleri arasındaki trafik hariç olmak üzere bölgeler arasında veri aktarımı 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, aşağıdakiler için ek internet çıkış ücretlerine de tabidir:

  • ABD bölgeleri arasındaki trafik hariç olmak üzere bölgeler arasında Google Cloud istek
  • Google Cloud dışından gelen istekler (ör. kullanıcının mobil cihazından)

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

Fiyatlandırma örneğini inceleme

Cloud Firestore faturalandırma maliyetlerinin gerçek dünyadaki örnek bir uygulamada nasıl tahakkuk ettiğini görmek için Cloud Firestore faturalandırma örneğini inceleyin.

Harcamaları yönetme

Faturanızda beklenmedik ücretler görmemek için Google Cloud konsolunda aylık bütçeler ve uyarılar ayarlayın.

Cloud Firestore kullanımınızı Firebase konsolundan izlemek için Veritabanları ve Depolama > Firestore > Kullanım sekmesine gidin. Farklı dönemlerdeki kullanımınızı ölçmek için bu kontrol panelini kullanın.