Catch up on highlights from Firebase at Google I/O 2023. Learn more

Voir un exemple de tarification Cloud Firestore

Utilisez cet exemple concret d'application de chat de base pour évaluer votre utilisation et vos coûts Cloud Firestore. Il ne s'agit pas d'une estimation exacte, mais cela peut vous aider à mieux comprendre comment votre utilisation de Cloud Firestore est facturée.

Présentation : Coûts par niveau d'utilisation

Pour illustrer les coûts typiques, considérons un exemple d'application de chat, où les utilisateurs peuvent initier des chats avec deux participants ou plus. Les utilisateurs peuvent voir leurs discussions actives dans une liste, lire des messages et envoyer des messages. Pour cet exemple, nous utilisons la tarification pour l'Amérique du Nord multirégionale (spécifiquement nam5 ).

Hypothèses

Tenez compte des hypothèses suivantes concernant l'utilisation et le stockage des données :

  • Les utilisateurs actifs quotidiens (DAU) représentent 10 % du nombre total d'installations d'applications. Vous pouvez estimer vos coûts quotidiens à l'aide d'une estimation approximative de vos utilisateurs actifs quotidiens (DAU). Il s'agit des utilisateurs qui ouvrent et utilisent activement votre application un jour donné, ce qui représente généralement un petit sous-ensemble de vos installations totales d'applications. Pour les calculs ci-dessous, nous avons estimé les DAU à 10 % du nombre total d'installations d'applications.
  • La taille des documents est relativement petite. Voir le tableau ci-dessous pour une répartition de la taille des documents par type.
  • Les données ne sont stockées que pendant trois mois. Les messages de l'exemple d'application de chat ne sont stockés que pendant une période de trois mois. Pour tenir compte des opérations de suppression, les calculs ci-dessous montrent une suppression quotidienne pour chaque écriture quotidienne.
  • Ces estimations de coûts reflètent la majeure partie des coûts de l'exemple d'application, mais pas la totalité. Nous avons pris en compte l'essentiel des coûts d'une application en calculant les opérations, le stockage des utilisateurs et des messages, et la sortie pour les tâches utilisateur les plus fréquentes décrites dans ce guide. Cependant, vous devrez peut-être prendre en compte des coûts supplémentaires, en fonction de la structure de votre application et des besoins en données. Utilisez cet exemple pour guider vos calculs, mais reportez-vous à la page de tarification pour des explications plus détaillées sur les coûts de Cloud Firestore.

Pour une répartition des opérations par tâche utilisateur, consultez la section Répartition : consommation facturée par tâche utilisateur .

Petit
(50 000 installations)

Pour 50 000 installations d'applications (5 000 utilisateurs actifs quotidiens) : 12,14 $/mois

Coûts de lecture/écriture
Coût mensuel total = 11,10 $/mois
400 000 lectures quotidiennes au total = 50 000 lectures gratuites + (350 000 lectures à 0,06 $/100 000) = 3,5 * 0,06 $
0,21 $ / jour * 30 = 6,30 $
100 000 écritures quotidiennes au total = 20 000 écritures gratuites + (80 000 écritures à 0,18 $/100 000) = 0,8 * 0,18 $
0,14 $ / jour * 30 = 4,20 $
100 000 suppressions quotidiennes au total = 20 000 suppressions gratuites + (80 000 suppressions à 0,02 $/100 000) = 0,8 * 0,02 $
0,02 $ / jour * 30 = 0,60 $
Coûts de stockage/réseau
Coût mensuel total = 1,04 $/mois
20 Ko/DAU de sortie quotidienne * 5 000 DAU = 100 Mo de sortie quotidienne * 30 = Sortie réseau mensuelle de 3 Go
3 Go de sortie sans frais = sans frais 1
15 Ko de stockage quotidien des messages / DAU + 3 Ko de stockage / installation 2 = 45 Ko de stockage / DAU * 5K DAU = 225 Mo de stockage quotidien / DAU * 30 = 6,75 Go d'utilisation mensuelle du stockage
1 Go de stockage gratuit + (5,75 * 0,18 $) = 1,04 $ / mois

1 10 Go de sortie réseau mensuelle sont gratuits pour Cloud Firestore.
2 Étant donné que nous supposons que les DAU représentent 10 % du nombre total d'installations d'applications, ce nombre représente le nombre total d'utilisateurs qui ont installé votre application.

Moyen
(1 million d'installations)

Pour 1 000 000 d'installations d'applications (100 000 utilisateurs actifs quotidiens) : 292,02 $/mois

Coûts de lecture/écriture
Coût mensuel total = 261,90 $/mois
8 millions de lectures quotidiennes au total = 50 000 lectures gratuites + (7,95 millions de lectures à 0,06 $/100 000) = 79,5 * 0,06 $
4,77 $ / jour * 30 = 143,10 $
2 millions d'écritures quotidiennes au total = 20 000 écritures gratuites + (1,98 million d'écritures à 0,18 $/100 000) = 19,8 * 0,18 $
3,56 $ / jour * 30 = 106,80 $
2 millions de suppressions quotidiennes totales = 20 000 suppressions gratuites + (1,98 million de suppressions à 0,02 $/100 000) = 19,8 * 0,02 $
0,40 $ / jour * 30 = 12,00 $
Coûts de stockage/réseau
Coût mensuel total = 30,12 $/mois
20 Ko/DAU de sortie quotidienne * 100 000 DAU = 2 Go de sortie quotidienne * 30 = Sortie réseau mensuelle de 60 Go
10 Go de sortie gratuite + (50 Go de sortie * 0,12 USD/Go) = 6,00 USD/mois
15 Ko de stockage quotidien des messages / DAU + 3 Ko de stockage / installation 1 = 45 Ko de stockage / DAU * 100 000 DAU = 4,5 Go de stockage quotidien / DAU * 30 = 135 Go d'utilisation mensuelle du stockage
1 Go de stockage gratuit + (134 Go * 0,18 $/Go) = 24,12 $/mois

1 Étant donné que nous partons du principe que les DAU représentent 10 % du nombre total d'installations d'applications, ce nombre représente le nombre total d'utilisateurs qui ont installé votre application.

Grand
(10 millions d'installations)

Pour 10 000 000 d'installations d'applications (1 000 000 d'utilisateurs actifs quotidiens) : 2 951,52 $

Coûts de lecture/écriture
Coût mensuel total = Total : 2 637,90 $/mois
80 millions de lectures quotidiennes au total = 50 000 lectures gratuites + (79,95 millions de lectures à 0,06 $/100 000) = 799,5 * 0,06 $
47,97 $ / jour * 30 = 1439,10 $
20 millions d'écritures quotidiennes au total = 20 000 écritures gratuites + (19,98 millions d'écritures à 0,18 $/100 000) = 199,8 * 0,18 $
35,96 $ / jour * 30 = 1078,80 $
20 millions de suppressions quotidiennes au total = 20 000 suppressions gratuites + (19,98 millions de suppressions à 0,02 $/100 000) = 199,8 * 0,02 $
4,00 $ / jour * 30 = 120,00 $
Coûts de stockage/réseau
Coût mensuel total = 313,62 $/mois
20 Ko/DAU de sortie quotidienne * 1 million de DAU = 20 Go de sortie quotidienne * 30 = Sortie réseau mensuelle de 600 Go
10 Go de sortie gratuite + (590 Go de sortie * 0,12 USD/Go) = 70,80 USD/mois
15 Ko de stockage quotidien des messages / DAU + 3 Ko de stockage / installation 1 = 45 Ko de stockage / DAU * 1M DAU = 45 Go de stockage quotidien / DAU * 30 = 1350 Go d'utilisation mensuelle du stockage
(1 Go de stockage gratuit) + (1 349 Go * 0,18 USD/Go) = 242,82 USD/mois

1 Étant donné que nous partons du principe que les DAU représentent 10 % du nombre total d'installations d'applications, ce nombre représente le nombre total d'utilisateurs qui ont installé votre application.

Un avantage du modèle de facturation Cloud Firestore à considérer est que vous ne payez que ce que vous utilisez. Par conséquent, votre facture peut augmenter et diminuer avec votre nombre de DAU.

Répartition : utilisation facturée par tâche utilisateur

Pour notre exemple d'application de chat, la structure des données est la suivante :

  • users/{userId} – Enregistrements d'utilisateurs
  • groups/{groupId} — Chats entre 2 utilisateurs ou plus
    • messages/{messageId} — Chaque message dans un chat.

Stockage de données

Pour calculer les coûts de stockage des données de l'application, appliquez les hypothèses suivantes concernant la taille des documents :

Collection Taille du document (en transit) Taille du document (sur disque)*
utilisateurs 1 Ko 3 Ko
groupes 0,5 Ko 1.5Ko
messages 0,25 Ko 0,75 Ko

*Ce calcul de taille inclut les index des champs de message, mais suppose que l'indexation est désactivée pour le contenu du message.

L'application ne stocke également que les messages datant de moins de trois mois, afin de réduire les coûts de stockage.

Pour plus d'informations sur le calcul des coûts de stockage, consultez Présentation des calculs de taille de stockage .

Opérations

Les utilisateurs effectuent généralement les tâches courantes suivantes dans l'application :

Les opérations estimées totales de l'exemple d'application dans Cloud Firestore pour les trois tâches utilisateur typiques sont les suivantes :

  • Lectures : (5 * 10) + (30) = 80 lectures / utilisateur / jour
  • Ecritures : (10 * 2) = 20 écritures / utilisateur / jour
  • Sortie réseau : (50 * 0,25 Ko) + (30 * 0,25 Ko) = 20 Ko / utilisateur / jour
  • Stockage : (20 * 0.75KB) = 15 KB / utilisateur / jour

Utilisation totale par tâche utilisateur

Sélectionnez chaque tâche utilisateur pour afficher une description complète et une ventilation des coûts d'exploitation, de stockage et de mise en réseau dans l'application.

Voir la liste des chats

L'écran d'accueil de l'application charge les 25 discussions les plus récentes, entraînant des frais pour 25 lectures de documents. Supposons qu'un utilisateur actif ouvre l'application 5 fois par jour, totalisant 125 lectures par utilisateur chaque jour. Cependant, des requêtes plus efficaces, comme celle de l'exemple suivant, peuvent réduire cette charge.

Dans l'exemple ci-dessous, nous limitons la requête aux nouveaux chats en utilisant un horodatage de chaque récupération réussie, stocké par l'application :

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

Supposons qu'il y ait en moyenne 10 discussions mises à jour chaque fois que l'utilisateur consulte l'application. Cette requête n'implique que 10 lectures de documents.

Lire les messages dans un chat

Les utilisateurs cliquent sur les fils de discussion à partir de l'écran d'accueil pour voir les messages récents, en chargeant les 50 messages les plus récents lors du chargement initial.

Supposons que l'utilisateur type effectue cette action 5 fois par jour (une fois à chaque fois qu'il ouvre l'écran d'accueil), ce qui donne un total de 250 lectures par utilisateur chaque jour. Nous pouvons également limiter notre requête aux nouveaux messages depuis la dernière récupération :

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

Supposons qu'un utilisateur reçoive environ 30 messages par jour dans tous les chats. Puisque vous avez limité la requête pour récupérer les nouveaux messages, cela se traduit par seulement 30 messages récupérés/jour.

Envoyer un message à un chat

Les utilisateurs peuvent envoyer des messages à d'autres participants une fois qu'ils sont dans un chat. Supposons qu'un utilisateur actif envoie environ 10 messages par jour.

Chaque message envoyé entraînera deux écritures de document : une écriture dans la sous-collection messages du chat et une écriture dans le document parent du chat pour mettre à jour l'horodatage lastUpdated et d'autres métadonnées.

Notez que le coût de lecture de ces messages a été comptabilisé dans les autres trajets, donc les totaux ci-dessous ne tiennent compte que de ce coût d'écriture.

Utilisation facturée pour les tâches d'administrateur

En tant que propriétaire ou administrateur d'application, vous souhaitez probablement générer des rapports à partir des données de votre application. Par exemple, vous souhaiterez peut-être conserver un décompte quotidien du nombre de messages envoyés par vos utilisateurs. Vous pouvez accomplir cela avec une agrégation count() du groupe de collecte messages .

Pour les requêtes d'agrégation telles que count() , vous êtes facturé pour un document lu pour chaque lot de 1 000 entrées d'index maximum correspondant à la requête. L'exécution de cette agrégation quotidienne entraîne les frais mensuels suivants :

Petit
(50 000 installations)

Pour 50 000 installations d'application (5 000 DAU) : 0,0009 USD/mois

5 000 utilisateurs actifs * 10 nouveaux messages par utilisateur = 50 000 nouveaux documents de message par jour

50 000 documents comptés / 1 000 correspondances d'index par charge de lecture = 50 lectures

50 lectures par jour * 30 jours = 1 500 lectures par mois

1 500 lectures par mois * 0,06/100 000 prix de lecture = 0,0009 $ par mois

Moyen
(1 million d'installations)

Pour 1 000 000 d'installations d'applications (100 000 utilisateurs actifs quotidiens) : 0,018 $/mois

100 000 utilisateurs actifs * 10 nouveaux messages par utilisateur = 1 000 000 nouveaux messages par jour

1 000 000 documents comptés / 1 000 correspondances d'index par charge de lecture = 1 000 lectures

1 000 lectures par jour * 30 jours = 30 000 lectures par mois

30 000 lectures par mois * 0,06/100 000 prix de lecture = 0,018 $ par mois

Grand
(10 millions d'installations)

Pour 10 000 000 d'installations d'applications (1 000 000 d'utilisateurs actifs quotidiens) : 0,18 $

1 000 000 d'utilisateurs actifs * 10 nouveaux messages par utilisateur = 10 000 000 de nouveaux messages par jour

10 000 000 documents comptés / 1 000 correspondances d'index par charge de lecture = 10 000 lectures

10 000 lectures par jour * 30 jours = 300 000 lectures par mois

300 000 lectures par mois * 0,06/100 000 prix de lecture = 0,18 $ par mois

Avantages inclus : services gratuits pour votre application

Bien que les opérations, le stockage et la bande passante réseau de Cloud Firestore soient tous considérés comme une utilisation facturable, vous bénéficiez également de divers autres avantages sans frais supplémentaires. Considérez les services suivants qui sont gratuits lorsque vous comparez Cloud Firestore à d'autres options de base de données :

  • Accès client direct : Cloud Firestore est accessible directement depuis votre code client à l'aide de nos SDK natifs. Cela signifie que vous n'avez pas besoin de créer et d'exécuter un serveur d'API pour connecter vos clients mobiles à la base de données.
  • Équilibrage de charge : étant donné que Cloud Firestore s'adapte automatiquement pour prendre en charge le trafic vers votre base de données, vous n'avez pas besoin d'exécuter un équilibreur de charge.
  • Disponibilité du serveur : les bases de données Cloud Firestore fonctionnent sur les serveurs Google Cloud, offrant une disponibilité mensuelle de plus de 99 % .
  • Authentification : authentifiez un nombre illimité d'utilisateurs simplement et en toute sécurité avec Firebase Authentication . Firebase Authentication s'intègre directement à Cloud Firestore, vous n'avez donc pas besoin d'exécuter votre propre service d'authentification.
  • Notifications push : envoyez des messages et des notifications avec Cloud Messaging .
  • Autres produits Firebase : intégrez gratuitement d'autres produits Firebase, notamment les tests A/B, Analytics, Crashlytics, la surveillance des performances et la configuration à distance. En savoir plus sur les autres produits Firebase et les tarifs Firebase .