Anhand dieses konkreten Beispiels einer einfachen Chat-Anwendung können Sie die Nutzung und die Kosten von Cloud Firestore abschätzen. Dies ist keine genaue Schätzung, kann Ihnen aber helfen, besser zu verstehen, wie die Cloud Firestore-Nutzung abgerechnet wird.
Kosten nach Nutzungsgrad – Übersicht
Zur Veranschaulichung typischer Kosten wird eine Beispiel-Chat-Anwendung herangezogen, bei der Nutzer Chats mit zwei oder mehr Teilnehmern starten können. Nutzer können ihre aktiven Chats in einer Liste sehen, Nachrichten lesen und Nachrichten senden. In diesem Beispiel werden Preise für den multiregionalen Standort Nordamerika (z. B. nam5
) verwendet.
Voraussetzungen
Beachten Sie die folgenden Annahmen zur Nutzung und Datenspeicherung:
- Aktive Nutzer pro Tag machen 10 % aller Anwendungsinstallationen aus. Sie können Ihre täglichen Kosten anhand einer ungefähren Schätzung Ihrer aktiven Nutzer pro Tag schätzen. Dies sind die Nutzer, die Ihre Anwendung an einem bestimmten Tag aktiv öffnen und verwenden. Dies ist in der Regel ein kleiner Teil Ihrer gesamten Anwendungsinstallationen. Für die folgenden Berechnungen wurde der Anteil der aktiven Nutzer pro Tag auf 10 % der Gesamtzahl der Anwendungsinstallationen geschätzt.
- Dokumentgrößen sind relativ klein. Eine Aufschlüsselung der Dokumentgröße nach Typ finden Sie in der Tabelle unten.
- Daten werden nur drei Monate lang gespeichert. Die Nachrichten in der Beispiel-Chat-Anwendung werden nur für einen Zeitraum von drei Monaten gespeichert. Um die Löschvorgänge zu berücksichtigen, wird in den unten stehenden Berechnungen für jeden täglichen Schreibvorgang ein Löschvorgang pro Tag angenommen.
- Diese Kostenschätzungen spiegeln den Großteil der Kosten der Beispielanwendung wider, jedoch nicht alle. Wir haben den Großteil der Kosten einer Anwendung berücksichtigt, indem wir die Vorgänge, die Nutzer- und Nachrichtenspeicherung und den ausgehenden Traffic für die häufigsten hier beschriebenen Nutzeraufgaben berechnet haben. Je nach Struktur und Datenbedarf Ihrer Anwendung müssen Sie jedoch möglicherweise mit zusätzlichen Kosten rechnen. Dieses Beispiel soll als Orientierungshilfe für Ihre Berechnungen dienen. Ausführlichere Erläuterungen zu Cloud Firestore-Kosten finden Sie in der Preisübersicht.
Eine Aufschlüsselung der Vorgänge nach Nutzeraufgabe finden Sie im Abschnitt Aufschlüsselung: Abgerechnete Nutzung nach Nutzeraufgabe.
Klein
(50.000 Installationen)
Für 50.000 Anwendungsinstallationen: 5.000 aktive Nutzer pro Tag: 12,14 $ pro Monat
Kosten für Lese- und Schreibvorgänge | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = 11,10 $ pro Monat | |||||
400.000 Lesevorgänge pro Tag insgesamt | = | 50.000 kostenlose Lesevorgänge + (350.000 Lesevorg. à 0,06 $/100.000) | = | 3,5 * 0,06 $ | |
0,21 $/Tag * 30 = 6,30 $ | |||||
100.000 Lesevorgänge pro Tag insgesamt | = | 20.000 KOSTENLOSE Schreibvorgänge + (80.000 Schreibvorgänge à 0,18 $/100.000) | = | .8 * 0,18 $ | |
0,14 $ pro Tag * 30 = 4,20 $ | |||||
100.000 Löschvorgänge pro Tag insgesamt | = | 20.000 KOSTENLOSE Löschvorgänge + (80.000 Löschvorgänge à 0,02 $/100.000) | = | .8 * 0,02 $ | |
0,02 $/Tag * 30 = 0,60 $ |
Speicher- und Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Gesamtkosten pro Monat = 1,04 $/Monat | |||||||
20 KB/ausgehenden Traffic pro tägl. akt. Nutzer * 5.000 akt. Nutzer pro Tag | = | 100 MB täglichen ausgehenden Traffic * 30 | = | 3 GB ausgehenden Netzwerktraffic pro Monat | |||
3 GB kostenloser ausgehender Traffic = kostenlos1 | |||||||
15 KB tägliche Nachrichtenspeicherung/akt. Nutzer proTag + 3 KB Speicher pro Installation2 | = | 45 KB Speicher/akt. Nutzer pro Tag * 5.000 akt. Nutzer pro Tag | = | 225 MB Speicher pro Tag/aktive Nutzer proTag * 30 | = | 6,75 GB monatliche Speicherauslastung | |
1 GB kostenloser Speicherplatz + (5,75 * 0,18 $) = 1,04 $ / Monat |
1 10 GB ausgehender Netzwerktraffic pro Monat sind für Cloud Firestore kostenlos.
2 Da angenommen wird, dass die aktiven Nutzer pro Tag 10% der gesamten Anwendungsinstallationen ausmachen, gibt diese Zahl die Gesamtzahl der Nutzer an, die Ihre Anwendung installiert haben.
Mittel
(1 Million Installationen)
Für 1.000.000 Anwendungsinstallationen (100.000 aktive Nutzer pro Tag): 292,02 $/Monat
Kosten für Lese- und Schreibvorgänge | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = 261,90 $/Monat | |||||
8 Millionen Lesevorg. pro Tag | = | 50.000 kostenlose Lesevorgänge + (7,95 Mio. Lesevorgänge à 0,06 $/100.000) | = | 79,5 * 0,06 $ | |
4,77 $/Tag * 30 = 143,10 $ | |||||
2 Mio Schreibvorg. pro Tag | = | 20.000 KOSTENLOSE Schreibvorg. + (1,98 Mio. Schreibvorg. à 0,18 $/100.000) | = | 19,8 * 0,18 $ | |
3,56 $/Tag * 30 = 106,80 $ | |||||
2 Mio. tägliche Löschvorg. insgesamt | = | 20.000 KOSTENLOSE Löschvorgänge + (1,98 Mio. Löschvorgänge à 0,02 $/100.000) | = | 19,8 * 0,02 $ | |
0,40 $/Tag * 30 = 12.00 $ |
Speicher- und Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Monatliche Gesamtkosten = 30,12 $/Monat | |||||||
20 KB/ausgehenden Traffic pro tägl. akt. Nutzer * 100.000 akt. Nutzer pro Tag | = | 2 GB ausgehenden Traffic pro Tag * 30 | = | 60 GB ausgehenden Netzwerktraffic pro Monat | |||
10 GB kostenloser ausgehender Traffic + (50 GB ausgehender Traffic * 0,12 $/GB) = 6,00 $ / Monat | |||||||
15 KB tägliche Nachrichtenspeicherung/akt. Nutzer pro Tag + 3 KB Speicherplatz/Installation1 | = | 45 KB Speicherplatz/akt. Nutzer pro Tag * 100.000 akt. Nutzer pro Tag | = | 4,5 GB Speicher pro Tag/akt. Nutzer pro Tag * 30 | = | 135 GB Speicherauslastung pro Monat | |
1 GB kostenloser Speicherplatz + (134 GB * 0,18 $/GB) = 24,12 $ / Monat |
1 Da angenommen wird, dass die aktiven Nutzer pro Tag 10 % der gesamten Anwendungsinstallationen ausmachen, gibt diese Zahl die Gesamtzahl der Nutzer an, die Ihre Anwendung installiert haben.
Groß
(10 Mio. Installationen)
Für 10.000.000 Anwendungsinstallationen (1.000.000 aktive Nutzer pro Tag): 2.951,52 $
Kosten für Lese- und Schreibvorgänge | |||||
---|---|---|---|---|---|
Monatliche Gesamtkosten = Gesamt: 2637,90 $/Monat | |||||
80 Millionen Lesevorgänge pro Tag | = | 50.000 kostenlose Lesevorgänge + (79,95 Mio. Lesevorgänge à 0,06 $/100.000) | = | 799,5 * 0,06 $ | |
47,97 $/Tag * 30 = 1439,10 $ | |||||
20 Millionen Schreibvorgänge pro Tag | = | 20.000 KOSTENLOSE Schreibvorg. + (19,98 Mio. Schreibvorg. à 0,18 $/100.000) | = | 199,8 * 0,18 $ | |
35,96 $/Tag * 30 = 1078,80 $ | |||||
20 Mio. tägliche Löschvorgänge | = | 20.000 KOSTENLOSE Löschvorgänge + (19,98 Mio. Löschvorgänge à 0,02 $/100.000) | = | 199,8 * 0.02 $ | |
4,00 $/Tag * 30 = 120,00 $ |
Speicher- und Netzwerkkosten | |||||||
---|---|---|---|---|---|---|---|
Monatliche Gesamtkosten = 313,62 $/Monat | |||||||
20 KB/ausgehenden Traffic pro Tag * 1 Mio. akt. Nutzer pro Tag | = | 20 GB täglicher ausgehender Traffic * 30 | = | 600 GB ausgehender Netzwerktraffic pro Monat | |||
10 GB kostenloser ausgehender Traffic + (590 GB ausgehender Traffic * 0,12 $/GB) = 70,80 $ / Monat | |||||||
15 KB tägliche Nachrichtenspeicherung/akt. Nutzer pro Tag + 3 KB Speicherplatz/Installation1 | = | 45 KB Speicherplatz/akt. Nutzer/Tag * 1 Mio. Akt. Nutzer/Tag | = | 45 GB Speicher pro Tag/akt. Nutzer/Tag * 30 | = | 1.350 GB Speichernutzung pro Monat | |
(1 GB kostenloser Speicherplatz) + (1.349 GB * 0,18 $/GB) = 242,82 $ pro Monat |
1 Da angenommen wird, dass die aktiven Nutzer pro Tag 10 % der gesamten Anwendungsinstallationen ausmachen, gibt diese Zahl die Gesamtzahl der Nutzer an, die Ihre Anwendung installiert haben.
Ein Vorteil des Abrechnungsmodells von Cloud Firestore ist, dass Sie nur für das zahlen, was Sie tatsächlich in Anspruch nehmen. Somit hängt die Höhe Ihrer Rechnung von der Anzahl Ihrer täglichen aktiven Nutzer ab.
Aufschlüsselung: Abgerechnete Nutzung nach Nutzeraufgabe
Für unsere Beispiel-Chat-Anwendung sieht die Datenstruktur so aus:
users/{userId}
: Nutzerdatensätzegroups/{groupId}
: Chats zwischen zwei oder mehr Nutzernmessages/{messageId}
: Jede Nachricht in einem Chat
Datenspeicherung
Berücksichtigen Sie die folgenden Annahmen zu Dokumentgrößen, um die Speicherkosten für das Speichern der Anwendungsdaten zu berechnen:
Sammlung | Dokumentgröße (bei der Übertragung) | Dokumentgröße (auf Laufwerk)* |
---|---|---|
Nutzer | 1 KB | 3 KB |
Gruppen | 0,5 KB | 1,5 KB |
Nachrichten | 0,25 KB | 0,75 KB |
*Diese Größenberechnung enthält Indexe für die Nachrichtenfelder. Es wird jedoch davon ausgegangen, dass die Indexierung für den Nachrichteninhalt deaktiviert ist.
Die Anwendung speichert außerdem nur Nachrichten, die nicht älter als drei Monate sind, um die Speicherkosten zu senken.
Weitere Informationen zur Berechnung der Speicherkosten finden Sie unter Erläuterungen zur Speichergrößenberechnung.
Betrieb
In der Regel führen Nutzer die folgenden allgemeinen Aufgaben in der Anwendung aus:
- Liste der Chats ansehen: Nutzer öffnen den Startbildschirm der Anwendung und sehen eine Liste der Chats (Gruppen- und Direkt-Chats) sortiert nach der zuletzt geposteten Nachricht.
- Nachrichten in einem Chat lesen: Nutzer wählen Chats auf dem Startbildschirm aus und lesen aktuelle Nachrichten aus Chats.
- Nachricht an einen Chat senden: Nutzer senden Nachrichten an Chats (Gruppen- oder Direkt-Chat).
Die gesamten geschätzten Vorgänge der Beispielanwendung in Cloud Firestore für diese drei typischen Nutzeraufgaben sind die folgenden:
- Lesevorgänge: (5 * 10) + (30) = 80 Lesevorgänge pro Nutzer und Tag
- Schreibvorgänge: (10 * 2) = 20 Schreibvorgänge pro Nutzer und Tag
- Ausgehender Netzwerktraffic: (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB pro Nutzer und Tag
- Speicher: (20 * 0,75 KB) = 15 KB pro Nutzer und Tag
Gesamtnutzung nach Nutzeraufgabe
Wählen Sie die einzelnen Nutzeraufgaben aus, um eine vollständige Beschreibung und eine Aufschlüsselung der Vorgangs-, Speicher- und Netzwerkkosten in der Anwendung anzeigen zu lassen.
Liste der Chats ansehen
Auf dem Startbildschirm der Anwendung werden die 25 neuesten Chats geladen. Dabei fallen Gebühren für 25 gelesene Dokumente an. Angenommen, ein aktiver Nutzer öffnet die Anwendung fünfmal pro Tag. So erhält man eine Gesamtsumme von 125 Lesevorgängen pro Nutzer und Tag. Effizientere Abfragen, wie die im folgenden Beispiel, können diese Kosten jedoch reduzieren.
Im folgenden Beispiel wird die Abfrage auf neue Chats beschränkt, indem jeder erfolgreiche Abruf einen Zeitstempel erhält, der von der App gespeichert wird:
db.collection('groups') .where('participants', 'array-contains', 'user123') .where('lastUpdated', '>', lastFetchTimestamp) .orderBy('lastUpdated', 'desc') .limit(25)
Angenommen, es gibt jedes Mal, wenn der Nutzer die Anwendung überprüft, durchschnittlich zehn aktualisierte Chats. Bei dieser Abfrage werden nur zehn Dokumentlesevorgänge durchgeführt.
Nachrichten in einem Chat lesen
Die Nutzer klicken vom Startbildschirm aus auf Chat-Threads, um die neuesten Nachrichten zu sehen. Es werden die 50 neuesten Nachrichten beim ersten Laden geladen.
Angenommen, der typische Nutzer führt diese Aktion fünfmal täglich aus (einmal für jedes Öffnen des Startbildschirms), wären das bis zu 250 Lesevorgänge pro Nutzer und Tag. 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)
Nehmen wir an, dass ein Nutzer etwa 30 Nachrichten pro Tag aus allen Chats erhält. Da die Abfrage auf das Abrufen neuer Nachrichten beschränkt wurde, werden nur 30 Nachrichten pro Tag abgerufen.
Nachricht an einen Chat senden
Nutzer können Nachrichten an andere Teilnehmer senden, wenn sie sich gerade in einem Chat befinden. Angenommen, ein aktiver Nutzer sendet etwa 10 Nachrichten pro Tag.
Jede gesendete Nachricht führt zu zwei Schreibvorgängen: Ein Schreibvorgang in die messages
-Untersammlung des Chats und ein Schreibvorgang in das übergeordnete Chatdokument, um den lastUpdated
-Zeitstempel und andere Metadaten zu aktualisieren.
Beachten Sie, dass die Kosten für das Lesen dieser Nachrichten von anderen Journeys abgedeckt sind. Deshalb werden bei den unten aufgeführten Gesamtkosten nur die Schreibkosten berücksichtigt.
Abgerechnete Nutzung für Administratoraufgaben
Als App-Inhaber oder -Administrator möchten Sie wahrscheinlich Berichte aus den Daten Ihrer App erstellen. Beispielsweise können Sie die Anzahl der von Ihren Nutzern gesendeten Nachrichten täglich erfassen. Dazu können Sie eine count()
-Zusammenfassung der Sammlungsgruppe messages
verwenden.
Bei Aggregationsabfragen wie count()
wird für jeden Batch von bis zu 1.000 Indexeinträgen, die der Abfrage entsprechen,ein Dokumentlesevorgang in Rechnung gestellt. Für die tägliche Aggregation fallen die folgenden monatlichen Kosten an:
Klein
(50.000 Installationen)
Für 50.000 App-Installationen (5.000 aktive Nutzer pro Tag): 0,0009 $ pro Monat
5.000 aktive Nutzer × 10 neue Nachrichten pro Nutzer = 50.000 neue Nachrichtendokumente pro Tag
50.000 gezählte Dokumente ÷ 1.000 Indexübereinstimmungen pro Lesegebühr = 50 Lesevorgänge
50 Lesungen pro Tag × 30 Tage = 1.500 Lesungen pro Monat
1.500 Lesungen pro Monat * 0,06 $/100.000 Lesungen = 0,0009 $ pro Monat
Mittel
(1 Million Installationen)
Für 1.000.000 App-Installationen (100.000 aktive Nutzer pro Tag): 0,018 $ pro Monat
100.000 aktive Nutzer × 10 neue Nachrichten pro Nutzer = 1.000.000 neue Nachrichtendokumente pro Tag
1.000.000 gezählte Dokumente ÷ 1.000 Indexübereinstimmungen pro Lesevorgang = 1.000 Lesevorgänge
1.000 Lesungen pro Tag × 30 Tage = 30.000 Lesungen pro Monat
30.000 Lesungen pro Monat * 0,06 €/100.000 Lesungen = 0,018 € pro Monat
Groß
(10 Mio. Installationen)
Für 10.000.000 App-Installationen (1.000.000 aktive Nutzer pro Tag): 0,18 $
1.000.000 aktive Nutzer × 10 neue Nachrichten pro Nutzer = 10.000.000 neue Nachrichtendokumente pro Tag
10.000.000 gezählte Dokumente ÷ 1.000 Indexübereinstimmungen pro Lesevorgang = 10.000 Lesevorgänge
10.000 Lesevorgänge pro Tag × 30 Tage = 300.000 Lesevorgänge pro Monat
300.000 Lesungen pro Monat * 0,06 $/100.000 Lesungen = 0,18 $ pro Monat
Enthaltene Leistungen: Kostenlose Dienste für Ihre App
Cloud Firestore Vorgänge, Speicherplatz und Netzwerkbandbreite werden zwar als abrechenbare Nutzung betrachtet, Sie erhalten aber auch eine Vielzahl anderer Vorteile ohne Aufpreis. Berücksichtigen Sie die folgenden kostenlosen Dienste, wenn Sie Cloud Firestore mit anderen Datenbankoptionen vergleichen:
- Direkter Clientzugriff:Cloud Firestore wird über unsere nativen SDKs direkt über Ihren Clientcode aufgerufen. Sie müssen also keinen API-Server erstellen und ausführen, um Ihre mobilen Clients mit der Datenbank zu verbinden.
- Load Balancing: Da Cloud Firestore automatisch skaliert, um den Traffic zu Ihrer Datenbank zu unterstützen, müssen Sie keinen Load Balancer ausführen.
- Serververfügbarkeit: Cloud Firestore-Datenbanken werden auf Google Cloud-Servern ausgeführt und bieten eine monatliche Verfügbarkeit von über 99%.
- Authentifizierung:Mit Firebase Authentication können Sie unbegrenzt viele Nutzer einfach und sicher authentifizieren. Firebase Authentication kann direkt in Cloud Firestore eingebunden werden, sodass Sie keinen eigenen Authentifizierungsdienst betreiben müssen.
- Push-Benachrichtigungen:Mit Cloud Messaging können Sie Nachrichten und Benachrichtigungen senden.
- Weitere Firebase-Produkte:Sie können kostenlos weitere Firebase-Produkte einbinden, darunter A/B-Tests, Analytics, Crashlytics, Leistungsüberwachung und Remote Config. Weitere Informationen zu anderen Firebase-Produkten und den Firebase-Preisen