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 de Cloud Firestore. Il ne s'agit pas d'une estimation exacte, mais elle peut vous aider à mieux comprendre comment votre utilisation de Cloud Firestore est facturée.

Aperçu : coûts par niveau d'utilisation

Pour illustrer les coûts typiques, prenons un exemple d'application de chat, dans laquelle les utilisateurs peuvent lancer des discussions 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 la multirégion Amérique du Nord (en particulier 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 total des 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 du total de vos installations d'application. 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. Consultez le tableau ci-dessous pour une répartition de la taille des documents par type.
  • Les données ne sont conservées que 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 affichent une suppression quotidienne pour chaque écriture quotidienne.
  • Ces estimations de coûts reflètent la majeure partie des coûts de l’application exemple, 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, ainsi que la sortie des 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 : Utilisation facturée par tâche utilisateur .

Petit
(50 000 installations)

Pour 50 000 installations d’application (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 sans frais + (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 sans frais + (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 de messages quotidien / DAU + 3 Ko de stockage / installation 2 = 45 Ko de stockage / DAU * 5 000 DAU = 225 Mo de stockage quotidien / DAU * 30 = Utilisation mensuelle du stockage de 6,75 Go
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 Puisque nous supposons que les DAU représentent 10 % du total des 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 installations d’application (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 sans frais + (1,98 millions d'écritures à 0,18 $/100 000) = 19,8 * 0,18 $
3,56 $ / jour * 30 = 106,80 $
2 millions de suppressions quotidiennes au total = 20 000 suppressions sans frais + (1,98 millions 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 sans frais + (sortie de 50 Go * 0,12 $/Go) = 6,00 $/mois
15 Ko de stockage de messages quotidien / DAU + 3 Ko de stockage / installation 1 = 45 Ko de stockage / DAU * 100 000 DAU = 4,5 Go de stockage quotidien / DAU * 30 = Utilisation mensuelle du stockage de 135 Go
1 Go de stockage gratuit + (134 Go * 0,18 $/Go) = 24,12 $/mois

1 Puisque nous supposons que les DAU représentent 10 % du total des 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 = 1 439,10 $
20 millions d'écritures quotidiennes au total = 20 000 écritures sans frais + (19,98 millions d'écritures à 0,18 $/100 000) = 199,8 * 0,18 $
35,96 $ / jour * 30 = 1 078,80 $
20 millions de suppressions quotidiennes au total = 20 000 suppressions sans frais + (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 sans frais + (sortie de 590 Go * 0,12 $/Go) = 70,80 $/mois
15 Ko de stockage de messages quotidien / DAU + 3 Ko de stockage / installation 1 = 45 Ko de stockage / DAU * 1 million de DAU = 45 Go de stockage quotidien / DAU * 30 = Utilisation mensuelle du stockage : 1 350 Go
(1 Go de stockage gratuit) + (1 349 Go * 0,18 $/Go) = 242,82 $/mois

1 Puisque nous supposons que les DAU représentent 10 % du total des 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 pour ce que vous utilisez. Par conséquent, votre facture peut augmenter et diminuer en fonction de 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 utilisateur
  • groups/{groupId} — Discussions entre 2 utilisateurs ou plus
    • messages/{messageId} — Chaque message d'une discussion.

Stockage de données

Pour calculer les coûts de stockage pour le 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,5 Ko
messages 0,25 Ko 0,75 Ko

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

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

Pour plus d'informations sur le calcul des coûts de stockage, consultez Comprendre les calculs de taille de stockage .

Opérations

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

Le total estimé des opérations de l'exemple d'application dans Cloud Firestore pour les trois tâches utilisateur typiques est le suivant :

  • 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,75 Ko) = 15 Ko / utilisateur / jour

Utilisation totale par tâche utilisateur

Sélectionnez chaque tâche utilisateur pour voir une description complète et une répartition 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 nouvelles discussions 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'entraîne que 10 lectures de documents.

Lire les messages dans un chat

Les utilisateurs cliquent sur les fils de discussion depuis l'écran d'accueil pour voir les messages récents, 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 pour 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 heure de 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 sur toutes les discussions. Puisque vous avez limité la requête à la récupération de 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 aux autres participants une fois qu'ils participent à une conversation. 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é pris en compte dans les autres trajets, les totaux ci-dessous ne prennent donc en compte que ce coût d'écriture.

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

En tant que propriétaire ou administrateur d'une application, vous souhaiterez probablement générer des rapports à partir des données de votre application. Par exemple, vous souhaiterez peut-être tenir 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() , la lecture d'un document vous est facturée pour chaque lot comprenant jusqu'à 1 000 entrées d'index correspondant à la requête. L'exécution de cette agrégation quotidienne ajoute les frais mensuels suivants :

Petit
(50 000 installations)

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

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

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

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

1 500 lectures par mois * 0,06/100 000 lectures = 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 de nouveaux documents de message par jour

1 000 000 de documents comptés / 1 000 correspondances d'index par frais 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 lectures = 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 documents de message par jour

10 000 000 de documents comptés / 1 000 correspondances d'index par frais 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 lectures = 0,18 $ par mois

Avantages inclus : services gratuits pour votre application

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

  • Accès client direct : Cloud Firestore est accessible directement à partir de 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 API pour connecter vos clients mobiles à la base de données.
  • Équilibrage de charge : étant donné que Cloud Firestore évolue 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 l'authentification Firebase . 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, les analyses, Crashlytics, la surveillance des performances et la configuration à distance. En savoir plus sur les autres produits Firebase et les tarifs Firebase .