Utilisez cet exemple concret d'application de chat basique pour évaluer l'utilisation et les coûts liés à 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.
Coûts par niveau d'utilisation
Pour illustrer les coûts typiques, prenons l'exemple d'une application de chat, dans laquelle les utilisateurs peuvent initier des chats avec deux participants ou plus. Les utilisateurs peuvent voir leurs chats actifs dans une liste, lire des messages et envoyer des messages. Dans cet exemple, nous utilisons la tarification pour l'Amérique du Nord (multirégional), en particulier nam5
.
Hypothèses
Consultez les hypothèses suivantes concernant l'utilisation et le stockage des données :
- Les utilisateurs actifs par jour représentent 10 % du nombre d'installations total. Vous pouvez estimer vos coûts quotidiens en vous basant sur votre nombre approximatif d'utilisateurs actifs par jour. Il s'agit des utilisateurs qui ouvrent et utilisent activement votre application un jour donné, ce qui correspond généralement à un petit sous-ensemble de votre nombre d'installations total. Pour les calculs ci-dessous, nous avons estimé que les utilisateurs actifs par jour représentent 10 % du nombre total d'installations.
- La taille des documents est relativement petite. Consultez le tableau ci-dessous pour connaître la taille de document par type.
- Les données ne sont stockées que pendant trois mois. Les messages dans notre 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 indiquent une suppression quotidienne pour chaque écriture quotidienne.
- Ces estimations de coûts reflètent l'essentiel des coûts de l'exemple d'application, mais pas tous. Nous avons pris en compte l'essentiel des coûts d'une application en calculant les opérations, le stockage des messages et des utilisateurs, ainsi que les sorties pour les tâches les plus fréquentes décrites dans ce guide. Toutefois, vous devrez peut-être prendre en compte des coûts supplémentaires, en fonction de la structure de votre application et des besoins en termes de données. Utiliser ceci exemple pour guider vos calculs, mais reportez-vous à la page des tarifs pour obtenir des explications plus détaillées sur les coûts de Cloud Firestore.
Pour en savoir plus sur l'utilisation facturée par tâche utilisateur, consultez la section Utilisation facturée par tâche utilisateur.
Peu élevé
(50 000 installations)
Pour 50 000 installations (5 000 utilisateurs actifs par jour) : 12,14 $/mois
Coûts de lecture/écriture | |||||
---|---|---|---|---|---|
Coût mensuel total = 11,10 $/mois | |||||
400 000 lectures quotidiennes au total | = | 50 000 lectures sans frais + (350 000 lectures à 0,06 $/100 000 lectures) | = | 3,5 x 0,06 $ | |
0,21 $/jour x 30 = 6,30 $ | |||||
100 000 écritures quotidiennes au total | = | 20 000 écritures sans frais + (80 000 écritures à 0,18 $/100 000) | = | 0,8 x 0,18 $ | |
0,14 $/jour x 30 = 4,20 $ | |||||
100 000 suppressions quotidiennes au total | = | 20 000 suppressions sans frais + (80 000 suppressions à 0,02 $/100 000 suppressions) | = | 0,8 x 0,02 $ | |
0,02 $/jour x 30 = 0,60 $ |
Coûts de stockage/mise en réseau | |||||||
---|---|---|---|---|---|---|---|
Coût mensuel total = 1,04 $/mois | |||||||
20 Ko/utilisateur actif par jour de sortie quotidienne x 5 000 utilisateurs actifs par jour | = | 100 Mo de sortie quotidienne x 30 | = | 3 Go de sortie réseau mensuelle | |||
3 Go de sortie sans frais = sans frais1 | |||||||
15 Ko de stockage de messages quotidien/utilisateur actif par jour + 3 Ko de stockage/installation2 | = | 45 Ko de stockage/utilisateur actif par jour x 5 000 utilisateurs actifs par jour | = | 225 Mo de stockage quotidien/utilisateur actif par jour x 30 | = | 6,75 Go d'utilisation de stockage mensuelle | |
1 Go de stockage sans frais + (5,75 x 0,18 $) = 1,04 $/mois |
1 10 Go de sortie réseau mensuelle sont sans frais pour
Cloud Firestore
2 Puisque nous supposons que les UAJ (utilisateurs actifs par jour) représentent 10% de l'ensemble des applications
installations, cela
représente le nombre total d'utilisateurs ayant installé votre application.
Moyen
(1 million d'installations)
Pour 1 000 000 d'installations (100 000 utilisateurs actifs par jour) : 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 sans frais + (7,95 millions de lectures à 0,06 $/100 000 lectures) | = | 79,5 x 0,06 $ | |
4,77 $/jour x 30 = 143,10 $ | |||||
2 millions d'écritures quotidiennes au total | = | 20 000 écritures sans frais + (1,98 M d'écritures à 0,18 $/100 000) | = | 19,8 x 0,18 $ | |
3,56 $/jour x 30 = 106,80 $ | |||||
2 millions de suppressions quotidiennes au total | = | 20 000 suppressions sans frais + (1,98 M de suppressions à 0,02 $/100 000) | = | 19,8 x 0,02 $ | |
0,40 $/jour x 30 = 12 $ |
Coûts de stockage/mise en réseau | |||||||
---|---|---|---|---|---|---|---|
Coût mensuel total = 30,12 $/mois | |||||||
20 Ko/utilisateur actif par jour de sortie quotidienne x 100 000 utilisateurs actifs par jour | = | 2 Go de sortie quotidienne x 30 | = | 60 Go de sortie réseau mensuelle | |||
10 Go de sortie sans frais + (50 Go de sortie x 0,12 $/Go) = 6 $ / mois | |||||||
15 Ko de stockage de messages quotidien/utilisateur actif par jour + 3 Ko de stockage/installation1 | = | 45 Ko de stockage/utilisateur actif par jour x 100 000 utilisateurs actifs par jour | = | 4,5 Go de stockage quotidien/utilisateur actif par jour x 30 | = | 135 Go d'utilisation de stockage mensuelle | |
1 Go de stockage sans frais + (134 Go x 0,18 $/Go) = 24,12 $/mois |
2 Étant donné que nous supposons que les utilisateurs actifs par jour représentent 10 % du nombre d'installations total, ce nombre prend en compte le nombre total d'utilisateurs ayant installé votre application.
Élevé
(10 millions d'installations)
Pour 10 000 000 d'installations (1 000 000 d'utilisateurs actifs par jour) : 2 951,52 $
Coûts de lecture/écriture | |||||
---|---|---|---|---|---|
Coût mensuel total = 2 637,90 $/mois | |||||
80 millions de lectures quotidiennes au total | = | 50 000 lectures sans frais + (79,95 millions de lectures à 0,06 $/100 000) | = | 799,5 x 0,06 $ | |
47,97 $/jour x 30 = 1 439,10 $ | |||||
20 millions d'écritures quotidiennes au total | = | 20 000 écritures sans frais + (19,98 M d'écritures à 0,18 $/100 000) | = | 199,8 x 0,18 $ | |
35,96 $/jour x 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 x 0,02 $ | |
4 $/jour x 30 = 120 $ |
Coûts de stockage/mise en réseau | |||||||
---|---|---|---|---|---|---|---|
Coût mensuel total = 313,62 $/mois | |||||||
20 Ko/utilisateur actif par jour de sortie quotidienne x 1 million d'utilisateurs actifs par jour | = | 20 Go de sortie quotidienne x 30 | = | 600 Go de sortie réseau mensuelle | |||
10 Go de sortie sans frais + (590 Go de sortie x 0,12 $/Go) = 70,80 $ / mois | |||||||
15 Ko de stockage de messages quotidien/utilisateur actif par jour + 3 Ko de stockage/installation1 | = | 45 Ko de stockage/utilisateur actif par jour x 1 million d'utilisateurs actifs par jour | = | 45 Go de stockage quotidien/utilisateur actif par jour x 30 | = | 1 350 Go d'utilisation de stockage mensuelle | |
(1 Go de stockage sans frais) + (1 349 Go x 0,18 $/Go) = 242,82 $/mois |
2 Étant donné que nous supposons que les utilisateurs actifs par jour représentent 10 % du nombre d'installations total, ce nombre prend en compte le nombre total d'utilisateurs ayant installé votre application.
L'un des avantages du modèle de facturation Cloud Firestore est que vous ne pouvez vous ne payez que ce que vous consommez. Par conséquent, votre facture peut augmenter et diminuer en fonction du nombre d'utilisateurs actifs par jour.
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 utilisateurgroups/{groupId}
– Chats entre deux utilisateurs ou plusmessages/{messageId}
– Chaque message d'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 le disque)* |
---|---|---|
users | 1 Ko | 3 Ko |
groups | 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 des messages.
En outre, l'application ne stocke que 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 la page Calculs de la taille des espaces de stockage.
Opérations
Les utilisateurs effectuent généralement les tâches courantes suivantes dans l'application :
- Consulter la liste des chats : les utilisateurs ouvrent l'écran d'accueil de l'application et consultent la liste des chats (discussions de groupe et chats privés), classés du message le plus récent au plus ancien.
- Lire des messages dans un chat : les utilisateurs sélectionnent les chats sur l'écran d'accueil et lisent les messages récents.
- Envoyer un message dans un chat : les utilisateurs envoient des messages dans des chats (discussions de groupe ou chats privés).
Total estimé des opérations de l'application exemple dans Cloud Firestore pour les trois les tâches utilisateur types sont les suivantes:
- Lectures : (5 x 10) + (30) = 80 lectures/utilisateur/jour
- Écritures : (10 x 2) = 20 écritures/utilisateur/jour
- Sortie réseau : (50 x 0,25 Ko) + (30 x 0,25 Ko) = 20 Ko/utilisateur/jour
- Stockage : (20 x 0,75 Ko) = 15 Ko/utilisateur/jour
Utilisation totale par tâche utilisateur
Sélectionnez chaque tâche utilisateur pour afficher une description complète et détaillée des coûts liés aux opérations, au stockage et à la mise en réseau dans l'application.
Consulter la liste des chats
L'écran d'accueil de l'application charge les 25 chats les plus récents, entraînant des frais pour 25 lectures de documents. Si un utilisateur actif ouvre l'application cinq fois par jour, cela revient à un total de 125 lectures par utilisateur chaque jour. Des requêtes plus efficaces, comme celle de l'exemple suivant, peuvent toutefois réduire cette charge.
Dans l'exemple ci-dessous, nous limitons la requête aux nouveaux chats à l'aide d'un horodatage de chaque extraction 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 chats mis à jour chaque fois que l'utilisateur vérifie l'application. Cette requête n'engendre que 10 lectures de documents.
Lire des messages dans un chat
Les utilisateurs cliquent dans les fils de discussion à partir de l'écran d'accueil pour afficher les messages récents. Les 50 messages les plus récents sont chargés lors du chargement initial.
Si l'utilisateur effectue cette action cinq fois par jour (une fois à chaque ouverture de l'écran d'accueil), cela revient à un total de 250 lectures par utilisateur chaque jour. Nous pouvons également limiter notre requête aux nouveaux messages depuis la dernière extraction :
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. Étant donné que vous avez limité la requête pour récupérer les nouveaux messages, cela ne représente que 30 messages récupérés par jour.
Envoyer un message dans un chat
Dans un chat, les utilisateurs peuvent envoyer des messages aux autres participants. Supposons qu'un utilisateur actif envoie environ 10 messages par jour.
Chaque message envoyé génère deux écritures : 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 scénarios. Par conséquent, les totaux ci-dessous ne tiennent compte que de ce coût d'écriture.
Utilisation facturée pour les tâches d'administration
En tant que propriétaire ou administrateur d'une application, vous souhaitez probablement générer des rapports
les données de votre application. Par exemple, vous pouvez effectuer le décompte quotidien des
le nombre de messages envoyés par vos utilisateurs. Pour ce faire, vous pouvez utiliser
Agrégation count()
des valeurs
messages
.
Pour les requêtes d'agrégation telles que count()
, une lecture de document vous est facturée
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 :
Peu élevé
(50 000 installations)
Pour 50 000 installations d'application (5 000 UAJ): 0,0009 $/mois
5 000 utilisateurs actifs x 10 nouveaux messages par utilisateur = 50 000 nouveaux messages par jour
50 000 documents comptabilisés / 1 000 correspondances d'index par lecture facturée = 50 lectures
50 lectures par jour x 30 jours = 1 500 lectures par mois
1 500 lectures par mois x 0,06/100 000 prix en lecture = 0,0009 $par mois
Moyen
(1 million d'installations)
Pour 1 000 000 installations d'application (100 000 utilisateurs actifs par jour): 0,018 $/mois
100 000 utilisateurs actifs x 10 nouveaux messages par utilisateur = 1 000 000 de nouveaux messages par jour
1 000 000 documents comptabilisés / 1 000 correspondances d'index par charge de lecture = 1 000 lectures
1 000 lectures par jour x 30 jours = 30 000 lectures par mois
30 000 lectures par mois x 0,06/100 000 prix de lecture = 0,018 $par mois
Élevé
(10 millions d'installations)
Pour 10 000 000 installations d'application (1 000 000 d'utilisateurs actifs par jour): 0,18 $
1 000 000 d'utilisateurs actifs x 10 nouveaux messages par utilisateur = 10 000 000 de nouveaux messages par jour
10 000 000 documents comptabilisés / 1 000 correspondances d'index par charge de lecture = 10 000 lectures
10 000 lectures par jour x 30 jours = 300 000 lectures par mois
300 000 lectures par mois x 0,06/100 000 prix de lecture = 0,18 $ par mois
Avantages inclus: services sans frais pour votre application
Bien que les opérations Cloud Firestore, le stockage et la bande passante réseau soient tous considérés comme des utilisations facturables, vous bénéficiez également de nombreux autres avantages sans frais supplémentaires. Voici les services sans frais comme vous : Comparez Cloud Firestore à d'autres options de base de données:
- Accès direct des clients:Cloud Firestore est accessible directement depuis votre à l'aide de nos SDK natifs. Vous n'avez donc pas besoin de créer et exécuter un serveur d'API pour connecter vos clients mobiles à la base de données.
- Équilibrage de charge : comme 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.
- Temps d'activité des serveurs:Cloud Firestore bases de données fonctionnent sur Google Cloud serveurs, offrant une disponibilité mensuelle de plus de 99%.
- Authentification:authentifiez un nombre illimité d'utilisateurs de manière simple et sécurisée avec Firebase Authentication Firebase Authentication s'intègre directement à Cloud Firestore. Vous n'avez donc pas besoin d'exécuter votre propre d'authentification unique.
- Notifications push:envoyez des messages et des notifications avec Cloud Messaging
- Autres produits Firebase:intégrez d'autres produits Firebase sans frais A/B Testing, Analytics, Crashlytics, Performance Monitoring, et Remote Config. En savoir plus sur les autres produits Firebase et les tarifs de Firebase.