Guarda un esempio di prezzi di Cloud Firestore

Utilizza questo esempio reale di un'app di chat di base per valutare l'utilizzo e i costi di Cloud Firestore. Non si tratta di una stima esatta, ma può aiutarti a comprendere meglio come viene fatturato l'utilizzo di Cloud Firestore.

Panoramica: costi per livello di utilizzo

Per illustrare i costi tipici, considera un'app di chat di esempio, in cui gli utenti possono avviare chat con due o più partecipanti. Gli utenti possono vedere le chat attive in un elenco, leggere messaggi e inviare messaggi. Per questo esempio, utilizziamo i prezzi per la multiregione del Nord America (in particolare nam5 ).

Ipotesi

Considerare i seguenti presupposti sull'utilizzo e sull'archiviazione dei dati:

  • Gli utenti attivi giornalieri (DAU) rappresentano il 10% delle installazioni totali delle app. Puoi stimare i costi giornalieri utilizzando una stima approssimativa dei tuoi utenti attivi giornalieri (DAU). Questi sono gli utenti che aprono e utilizzano attivamente la tua app in un determinato giorno, che in genere rappresenta un piccolo sottoinsieme delle installazioni totali dell'app. Per i calcoli seguenti, abbiamo stimato che le DAU rappresentino il 10% del numero totale di installazioni di app.
  • Le dimensioni dei documenti sono relativamente piccole. Consulta la tabella seguente per una suddivisione delle dimensioni del documento per tipo.
  • I dati vengono archiviati solo per tre mesi. I messaggi nell'app di chat di esempio vengono archiviati solo per un periodo di tre mesi. Per tenere conto delle operazioni di eliminazione, i calcoli seguenti mostrano un'eliminazione giornaliera per ogni scrittura giornaliera.
  • Queste stime dei costi riflettono la maggior parte dei costi dell'app di esempio, ma non tutti. Abbiamo tenuto conto della maggior parte dei costi di un'app calcolando le operazioni, l'archiviazione di utenti e messaggi e il traffico in uscita per le attività utente più frequenti descritte in questa guida. Tuttavia, potresti dover prendere in considerazione costi aggiuntivi, a seconda della struttura della tua app e delle esigenze di dati. Utilizza questo esempio per guidare i tuoi calcoli, ma fai riferimento alla pagina dei prezzi per spiegazioni più approfondite sui costi di Cloud Firestore.

Per una ripartizione delle operazioni per attività utente, vedere la sezione Ripartizione: utilizzo fatturato per attività utente .

Piccolo
(50.000 installazioni)

Per 50.000 installazioni di app (5.000 utenti attivi giornalieri): $ 12,14/mese

Costi di lettura/scrittura
Costo mensile totale = $ 11,10/mese
400.000 letture giornaliere totali = 50.000 letture gratuite + (350.000 letture a $ 0,06/100.000) = 3,5 * $ 0,06
$ 0,21 al giorno * 30 = $ 6,30
100.000 scritture giornaliere totali = 20.000 scritture gratuite + (80.000 scritture a $ 0,18/100.000) = 0,8 * $ 0,18
$ 0,14 al giorno * 30 = $ 4,20
Eliminazioni giornaliere totali di 100.000 = 20.000 eliminazioni gratuite + (80.000 eliminazioni a $ 0,02/100.000) = 0,8 * $ 0,02
$ 0,02 al giorno * 30 = $ 0,60
Costi di archiviazione/rete
Costo mensile totale = $ 1,04/mese
20KB/DAU di uscita giornaliera * 5K DAU = 100 MB di uscita giornaliera * 30 = 3GB mensili in uscita dalla rete
3 GB in uscita senza costi = Senza costi 1
15 KB di spazio di archiviazione giornaliero dei messaggi/DAU + 3 KB di spazio di archiviazione/installazione 2 = 45KB di spazio di archiviazione/DAU * 5K DAU = 225 MB di spazio di archiviazione giornaliero / DAU * 30 = Utilizzo dello spazio di archiviazione mensile di 6,75 GB
1 GB di spazio di archiviazione gratuito + (5,75 * $ 0,18) = $ 1,04 al mese

1 10 GB di uscita di rete mensile non hanno alcun costo per Cloud Firestore.
2 Poiché presupponiamo che le DAU rappresentino il 10% delle installazioni totali dell'app, questo numero rappresenta il numero totale di utenti che hanno installato la tua app.

medio
(1 milione di installazioni)

Per 1.000.000 di installazioni di app (100.000 utenti attivi giornalieri): $ 292,02/mese

Costi di lettura/scrittura
Costo mensile totale = $ 261,90/mese
8 milioni di letture giornaliere totali = 50.000 letture gratuite + (7,95 milioni di letture a $ 0,06/100.000) = 79,5 * $ 0,06
$ 4,77 / giorno * 30 = $ 143,10
2 milioni di scritture giornaliere totali = 20.000 scritture gratuite + (1,98 milioni di scritture a $ 0,18/100.000) = 19,8 * $ 0,18
$ 3,56 al giorno * 30 = $ 106,80
Eliminazioni giornaliere totali di 2 milioni = 20.000 eliminazioni gratuite + (1,98 milioni di eliminazioni a $ 0,02/100.000) = 19,8 * $ 0,02
$ 0,40 / giorno * 30 = $ 12,00
Costi di archiviazione/rete
Costo mensile totale = $ 30,12/mese
20KB/DAU di uscita giornaliera * 100.000 DAU = 2 GB di uscita giornaliera * 30 = 60 GB di uscita di rete mensile
10 GB in uscita senza costi + (50 GB in uscita * $ 0,12/GB) = $ 6,00 al mese
15 KB di spazio di archiviazione giornaliero dei messaggi/DAU + 3 KB di spazio di archiviazione/installazione 1 = 45KB di spazio di archiviazione/DAU * 100.000 DAU = 4,5 GB di spazio di archiviazione giornaliero / DAU * 30 = Utilizzo dello spazio di archiviazione mensile di 135 GB
1 GB di spazio di archiviazione gratuito + (134 GB * $ 0,18/GB) = $ 24,12 al mese

1 Poiché presupponiamo che le DAU rappresentino il 10% delle installazioni totali dell'app, questo numero rappresenta il numero totale di utenti che hanno installato la tua app.

Grande
(10 milioni di installazioni)

Per 10.000.000 di installazioni di app (1.000.000 di utenti attivi giornalieri): $ 2.951,52

Costi di lettura/scrittura
Costo mensile totale = Totale: $ 2637,90/mese
80 milioni di letture giornaliere totali = 50.000 letture gratuite + (79,95 milioni di letture a $ 0,06/100.000) = 799,5 * $ 0,06
$ 47,97 / giorno * 30 = $ 1439,10
20 milioni di scritture giornaliere totali = 20.000 scritture gratuite + (19,98 milioni di scritture a $ 0,18/100.000) = 199,8 * $ 0,18
$ 35,96 / giorno * 30 = $ 1078,80
Eliminazioni giornaliere totali di 20 milioni = 20.000 eliminazioni gratuite + (19,98 milioni di eliminazioni a $ 0,02/100.000) = 199,8 * $ 0,02
$ 4,00 / giorno * 30 = $ 120,00
Costi di archiviazione/rete
Costo mensile totale = $ 313,62/mese
20KB/DAU di uscita giornaliera * 1 milione di DAU = 20 GB di uscita giornaliera * 30 = 600 GB di uscita di rete mensile
10 GB in uscita senza costi + (590 GB in uscita * $ 0,12/GB) = $ 70,80/mese
15 KB di spazio di archiviazione giornaliero dei messaggi/DAU + 3 KB di spazio di archiviazione/installazione 1 = 45 KB di spazio di archiviazione/DAU * 1 milione di DAU = 45 GB di spazio di archiviazione giornaliero / DAU * 30 = Utilizzo dello spazio di archiviazione mensile di 1.350 GB
(1 GB di spazio di archiviazione gratuito) + (1.349 GB * 0,18 USD/GB) = 242,82 USD al mese

1 Poiché presupponiamo che le DAU rappresentino il 10% delle installazioni totali dell'app, questo numero rappresenta il numero totale di utenti che hanno installato la tua app.

Un vantaggio del modello di fatturazione Cloud Firestore che vale la pena considerare è che paghi solo per ciò che utilizzi. Di conseguenza, la tua fattura potrebbe aumentare e ridursi con il conteggio DAU.

Suddivisione: utilizzo fatturato per attività utente

Per la nostra app di chat di esempio, la struttura dei dati è la seguente:

  • users/{userId} : record utente
  • groups/{groupId} : chat tra 2 o più utenti
    • messages/{messageId} : ogni messaggio in una chat.

Archivio dati

Per calcolare i costi di archiviazione per l'archiviazione dei dati dell'app, applica i seguenti presupposti sulle dimensioni dei documenti:

Collezione Dimensioni documento (in transito) Dimensioni documento (su disco)*
utenti 1KB 3KB
gruppi 0,5KB 1,5KB
messaggi 0,25KB 0,75KB

*Questo calcolo delle dimensioni include gli indici per i campi del messaggio, ma presuppone che l'indicizzazione sia disabilitata per il contenuto del messaggio.

L'app memorizza inoltre solo i messaggi risalenti fino a tre mesi fa, per ridurre i costi di archiviazione.

Per ulteriori informazioni sul calcolo dei costi di archiviazione, vedere Informazioni sui calcoli delle dimensioni di archiviazione .

Operazioni

Gli utenti in genere completano le seguenti attività comuni nell'app:

Le operazioni totali stimate dell'app di esempio in Cloud Firestore per le tre attività utente tipiche sono le seguenti:

  • Letture: (5 * 10) + (30) = 80 letture/utente/giorno
  • Scritture: (10 * 2) = 20 scritture/utente/giorno
  • Uscita dalla rete : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB/utente/giorno
  • Archiviazione : (20 * 0,75 KB) = 15 KB/utente/giorno

Utilizzo totale per attività utente

Seleziona ciascuna attività utente per visualizzare una descrizione completa e un'analisi dettagliata dei costi operativi, di archiviazione e di rete nell'app.

Visualizza l'elenco delle chat

La schermata iniziale dell'app carica le 25 chat più recenti, comportando addebiti per 25 letture di documenti. Supponiamo che un utente attivo apra l'app 5 volte al giorno, per un totale di 125 letture per utente ogni giorno. Tuttavia, query più efficienti, come quella nell'esempio seguente, possono ridurre questo carico.

Nell'esempio seguente, limitiamo la query alle nuove chat utilizzando un timestamp di ogni recupero riuscito, memorizzato dall'app:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Supponiamo che ci siano una media di 10 chat aggiornate ogni volta che l'utente controlla l'app. Questa query comporta solo 10 letture di documenti.

Leggi i messaggi in una chat

Gli utenti fanno clic sui thread della chat dalla schermata principale per visualizzare i messaggi recenti, caricando i 50 messaggi più recenti nel caricamento iniziale.

Supponiamo che l'utente tipico esegua questa azione 5 volte al giorno (una volta per ogni volta che apre la schermata iniziale), per un totale di 250 letture per utente ogni giorno. Possiamo anche limitare la nostra query ai nuovi messaggi dall'ultimo recupero:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Supponiamo che un utente riceva circa 30 messaggi al giorno in tutte le chat. Poiché hai limitato la query al recupero di nuovi messaggi, ciò si traduce in soli 30 messaggi recuperati al giorno.

Invia un messaggio a una chat

Gli utenti possono inviare messaggi ad altri partecipanti una volta entrati in una chat. Supponiamo che un utente attivo invii circa 10 messaggi al giorno.

Ogni messaggio inviato causerà due scritture di documenti: una scrittura nella sottoraccolta messages della chat e una scrittura nel documento principale della chat per aggiornare il timestamp lastUpdated e altri metadati.

Tieni presente che il costo della lettura di questi messaggi è stato contabilizzato negli altri viaggi, quindi i totali seguenti considerano solo questo costo di scrittura.

Utilizzo fatturato per attività di amministratore

In qualità di proprietario o amministratore di un'app, probabilmente vorrai generare report dai dati della tua app. Ad esempio, potresti voler tenere un conteggio giornaliero del numero di messaggi inviati dai tuoi utenti. È possibile ottenere ciò con un'aggregazione count() del gruppo di raccolta messages .

Per le query di aggregazione come count() , ti viene addebitato un documento letto per ogni batch di un massimo di 1.000 voci di indice corrispondenti alla query. L'esecuzione di questa aggregazione giornaliera aggiunge i seguenti addebiti mensili:

Piccolo
(50.000 installazioni)

Per 50.000 installazioni di app (5.000 DAU): $ 0,0009/mese

5.000 utenti attivi * 10 nuovi messaggi per utente = 50.000 nuovi documenti di messaggi al giorno

50.000 documenti contati / 1.000 corrispondenze indice per addebito di lettura = 50 letture

50 letture al giorno * 30 giorni = 1.500 letture al mese

1.500 letture al mese * 0,06/100.000 prezzo di lettura = $ 0,0009 al mese

medio
(1 milione di installazioni)

Per 1.000.000 di installazioni di app (100.000 utenti attivi giornalieri): $ 0,018/mese

100.000 utenti attivi * 10 nuovi messaggi per utente = 1.000.000 di nuovi documenti messaggio al giorno

1.000.000 di documenti contati / 1.000 corrispondenze indice per addebito di lettura = 1.000 letture

1.000 letture al giorno * 30 giorni = 30.000 letture al mese

30.000 letture al mese * 0,06/100.000 prezzo di lettura = $ 0,018 al mese

Grande
(10 milioni di installazioni)

Per 10.000.000 di installazioni di app (1.000.000 di utenti attivi giornalieri): $ 0,18

1.000.000 di utenti attivi * 10 nuovi messaggi per utente = 10.000.000 di nuovi documenti di messaggi al giorno

10.000.000 di documenti contati / 1.000 corrispondenze indice per addebito di lettura = 10.000 letture

10.000 letture al giorno * 30 giorni = 300.000 letture al mese

300.000 letture al mese * 0,06/100000 prezzo di lettura = $ 0,18 al mese

Vantaggi inclusi: servizi gratuiti per la tua app

Sebbene le operazioni, lo spazio di archiviazione e la larghezza di banda di rete di Cloud Firestore siano tutti considerati utilizzo fatturabile, ottieni anche una serie di altri vantaggi senza costi aggiuntivi. Considera i seguenti servizi gratuiti mentre confronti Cloud Firestore con altre opzioni di database:

  • Accesso client diretto: è possibile accedere a Cloud Firestore direttamente dal codice client utilizzando i nostri SDK nativi. Ciò significa che non è necessario creare ed eseguire un server API per connettere i client mobili al database.
  • Bilanciamento del carico: poiché Cloud Firestore si ridimensiona automaticamente per supportare il traffico verso il tuo database, non è necessario eseguire un bilanciatore del carico.
  • Tempo di attività del server: i database Cloud Firestore operano sui server Google Cloud, offrendo oltre il 99% di tempo di attività mensile .
  • Autenticazione: autentica un numero illimitato di utenti in modo semplice e sicuro con l'autenticazione Firebase . Firebase Authentication si integra direttamente con Cloud Firestore, quindi non è necessario eseguire il proprio servizio di autenticazione.
  • Notifiche push: invia messaggi e notifiche con Cloud Messaging .
  • Altri prodotti Firebase: integra altri prodotti Firebase senza alcun costo, inclusi test A/B, analisi, crashlytics, monitoraggio delle prestazioni e configurazione remota. Ulteriori informazioni sugli altri prodotti Firebase e sui prezzi Firebase .