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
danstart_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
danstart_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
- Baca dokumentasi Firestore.
- Mulai menggunakan Firestore.
- Coba Kalkulator Harga.
- Pelajari solusi dan kasus penggunaan Firestore.