Nutzen Sie dieses reale Beispiel einer einfachen Chat-App, um Ihre Cloud Firestore-Nutzung und -Kosten einzuschätzen. Hierbei handelt es sich nicht um eine genaue Schätzung, aber sie kann Ihnen helfen, besser zu verstehen, wie Ihre Cloud Firestore-Nutzung abgerechnet wird.
Übersicht: Kosten nach Nutzungsgrad
Um typische Kosten zu veranschaulichen, betrachten Sie eine Beispiel-Chat-App, bei der Benutzer Chats mit zwei oder mehr Teilnehmern initiieren können. Benutzer können ihre aktiven Chats in einer Liste sehen, Nachrichten lesen und Nachrichten senden. In diesem Beispiel verwenden wir die Preise für die Multiregion Nordamerika (insbesondere nam5
).
Annahmen
Berücksichtigen Sie die folgenden Annahmen zur Nutzung und Datenspeicherung:
- Täglich aktive Benutzer (DAUs) machen 10 % der gesamten App-Installationen aus. Sie können Ihre täglichen Kosten anhand einer groben Schätzung Ihrer täglichen aktiven Benutzer (DAUs) abschätzen. Dabei handelt es sich um die Benutzer, die Ihre App an einem bestimmten Tag aktiv öffnen und nutzen. Dabei handelt es sich in der Regel um einen kleinen Teil Ihrer gesamten App-Installationen. Für die folgenden Berechnungen haben wir die DAUs auf 10 % der Gesamtzahl der App-Installationen geschätzt.
- Die Dokumentgrößen sind relativ klein. In der folgenden Tabelle finden Sie eine Aufschlüsselung der Dokumentgröße nach Typ.
- Die Daten werden nur drei Monate lang gespeichert. Die Nachrichten in der Beispiel-Chat-App werden nur für einen Zeitraum von drei Monaten gespeichert. Um die Löschvorgänge zu berücksichtigen, zeigen die folgenden Berechnungen einen täglichen Löschvorgang für jeden täglichen Schreibvorgang.
- Diese Kostenschätzungen spiegeln den Großteil der Kosten der Beispiel-App wider, jedoch nicht alle. Wir haben den Großteil der Kosten einer App berücksichtigt, indem wir Vorgänge, Benutzer- und Nachrichtenspeicherung sowie Ausgangsdaten für die häufigsten Benutzeraufgaben berechnet haben, die in diesem Leitfaden beschrieben werden. Abhängig von der Struktur und den Datenanforderungen Ihrer App müssen Sie jedoch möglicherweise zusätzliche Kosten berücksichtigen. Nutzen Sie dieses Beispiel als Leitfaden für Ihre Berechnungen. Ausführlichere Erläuterungen zu den Cloud Firestore-Kosten finden Sie jedoch auf der Preisseite .
Eine Aufschlüsselung der Vorgänge nach Benutzeraufgabe finden Sie im Abschnitt „Aufschlüsselung: In Rechnung gestellte Nutzung nach Benutzeraufgabe“ .
Klein
(50.000 Installationen)
Für 50.000 App-Installationen (5.000 täglich aktive Benutzer): 12,14 $/Monat
Lese-/Schreibkosten | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = 11,10 $/Monat | |||||
Insgesamt 400.000 tägliche Lesevorgänge | = | 50.000 kostenlose Lesevorgänge (350.000 Lesevorgänge für 0,06 $/100.000 $) | = | 3,5 * 0,06 $ | |
0,21 $ / Tag * 30 = 6,30 $ | |||||
Insgesamt 100.000 tägliche Schreibvorgänge | = | 20.000 kostenlose Schreibvorgänge (80.000 Schreibvorgänge für 0,18 $/100.000 $) | = | ,8 * 0,18 $ | |
0,14 $ / Tag * 30 = 4,20 $ | |||||
Insgesamt 100.000 tägliche Löschungen | = | 20.000 kostenlose Löschungen (80.000 Löschungen für 0,02 $/100.000) | = | .8 * 0,02 $ | |
0,02 $ / Tag * 30 = 0,60 $ |
Speicher-/Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Monatliche Gesamtkosten = 1,04 $/Monat | |||||||
20 KB/DAU täglicher Ausgang * 5.000 DAUs | = | 100 MB täglicher Ausgang * 30 | = | 3 GB monatlicher Netzwerkausgang | |||
3 GB kostenloser ausgehender Datenverkehr = kostenlos 1 | |||||||
15 KB täglicher Nachrichtenspeicher / DAU 3 KB Speicher / Installation 2 | = | 45 KB Speicher / DAU * 5.000 DAUs | = | 225 MB täglicher Speicher / DAU * 30 | = | 6,75 GB monatliche Speichernutzung | |
1 GB kostenloser Speicher (5,75 * 0,18 $) = 1,04 $/Monat |
1 10 GB monatlicher Netzwerkausgang sind für Cloud Firestore kostenlos.
2 Da wir davon ausgehen, dass DAUs 10 % aller App-Installationen ausmachen, entspricht diese Zahl der Gesamtzahl der Benutzer, die Ihre App installiert haben.
Mittel
(1 Mio. Installationen)
Für 1.000.000 App-Installationen (100.000 täglich aktive Benutzer): 292,02 $/Monat
Lese-/Schreibkosten | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = 261,90 $/Monat | |||||
Insgesamt 8 Millionen tägliche Lesevorgänge | = | 50.000 kostenlose Lesevorgänge (7,95 Mio. Lesevorgänge für 0,06 $/100.000) | = | 79,5 * 0,06 $ | |
4,77 $ / Tag * 30 = 143,10 $ | |||||
Insgesamt 2 Millionen tägliche Schreibvorgänge | = | 20.000 kostenlose Schreibvorgänge (1,98 Mio. Schreibvorgänge für 0,18 $/100.000 $) | = | 19,8 * 0,18 $ | |
3,56 $/Tag * 30 = 106,80 $ | |||||
Insgesamt 2 Millionen tägliche Löschungen | = | 20.000 kostenlose Löschvorgänge (1,98 Mio. Löschvorgänge für 0,02 $/100.000 $) | = | 19,8 * 0,02 $ | |
0,40 $ / Tag * 30 = 12,00 $ |
Speicher-/Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Monatliche Gesamtkosten = 30,12 $/Monat | |||||||
20 KB/DAU täglicher ausgehender Datenverkehr * 100.000 DAUs | = | 2 GB täglicher ausgehender Datenverkehr * 30 | = | 60 GB monatlicher Netzwerkausgang | |||
10 GB kostenloser Ausgang (50 GB Ausgang * 0,12 $/GB) = 6,00 $/Monat | |||||||
15 KB täglicher Nachrichtenspeicher / DAU 3 KB Speicher / Installation 1 | = | 45 KB Speicher / DAU * 100.000 DAUs | = | 4,5 GB täglicher Speicher / DAU * 30 | = | 135 GB monatliche Speichernutzung | |
1 GB kostenloser Speicher (134 GB * 0,18 $/GB) = 24,12 $/Monat |
1 Da wir davon ausgehen, dass DAUs 10 % aller App-Installationen ausmachen, entspricht diese Zahl der Gesamtzahl der Benutzer, die Ihre App installiert haben.
Groß
(10 Mio. Installationen)
Für 10.000.000 App-Installationen (1.000.000 täglich aktive Benutzer): 2951,52 $
Lese-/Schreibkosten | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = Gesamt: 2637,90 $/Monat | |||||
Insgesamt 80 Millionen tägliche Lesevorgänge | = | 50.000 kostenlose Lesevorgänge (79,95 Mio. Lesevorgänge bei 0,06 $/100.000) | = | 799,5 * 0,06 $ | |
47,97 $ / Tag * 30 = 1439,10 $ | |||||
Insgesamt 20 Millionen tägliche Schreibvorgänge | = | 20.000 kostenlose Schreibvorgänge (19,98 Mio. Schreibvorgänge bei 0,18 $/100.000 $) | = | 199,8 * 0,18 $ | |
35,96 $/Tag * 30 = 1078,80 $ | |||||
Insgesamt 20 Millionen tägliche Löschungen | = | 20.000 kostenlose Löschungen (19,98 Millionen Löschungen bei 0,02 $/100.000) | = | 199,8 * 0,02 $ | |
4,00 $ / Tag * 30 = 120,00 $ |
Speicher-/Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Monatliche Gesamtkosten = 313,62 $/Monat | |||||||
20 KB/DAU täglicher Ausgang * 1 Mio. DAUs | = | 20 GB täglicher ausgehender Datenverkehr * 30 | = | 600 GB monatlicher Netzwerkausgang | |||
10 GB kostenloser Ausgang (590 GB Ausgang * 0,12 $/GB) = 70,80 $/Monat | |||||||
15 KB täglicher Nachrichtenspeicher / DAU 3 KB Speicher / Installation 1 | = | 45 KB Speicher / DAU * 1 Mio. DAUs | = | 45 GB täglicher Speicher / DAU * 30 | = | 1350 GB monatliche Speichernutzung | |
(1 GB kostenloser Speicher) (1349 GB * 0,18 $/GB) = 242,82 $/Monat |
1 Da wir davon ausgehen, dass DAUs 10 % aller App-Installationen ausmachen, entspricht diese Zahl der Gesamtzahl der Benutzer, die Ihre App installiert haben.
Ein erwägenswerter Vorteil des Cloud Firestore-Abrechnungsmodells besteht darin, dass Sie nur für das bezahlen, was Sie nutzen. Infolgedessen kann Ihre Rechnung mit der Anzahl Ihrer DAUs wachsen oder schrumpfen.
Aufschlüsselung: Abgerechnete Nutzung nach Benutzeraufgabe
Für unsere Beispiel-Chat-App sieht die Datenstruktur wie folgt aus:
-
users/{userId}
– Benutzerdatensätze -
groups/{groupId}
– Chats zwischen zwei oder mehr Benutzern-
messages/{messageId}
– Jede Nachricht in einem Chat.
-
Datenspeicher
Um die Speicherkosten für die Speicherung der App-Daten zu berechnen, gehen Sie von den folgenden Annahmen zur Dokumentgröße aus:
Sammlung | Dokumentgröße (im Transport) | Dokumentgröße (auf der Festplatte)* |
---|---|---|
Benutzer | 1 KB | 3 KB |
Gruppen | 0,5 KB | 1,5 KB |
Mitteilungen | 0,25 KB | 0,75 KB |
*Diese Größenberechnung umfasst Indizes für die Nachrichtenfelder, geht jedoch davon aus, dass die Indizierung für den Nachrichteninhalt deaktiviert ist.
Um die Speicherkosten zu senken, speichert die App außerdem nur Nachrichten, die bis zu drei Monate alt sind.
Weitere Informationen zur Berechnung der Speicherkosten finden Sie unter Grundlegendes zur Berechnung der Speichergröße .
Operationen
Normalerweise erledigen Benutzer die folgenden allgemeinen Aufgaben in der App:
- Liste der Chats anzeigen: Benutzer öffnen den Startbildschirm der App und sehen eine Liste der Chats (Gruppen- und Direktchats), sortiert nach der zuletzt geposteten Nachricht.
- Nachrichten in einem Chat lesen: Benutzer wählen Chats auf dem Startbildschirm aus und lesen aktuelle Nachrichten aus Chats.
- Eine Nachricht an einen Chat senden: Benutzer senden Nachrichten an Chats (Gruppe oder direkt).
Die gesamten geschätzten Vorgänge der Beispiel-App in Cloud Firestore für die drei typischen Benutzeraufgaben lauten wie folgt:
- Lesevorgänge: (5 * 10) (30) = 80 Lesevorgänge / Benutzer / Tag
- Schreibvorgänge: (10 * 2) = 20 Schreibvorgänge / Benutzer / Tag
- Netzwerkausgang : (50 * 0,25 KB) (30 * 0,25 KB) = 20 KB / Benutzer / Tag
- Speicher : (20 * 0,75 KB) = 15 KB/Benutzer/Tag
Gesamtnutzung nach Benutzeraufgabe
Wählen Sie jede Benutzeraufgabe aus, um eine vollständige Beschreibung und Aufschlüsselung der Betriebs-, Speicher- und Netzwerkkosten in der App anzuzeigen.
Sehen Sie sich die Liste der Chats an
Der Startbildschirm der App lädt die 25 letzten Chats, wobei Gebühren für 25 Dokumentlesevorgänge anfallen. Gehen Sie davon aus, dass ein aktiver Benutzer die App fünfmal pro Tag öffnet, was insgesamt 125 Lesevorgängen pro Benutzer und Tag entspricht. Allerdings können effizientere Abfragen, wie die im folgenden Beispiel, diese Last reduzieren.
Im folgenden Beispiel beschränken wir die Abfrage auf neue Chats, indem wir einen Zeitstempel jedes erfolgreichen Abrufs verwenden, der von der App gespeichert wird:
db.collection('groups') .where('participants', 'array-contains', 'user123') .where('lastUpdated', '>', lastFetchTimestamp) .orderBy('lastUpdated', 'desc') .limit(25)
Gehen Sie davon aus, dass es jedes Mal, wenn der Benutzer die App überprüft, durchschnittlich 10 aktualisierte Chats gibt. Diese Abfrage erfordert nur 10 Dokumentlesevorgänge.
Lesen Sie Nachrichten in einem Chat
Benutzer klicken auf dem Startbildschirm in Chat-Threads, um die neuesten Nachrichten anzuzeigen, und laden beim ersten Laden die 50 aktuellsten Nachrichten.
Angenommen, der typische Benutzer führt diese Aktion fünfmal täglich aus (einmal bei jedem Öffnen des Startbildschirms), was zu insgesamt 250 Lesevorgängen pro Benutzer und Tag führt. Wir können unsere Abfrage auch auf neue Nachrichten seit dem letzten Abruf beschränken:
db.collection('groups') .doc('group234') .collection('messages') .where('sentTime', '>', lastFetchTimestamp) .orderBy('sentTime', 'desc') .limit(50)
Gehen Sie davon aus, dass ein Benutzer über alle Chats hinweg etwa 30 Nachrichten pro Tag erhält. Da Sie die Abfrage auf das Abrufen neuer Nachrichten beschränkt haben, bedeutet dies nur 30 abgerufene Nachrichten pro Tag.
Senden Sie eine Nachricht an einen Chat
Benutzer können Nachrichten an andere Teilnehmer senden, sobald sie sich in einem Chat befinden. Gehen Sie davon aus, dass ein aktiver Benutzer etwa 10 Nachrichten pro Tag sendet.
Jede gesendete Nachricht führt zu zwei Dokumentschreibvorgängen: einem Schreibvorgang in die messages
Untersammlung des Chats und einem Schreibvorgang in das übergeordnete Dokument des Chats, um den lastUpdated
Zeitstempel und andere Metadaten zu aktualisieren.
Beachten Sie, dass die Kosten für das Lesen dieser Nachrichten in den anderen Fahrten berücksichtigt wurden, sodass die nachstehenden Gesamtsummen nur diese Schreibkosten berücksichtigen.
Abgerechnete Nutzung für Administratoraufgaben
Als App-Besitzer oder Administrator möchten Sie wahrscheinlich Berichte aus den Daten Ihrer App erstellen. Beispielsweise möchten Sie möglicherweise die Anzahl der von Ihren Benutzern gesendeten Nachrichten täglich zählen. Sie können dies mit einer count()
-Aggregation der messages
erreichen.
Bei Aggregationsabfragen wie count()
wird Ihnen ein gelesenes Dokument für jeden Stapel von bis zu 1.000 Indexeinträgen berechnet, die mit der Abfrage übereinstimmen. Durch die Ausführung dieser täglichen Aggregation fallen folgende monatliche Gebühren an:
Klein
(50.000 Installationen)
Für 50.000 App-Installationen (5.000 DAUs): 0,0009 $/Monat
5.000 aktive Benutzer * 10 neue Nachrichten pro Benutzer = 50.000 neue Nachrichtendokumente pro Tag
50.000 gezählte Dokumente / 1.000 Indexübereinstimmungen pro Lesegebühr = 50 Lesevorgänge
50 Lesevorgänge pro Tag * 30 Tage = 1.500 Lesevorgänge pro Monat
1.500 Lesevorgänge pro Monat * 0,06/100.000 Lesepreis = 0,0009 $ pro Monat
Mittel
(1 Mio. Installationen)
Für 1.000.000 App-Installationen (100.000 täglich aktive Benutzer): 0,018 $/Monat
100.000 aktive Benutzer * 10 neue Nachrichten pro Benutzer = 1.000.000 neue Nachrichtendokumente pro Tag
1.000.000 gezählte Dokumente / 1.000 Indexübereinstimmungen pro Lesegebühr = 1.000 Lesevorgänge
1.000 Lesevorgänge pro Tag * 30 Tage = 30.000 Lesevorgänge pro Monat
30.000 Lesevorgänge pro Monat * 0,06/100.000 Lesepreis = 0,018 $ pro Monat
Groß
(10 Mio. Installationen)
Für 10.000.000 App-Installationen (1.000.000 täglich aktive Benutzer): 0,18 $
1.000.000 aktive Benutzer * 10 neue Nachrichten pro Benutzer = 10.000.000 neue Nachrichtendokumente pro Tag
10.000.000 gezählte Dokumente / 1.000 Indexübereinstimmungen pro Lesegebühr = 10.000 Lesevorgänge
10.000 Lesevorgänge pro Tag * 30 Tage = 300.000 Lesevorgänge pro Monat
300.000 Lesevorgänge pro Monat * 0,06/100.000 Lesepreis = 0,18 $ pro Monat
Inklusivleistungen: Kostenlose Services für Ihre App
Während Cloud Firestore-Betrieb, Speicher und Netzwerkbandbreite alle als kostenpflichtige Nutzung gelten, erhalten Sie auch eine Reihe anderer Vorteile ohne zusätzliche Kosten. Berücksichtigen Sie die folgenden kostenlosen Dienste, wenn Sie Cloud Firestore mit anderen Datenbankoptionen vergleichen:
- Direkter Client-Zugriff: Der Zugriff auf Cloud Firestore erfolgt direkt über Ihren Client-Code mithilfe unserer nativen SDKs. Das bedeutet, dass Sie keinen API-Server erstellen und ausführen müssen, um Ihre mobilen Clients mit der Datenbank zu verbinden.
- Lastausgleich: Da Cloud Firestore automatisch skaliert, um den Datenverkehr zu Ihrer Datenbank zu unterstützen, müssen Sie keinen Lastausgleich ausführen.
- Serververfügbarkeit: Cloud Firestore-Datenbanken werden auf Google Cloud-Servern betrieben und bieten eine monatliche Betriebszeit von über 99 % .
- Authentifizierung: Authentifizieren Sie eine unbegrenzte Anzahl von Benutzern einfach und sicher mit der Firebase-Authentifizierung . Firebase Authentication lässt sich direkt in Cloud Firestore integrieren, sodass Sie keinen eigenen Authentifizierungsdienst ausführen müssen.
- Push-Benachrichtigungen: Senden Sie Nachrichten und Benachrichtigungen mit Cloud Messaging .
- Andere Firebase-Produkte: Integrieren Sie kostenlos andere Firebase-Produkte, einschließlich A/B-Tests, Analysen, Crashlytics, Leistungsüberwachung und Remote-Konfiguration. Erfahren Sie mehr über andere Firebase-Produkte und Firebase-Preise .