Kostenbeispiel
Anhand dieses konkreten Beispiels einer einfachen Chat-Anwendung erfahren Sie mehr über die Nutzung von Firestore und wie Sie die Kosten abschätzen können. Dies ermöglicht keine exakte Schätzung. Das Beispiel kann aber helfen, besser zu verstehen, wie die 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. Das vorliegende Beispiel können Sie als Anhaltspunkt für Ihre Berechnungen nutzen. Auf der Preisseite finden Sie eine ausführlichere Darstellung der Firestore-Kosten.
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änge à 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öschungen und (80.000 Löschungen à 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 kostenlos für
Firestore
2 Da wir davon ausgehen, dass die aktiven Nutzer pro Tag 10% aller Apps ausmachen
Installationen, das
number gibt an, wie viele Nutzer Ihre App 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änge + (1,98 Mio.Schreibvorgänge bei 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änge + (19,98 Mio.Schreibvorgänge bei 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öschungen und (19,98 Mio.Löschungen à 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 Speicher) + (1.349 GB × 0,18 $/GB) = 242,82 $ / 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 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 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
Ihre App-Daten verwenden. Beispielsweise können Sie die tägliche Anzahl der
Anzahl der von Ihren Nutzern gesendeten Nachrichten. Dazu können Sie eine count()
-Zusammenfassung der Sammlungsgruppe messages
verwenden.
Für Aggregationsabfragen wie count()
wird Ihnen ein Dokumentlesevorgang in Rechnung gestellt.
für jeden Batch von bis zu 1.000 Indexeinträgen,die der Abfrage entsprechen. Ausführen
Für die tägliche Zusammenfassung fallen die folgenden monatlichen Gebühren 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 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 Million Installationen)
Für 1.000.000 App-Installationen (100.000 aktive Nutzer pro Tag): 0,018 $/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 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 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 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