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 $/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 $ / 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
Monatliche Gesamtkosten = 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 Speicherplatz / 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 Firestore kostenlos.
2 Da wir davon ausgehen, 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änge + (1,98 Mio. Schreibvorgänge zu 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: 2.637,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 = 1.439,10 $
 
20 Millionen Schreibvorgänge pro Tag =   20.000 kostenlose Schreibvorgänge + (19,98 Mio. Schreibvorgänge zu 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 pro Tag * 1 Mio. akt. Nutzer pro Tag =   45 GB Speicher pro Tag/akt. Nutzer/Tag * 30 =   1.350 GB Speichernutzung pro Monat
(1 GB kostenloser Speicherplatz) + (1349 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ätze
  • groups/{groupId} – Chats zwischen 2 oder mehr Nutzern
    • messages/{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:

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. Dabei wird für jeden erfolgreichen Abruf ein Zeitstempel verwendet, der von der Anwendung 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. Sie können beispielsweise eine tägliche Anzahl der von Ihren Nutzern gesendeten Nachrichten erfassen. Dazu verwenden Sie eine count()-Aggregation der messages-Sammlungsgruppe.

Bei Aggregationsabfragen wie count() wird Ihnen ein Dokumentlesevorgang pro Batch von bis zu 1.000 Indexeinträgen, die der Abfrage entsprechen,in Rechnung gestellt. Für diese tägliche Aggregation 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 $/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 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 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