Harga Firestore

Dokumen ini menjelaskan detail harga Firestore.

Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda pada SKU Cloud Platform.

Ringkasan harga

Saat menggunakan Firestore, Anda akan dikenai biaya atas hal-hal berikut:

  • Jumlah dokumen yang Anda baca, tulis, dan hapus.
  • Jumlah entri indeks yang dibaca untuk memenuhi kueri. Lihat detail selengkapnya tentang pembacaan indeks.
  • Jumlah penyimpanan yang digunakan database Anda, termasuk overhead untuk metadata dan indeks.
  • Jumlah bandwidth jaringan yang digunakan.

Penggunaan bandwidth dan penyimpanan dihitung dalam gigabyte (GiB), dengan 1 GiB = 230 byte. Semua biaya akan diakumulasikan per hari.

Bagian berikut memberikan detail tentang cara Anda akan ditagih untuk penggunaan Firestore.

Kuota gratis

Firestore menawarkan kuota gratis sehingga Anda dapat memulai database (default) tanpa biaya. Jumlah kuota gratis tersebut tercantum di bawah ini. Jika memerlukan kuota lebih banyak, Anda harus mengaktifkan penagihan untuk project Google Cloud.

Kuota diterapkan setiap hari dan direset pada tengah malam waktu Pasifik.

Hanya database (default) yang memenuhi syarat untuk mendapatkan kuota gratis.

Paket gratis Kuota
Data tersimpan 1 GiB
Pembacaan dokumen 50.000 per hari
Penulisan dokumen 20.000 per hari
Penghapusan dokumen 20.000 per hari
Transfer data keluar 10 GiB per bulan

Operasi dan fitur berikut tidak mencakup penggunaan gratis. Anda harus mengaktifkan penagihan untuk menggunakan fitur ini:

  • Penggunaan database bernama (non-default)
  • Penghapusan TTL
  • Data PITR
  • Mencadangkan data
  • Operasi pemulihan

Untuk mengetahui informasi selengkapnya tentang cara penagihan fitur ini, lihat Harga penyimpanan.

Harga berdasarkan lokasi

Tabel berikut mencantumkan harga untuk pembacaan, penulisan, penghapusan, dan penyimpanan untuk setiap lokasi Firestore:

Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda di SKU Cloud Platform.

Tidak ada kuota gratis untuk database bernama

Untuk membuat database bernama (non-default), Anda harus mengaktifkan penagihan.

Tidak ada biaya tambahan bagi Anda untuk membuat atau menghapus database bernama, tetapi database tersebut tidak memenuhi syarat untuk kuota gratis. Sebagai gantinya, Anda akan ditagih atas penggunaan yang terjadi pada database bernama tersebut.

Pembacaan, penulisan, dan penghapusan

Anda dikenai biaya untuk pembacaan dokumen dan entri indeks untuk memenuhi kueri. Anda dikenai biaya untuk setiap penulisan dan penghapusan dokumen yang Anda lakukan.

Pengenaan biaya untuk penulisan dan penghapusan dihitung dengan mudah. Untuk operasi tulis, setiap operasi set atau update dihitung satu penulisan.

Namun, harap diperhatikan bahwa pengenaan biaya untuk operasi baca agak sedikit berbeda. Bagian berikut ini akan menjelaskan perbedaan tersebut secara detail.

Pembacaan entri indeks

Anda dikenai biaya satu operasi baca untuk setiap batch hingga 1.000 entri indeks yang dibaca oleh kueri kecuali dalam hal berikut:

  • Untuk kueri penelusuran vektor tetangga K-terdekat, Anda dikenai biaya satu operasi baca untuk setiap batch hingga 100 entri indeks vektor kNN yang dibaca oleh kueri.

    Misalnya, jika kueri penelusuran vektor berikut dengan limit: 5 menampilkan 5 dokumen dan membaca 1550 entri indeks vektor kNN, Anda akan ditagih 5 operasi baca untuk dokumen yang ditampilkan dan 16 operasi baca untuk entri indeks:

    // 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'
    });
    
  • Kueri yang memiliki hingga satu kolom rentang tidak dikenai biaya untuk entri indeks yang dibaca.

    Misalnya, kueri berikut berisi satu kolom kesetaraan (age) dan satu kolom rentang (start_date) dan tidak dikenai biaya untuk entri indeks yang dibaca:

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

    Kueri berikut berisi dua kolom rentang (age dan start_date) serta ditagih untuk entri indeks yang dibaca:

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

    Kolom yang muncul dalam urutan berdasarkan klausa dianggap sebagai kolom rentang ketika ada setidaknya satu kolom rentang lain dalam kueri. Oleh karena itu, kueri berikut berisi dua kolom rentang (age dan start_date) serta dikenai biaya untuk entri indeks yang dibaca:

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

    Kolom __name__ selalu dianggap sebagai kolom rentang, meskipun hanya digunakan dalam filter kesetaraan. Oleh karena itu, kueri berikut berisi dua kolom rentang (age dan __name__) serta dikenai biaya untuk entri indeks yang dibaca:

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

Kueri agregasi

Untuk kueri agregasi seperti count(), sum(), dan avg(), Anda dikenakan biaya untuk entri indeks yang dibaca oleh kueri sebagai yang dijelaskan di atas. Untuk kueri agregasi yang membaca 0 entri indeks, ada biaya minimum pada satu pembacaan dokumen.

Misalnya, operasi count() yang membaca antara 0 dan 1.000 entri indeks akan ditagih untuk satu pembacaan dokumen. Untuk operasi count() yang membaca 1.500 entri indeks, Anda akan ditagih 2 pembacaan dokumen.

Untuk mempelajari lebih lanjut indeks yang digunakan dan entri indeks yang dibaca, gunakan Query Explain.

Memproses hasil kueri

Dengan Firestore, Anda bisa memproses hasil kueri dan mendapatkan pembaruan realtime saat hasil kueri berubah.

Saat memproses hasil kueri, Anda akan dikenai biaya pembacaan setiap kali terdapat penambahan atau pembaruan dokumen di kumpulan hasil. Anda juga dikenai biaya pembacaan ketika dokumen dihapus dari kumpulan hasil karena dokumen telah berubah. (Sebaliknya, saat dokumen dihapus, Anda tidak dikenai biaya pembacaan.)

Penagihan pemroses di SDK seluler dan web juga bergantung pada apakah persistensi offline diaktifkan atau tidak:

  • Jika persistensi offline diaktifkan dan pemroses tidak terhubung selama lebih dari 30 menit (misalnya, jika pengguna offline), Anda akan dikenai biaya entri dokumen dan indeks yang dibaca karena dianggap telah mengeluarkan kueri baru.

  • Jika persistensi offline dinonaktifkan, Anda akan dikenai biaya entri dokumen dan entri yang dibaca karena dianggap telah mengeluarkan kueri baru setiap kali pemroses tidak terhubung dan terhubung kembali.

Mengelola kumpulan hasil yang besar

Firestore memiliki beberapa fitur untuk membantu Anda mengelola kueri yang menampilkan hasil dalam jumlah besar:

  • Cursor, membuat Anda dapat melanjutkan kueri yang telah berjalan lama.
  • Page token, membantu Anda memberi nomor pada hasil kueri.
  • Limit, menentukan berapa banyak hasil yang akan diambil.
  • Offset, membuat Anda dapat melewati sejumlah dokumen tertentu.

Penggunaan cursor, page token, dan limit tidak dikenai biaya tambahan. Tidak hanya itu, semua fitur tersebut dapat membantu menghemat uang hanya dengan membaca dokumen yang Anda butuhkan.

Namun, jika terdapat offset dalam kueri yang dikirim, Anda dikenai biaya pembacaan untuk setiap dokumen yang dilewatkan. Misalnya, jika kueri menggunakan offset 10, dan kueri tersebut menampilkan 1 dokumen, Anda akan dikenai biaya untuk 11 pembacaan. Karena biaya tambahan ini, Anda harus menggunakan cursor dan bukan offset, jika memungkinkan.

Kueri selain pembacaan dokumen

Untuk kueri selain pembacaan dokumen, seperti permintaan daftar ID koleksi, Anda dikenai biaya untuk pembacaan satu dokumen. Jika diperlukan lebih dari satu permintaan untuk mengambil kumpulan hasil yang lengkap (misalnya, jika menggunakan penomoran halaman), Anda akan dikenai biaya sebanyak satu kali per permintaan.

Biaya minimum untuk kueri

Terdapat biaya minimum pada satu pembacaan dokumen untuk setiap kueri yang Anda lakukan, meskipun kueri tidak menampilkan hasil apa pun.

Aturan Keamanan Firestore

Untuk library klien seluler dan web, jika Aturan Keamanan Firestore menggunakan exists(), get(), atau getAfter() untuk membaca satu atau beberapa dokumen dari database, Anda akan dikenai biaya untuk pembacaan tambahan sebagai berikut:

  • Anda dikenai biaya pembacaan yang diperlukan untuk mengevaluasi Aturan Keamanan Firestore.

    Misalnya, jika aturan Anda merujuk pada tiga dokumen, tetapi Firestore hanya perlu membaca dua dokumen untuk mengevaluasi aturan, Anda akan dikenai biaya untuk dua pembacaan tambahan terhadap dokumen tertanggung.

    Anda hanya dikenai biaya untuk satu kali pembacaan per dokumen tertanggung, bahkan jika dokumen tersebut dirujuk lebih dari satu kali oleh aturan Anda.

  • Anda hanya dikenai biaya untuk evaluasi aturan sebanyak satu kali per permintaan.

    Oleh karena itu, biaya pembacaan banyak dokumen menjadi lebih murah daripada membaca dokumen satu per satu, karena permintaan yang dibutuhkan lebih sedikit untuk membaca beberapa dokumen sekaligus.

  • Saat memproses hasil kueri, Anda dikenai biaya untuk evaluasi aturan dalam semua kasus berikut:

    • Saat Anda mengeluarkan kueri.
    • Setiap kali hasil kueri diperbarui.
    • Kapan pun perangkat pengguna offline, lalu kembali online.
    • Kapan pun Anda mengubah aturan.
    • Kapan pun Anda memperbarui dokumen tertanggung dalam aturan.

Ukuran penyimpanan database

Anda dikenai biaya untuk jumlah data yang disimpan di Firestore, termasuk overhead penyimpanan. Jumlah overhead meliputi metadata, indeks otomatis, dan indeks gabungan.

Setiap dokumen yang disimpan di Firestore memerlukan metadata berikut:

  • ID dokumen, termasuk ID koleksi dan nama dokumen.
  • Nama dan nilai setiap kolom. Karena Firestore tidak memiliki skema, nama setiap kolom dalam dokumen harus disimpan bersama nilai kolom.
  • Indeks gabungan dan indeks satu kolom yang mengacu pada dokumen. Setiap entri indeks akan berisi ID koleksi; sejumlah nilai kolom, bergantung pada definisi indeks; dan nama dokumen.

Biaya penyimpanan dalam GiB/bulan dan dihitung setiap hari. Firestore mengukur ukuran database setiap hari. Selama sebulan, titik contoh ini dirata-ratakan untuk menghitung ukuran penyimpanan database. Nilai rata-rata ini dikalikan dengan harga satuan penyimpanan (GiB-bulan)

Pelajari cara menghitung penyimpanan Firestore di Perhitungan Ukuran Penyimpanan.

Data PITR

Jika mengaktifkan PITR, Anda akan dikenai biaya untuk penyimpanan data PITR. Sebagian besar pelanggan akan menemukan bahwa biaya keseluruhan penyimpanan data PiTR hampir sama dengan biaya penyimpanan database.

Biaya penyimpanan untuk PITR adalah dalam GiB/bulan dan dihitung setiap hari. Firestore mengukur ukuran database setiap hari. Selama sebulan, titik contoh ini dirata-ratakan untuk menghitung ukuran penyimpanan database. Nilai rata-rata ini dikalikan dengan harga satuan PITR (GiB-bulan).

Misalnya, jika ukuran rata-rata database Anda selama satu bulan adalah 1 GiB dan PITR diaktifkan untuk satu bulan penuh, maka ukuran data PITR yang dapat ditagih juga 1 GiB.

Penagihan minimum: Anda dapat ditagih hingga 1 hari biaya penyimpanan PITR meskipun Anda menonaktifkan PITR dalam satu hari setelah pengaktifan.

Operasi pencadangan dan pemulihan data

Jika Anda mengaktifkan backups, Anda akan dikenai biaya untuk penyimpanan cadangan database. Ukuran penyimpanan untuk cadangan sama dengan ukuran penyimpanan database saat cadangan diambil.

Biaya penyimpanan untuk cadangan adalah dalam GiB/bulan. Selama periode sebulan, jumlah hari saat setiap cadangan dipertahankan dan rata-rata selama sebulan juga akan dihitung. Biaya setiap cadangan dihitung menggunakan ukuran penyimpanan cadangan dikalikan dengan proporsi bulan saat cadangan dipertahankan, dikalikan dengan harga satuan. Batas hari ditentukan oleh zona waktu America/Los_Angeles untuk tujuan penagihan.

Saat Anda menjalankan operasi pemulihan, Firestore akan mengukur ukuran cadangan untuk operasi pemulihan. Ukuran cadangan dikalikan dengan harga satuan operasi pemulihan (GiB).

Query Explain

Penggunaan Firestore Query Explain akan menimbulkan biaya.

Saat kueri dijelaskan dengan opsi default, tidak ada operasi baca indeks yang dilakukan. Terlepas dari kompleksitas kueri, satu operasi baca akan dikenai biaya.

Saat kueri dijelaskan dengan opsi analisis, operasi indeks dan baca akan dijalankan, sehingga Anda akan dikenai biaya untuk kueri tersebut seperti biasa. Tidak ada biaya tambahan untuk aktivitas penjelasan dan analisis, hanya biaya biasa untuk kueri yang dijalankan.

Bandwidth jaringan

Anda dikenai biaya untuk bandwidth jaringan yang digunakan oleh permintaan Firestore, seperti yang ditunjukkan pada bagian berikut. Biaya bandwidth jaringan permintaan Firestore bergantung pada ukuran respons permintaan, lokasi database Firestore, dan tujuan respons.

Firestore menghitung ukuran respons berdasarkan format pesan yang diserialisasi. Overhead protokol, seperti overhead SSL, tidak diperhitungkan terhadap penggunaan bandwidth jaringan. Permintaan yang ditolak oleh Aturan Keamanan Firestore Anda tidak akan memengaruhi penggunaan bandwidth jaringan.

Untuk mengetahui jumlah bandwidth jaringan yang telah digunakan, Anda dapat menggunakan konsol Google Cloud untuk mengekspor data penagihan ke file.

Harga jaringan umum

Untuk permintaan yang berasal dari Google Cloud Platform (misalnya, dari aplikasi yang berjalan di Google Compute Engine), Anda dikenai biaya sebagai berikut:

Jenis traffic Harga
Transfer data masuk Gratis
Transfer data dalam suatu region Gratis
Transfer data antar-region dalam multi-region yang sama Gratis
Transfer data antar-region di AS (per GiB) $0,01 (gratis 10 GiB pertama per bulan)
Transfer data antar-region, tidak termasuk traffic antar-region di AS Kecepatan transfer data internet keluar Google Cloud Platform

Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda di SKU Cloud Platform.

Kecepatan transfer data internet

Anda akan dikenai biaya untuk transfer data internet untuk berikut ini:

  • Permintaan Google Cloud antar-region, tidak termasuk traffic antar-region AS
  • Permintaan dari luar Google Cloud (misalnya, dari perangkat seluler pengguna)

Jika Anda melakukan pembayaran dengan mata uang selain USD, yang berlaku adalah harga yang tercantum dalam mata uang Anda di SKU Cloud Platform.

Memantau penggunaan

Untuk mempelajari cara memantau penggunaan Firestore, lihat Memantau penggunaan.

Mengelola pengeluaran

Untuk mengelola pengeluaran, tetapkan anggaran dan pemberitahuan bulanan.

Anggaran dan pemberitahuan Google Cloud

Google Cloud memungkinkan Anda menetapkan anggaran bulanan untuk semua layanan Google Cloud. Gunakan anggaran bulanan untuk memantau biaya Google Cloud Anda secara keseluruhan, termasuk biaya bandwidth jaringan untuk Firestore. Setelah menetapkan anggaran, Anda dapat menetapkan pemberitahuan, yang akan membuat Anda menerima notifikasi email saat biaya mendekati anggaran.

Ikuti petunjuk ini untuk menetapkan anggaran bulanan dan membuat pemberitahuan di Konsol Google Cloud.

Contoh penghitungan harga

Untuk mengetahui cara akumulasi biaya penagihan Firestore dalam contoh aplikasi nyata, lihat contoh penagihan Firestore.

Langkah berikutnya

Meminta penawaran harga khusus

Dengan model harga bayar sesuai penggunaan Google Cloud, Anda hanya membayar untuk layanan yang Anda gunakan. Hubungi tim penjualan kami untuk mendapatkan penawaran harga khusus bagi organisasi Anda.
Hubungi bagian penjualan