|

Firestore - Preise

In diesem Dokument wird die Preisgestaltung für Firestore erläutert.

Wenn Sie in einer anderen Währung als US-Dollar bezahlen, gelten die unter Cloud Platform SKUs für Ihre Währung angegebenen Preise.

Preisübersicht

Bei der Nutzung von Firestore wird Ihnen Folgendes in Rechnung gestellt:

  • Die Anzahl der Dokumente, die Sie lesen, schreiben und löschen können.
  • Die Anzahl der Indexeinträge, die zur Erfüllung einer Abfrage gelesen werden. Weitere Informationen zu Indexlesungen
  • Der durch die Datenbank belegte Speicherplatz. Darin enthalten sind auch die Kosten für Metadaten und Indexe.
  • Die genutzte Netzwerkbandbreite.

Die Speicher- und Bandbreitennutzung wird in Gibibyte (GiB) berechnet (1 GiB = 230 Byte). Alle Gebühren fallen täglich an.

Die folgenden Abschnitte enthalten Details zu den Nutzungsgebühren für Firestore.

Kostenloses Kontingent

Firestore bietet kostenlose Kontingente an, mit denen Sie ganz ohne Gebühren Ihre (default)-Datenbank einrichten können. Die Größen dieser Gratiskontingente sind unten aufgelistet. Wenn Sie größere Kontingente benötigen, müssen Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

Kontingente gelten je Tag und werden gegen Mitternacht (UTC -7/-8) zurückgesetzt.

Nur die (default)-Datenbank kommt für das kostenlose Kontingent infrage.

Kostenlose Stufe Kontingent
Gespeicherte Daten 1 GiB
Lesevorgänge für das Dokument 50.000 pro Tag
Schreibvorgänge für das Dokument 20.000 pro Tag
Löschvorgänge für das Dokument 20.000 pro Tag
Ausgehende Datenübertragung 10 GiB pro Monat

Die folgenden Vorgänge und Funktionen sind nicht kostenlos. Sie müssen die Abrechnung aktivieren, um diese Funktionen zu verwenden:

  • Verwendung benannter (nicht standardmäßiger) Datenbanken
  • TTL-Löschungen
  • PITR-Daten
  • Daten sichern
  • Vorgänge wiederherstellen

Weitere Informationen zur Abrechnung dieser Funktionen finden Sie unter Speicherpreise.

Preise nach Standort

In der folgenden Tabelle sind die Preise für Lese-, Schreib- und Löschvorgänge sowie den Speicher für jeden Firestore-Standort aufgeführt:

Wenn Sie in einer anderen Währung als US-Dollar bezahlen, gelten die unter Cloud Platform SKUs für Ihre Währung angegebenen Preise.

Kein kostenloses Kontingent für benannte Datenbanken

Wenn Sie eine benannte (nicht standardmäßige) Datenbank erstellen möchten, müssen Sie die Abrechnung aktivieren.

Beim Erstellen oder Löschen von benannten Datenbanken fallen keine zusätzlichen Kosten an, das kostenlose Kontingent kann dafür allerdings nicht verwendet werden. Stattdessen wird Ihnen die Nutzung im Zusammenhang mit diesen benannten Datenbanken in Rechnung gestellt.

Lese-, Schreib- und Löschvorgänge

Sie zahlen für Dokumente und Indexeinträge, die gelesen werden, um eine Abfrage zu erfüllen. Jeder Schreib- und Löschvorgang für ein Dokument wird in Rechnung gestellt.

Die Gebühren für Schreib- und Löschvorgänge sind leicht nachvollziehbar. Für Schreibvorgänge zählt jeder set- oder update-Vorgang als einzelner Schreibvorgang.

Bei den Gebühren für Lesevorgänge gibt es einige Nuancen, die Sie berücksichtigen sollten. In den folgenden Abschnitten werden diese im Detail erläutert.

Indexeintrag lesen

Sie zahlen einen Lesevorgang für jeden Batch von bis zu 1.000 Indexeinträgen, die durch eine Abfrage gelesen werden, außer in den folgenden Fällen:

  • Für Suchanfragen mit dem KNN-Vektor wird für jeden Batch von bis zu 100 KNNVektorindexeinträgen, die durch die Anfrage gelesen werden, eine Leseoperation berechnet.

    Wenn die folgende Vektorabfrage mit limit: 5 beispielsweise 5 Dokumente zurückgibt und 1550 kNN-Vektorindexeinträge liest, werden Ihnen 5 Lesevorgänge für die zurückgegebenen Dokumente und 16 Lesevorgänge für die Indexeinträge in Rechnung gestellt:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • Für Abfragen mit bis zu einem Bereichsfeld werden keine Kosten für Indexeinträge zum Lesen berechnet.

    Die folgende Abfrage enthält ein Gleichheitsfeld (age) und ein Bereichsfeld (start_date) und wird nicht für Indexeinträge zum Lesen berechnet:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Die folgende Abfrage enthält zwei Bereichsfelder (age und start_date) und wird für Indexeinträge gelesen:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Ein Feld, das in der ORDER BY-Klausel erscheint, wird als Bereichsfeld betrachtet, wenn in der Abfrage mindestens ein anderes Bereichsfeld vorhanden ist. Die folgende Abfrage enthält daher zwei Bereichsfelder (age und start_date) und wird für Indexeinträge gelesen:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    Das __name__-Feld wird immer als Bereichsfeld betrachtet, auch wenn es nur in einem Gleichheitsfilter verwendet wird. Die folgende Abfrage enthält daher zwei Bereichsfelder (age und __name__) und wird für Indexeinträge gelesen:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Aggregationsabfragen

Bei Aggregationsanfragen wie count(), sum() und avg() werden die Indexeinträge in Rechnung gestellt, die von der Abfrage wie oben beschrieben gelesen werden. Für Aggregationsabfragen, bei denen 0 Indexeinträge gelesen werden, wird ein Mindestpreis für einen Dokumentlesevorgang berechnet.

Beispielsweise werden count() Vorgänge, bei denen zwischen 0 und 1000 Indexeinträge gelesen werden, als ein Dokumentenlesevorgang abgerechnet. Für einen count()-Vorgang, bei dem 1.500 Indexeinträge gelesen werden, werden Ihnen 2 Dokumenteingaben in Rechnung gestellt.

Weitere Informationen zu den verwendeten Indizes und den gelesenen Indexeinträgen erhalten Sie mit Query Explain.

Abfrageergebnisse überwachen

Mit Firestore können Sie das Ergebnis einer Abfrage überwachen und Aktualisierungen in Echtzeit erhalten, wenn sich die Abfrageergebnisse ändern.

Wenn Sie die Ergebnisse einer Abfrage überwachen, wird Ihnen jedes Mal ein Lesevorgang in Rechnung gestellt, wenn der Ergebnismenge ein Dokument hinzugefügt oder ein Dokument aus der Ergebnismenge aktualisiert wird. Dies ist auch der Fall, wenn ein Dokument aus der Ergebnismenge entfernt wird, weil sich das Dokument geändert hat. (Allerdings wird Ihnen kein Lesevorgang in Rechnung gestellt, wenn ein Dokument gelöscht wird.)

Die Abrechnung von Listenern in den mobilen und Web-SDKs hängt auch davon ab, ob Offline-Persistenz aktiviert ist oder nicht:

  • Wenn die Offlinespeicherung aktiviert ist und der Listener länger als 30 Minuten nicht verbunden ist (zum Beispiel, wenn der Nutzer offline geht), werden Ihnen Dokumente und Indexeinträge so in Rechnung gestellt, als hätten Sie eine neue Abfrage gesendet.

  • Wenn die Offlinespeicherung deaktiviert ist, werden Ihnen Dokumente und Indexeinträge so in Rechnung gestellt, als hätten Sie eine neue Abfrage gesendet, wenn der Listener die Verbindung trennt und wieder herstellt.

Große Ergebnismengen verwalten

Firestore bietet verschiedene Features, um Sie bei der Verwaltung von Abfragen zu unterstützen, die eine große Anzahl von Ergebnissen zurückgeben:

  • Cursors zum Fortsetzen einer lang andauernden Abfrage
  • Seitentokens für Seitenumbrüche der Abfrageergebnisse
  • Limits zum Festlegen der Anzahl der Ergebnisse, die abgerufen werden sollen
  • Offsets zum Überspringen einer festen Anzahl von Dokumenten

Für die Verwendung von Cursors, Seitentokens und Limits fallen keine zusätzlichen Gebühren an. Tatsächlich können Ihnen diese Features dabei helfen, Geld zu sparen, indem nur die Dokumente gelesen werden, die Sie wirklich brauchen.

Wenn Sie jedoch eine Abfrage senden, die ein Offset enthält, wird Ihnen ein Lesevorgang für jedes übersprungene Dokument in Rechnung gestellt. Wenn Ihre Abfrage zum Beispiel ein Offset von 10 nutzt und die Abfrage 1 Dokument zurückgibt, werden Ihnen 11 Lesevorgänge in Rechnung gestellt. Aufgrund dieser zusätzlichen Kosten sollten Sie nach Möglichkeit Cursors statt Offsets verwenden.

Andere Abfragen

Für andere Abfragen, wie die Anfrage für eine Liste von Sammlungs-IDs, wird Ihnen ein Lesevorgang in Rechnung gestellt. Wenn zum Abrufen der gesamten Ergebnismenge mehr als eine Anfrage erforderlich ist (zum Beispiel bei der Verwendung von Seitenumbrüchen), wird Ihnen jede Anfrage einzeln in Rechnung gestellt.

Mindestgebühr für Abfragen

Für jede Abfrage wird Ihnen eine Mindestgebühr von einem Lesevorgang für ein Dokument in Rechnung gestellt, auch wenn die Abfrage keine Ergebnisse zurückgibt.

Firestore-Sicherheitsregeln

Für Mobil- und Web-Clientbibliotheken werden Ihnen folgendermaßen zusätzliche Lesevorgänge in Rechnung gestellt, wenn Ihre Firestore-Sicherheitsregeln exists(), get() oder getAfter() zum Lesen von einem oder mehreren Dokumenten aus der Datenbank verwenden:

  • Ihnen werden Lesevorgänge in Rechnung gestellt, die zur Evaluierung Ihrer Firestore-Sicherheitsregeln erforderlich sind.

    Wenn sich Ihre Regeln beispielsweise auf drei Dokumente beziehen, aber Firestore nur zwei dieser Dokumente zur Evaluierung der Regeln lesen muss, werden Ihnen zwei zusätzliche Lesevorgänge für die abhängigen Dokumente in Rechnung gestellt.

    Ihnen wird nur ein Lesevorgang je abhängigem Dokument in Rechnung gestellt, auch wenn sich die Regeln mehr als einmal auf dieses Dokument beziehen.

  • Ihnen wird die Evaluierung der Regeln nur einmal pro Anfrage in Rechnung gestellt.

    Infolgedessen kann es günstiger sein, mehrere statt einzelne Dokumente zu lesen, weil das Lesen mehrerer Dokumente weniger Anfragen benötigt.

  • Wenn Sie die Ergebnisse einer Abfrage überwachen, wird Ihnen in den folgenden Fällen eine Evaluierung der Regeln in Rechnung gestellt:

    • wenn Sie die Abfrage senden
    • jedes Mal, wenn die Abfrageergebnisse aktualisiert werden
    • jedes Mal, wenn das Gerät des Nutzers offline und dann wieder online geht
    • jedes Mal, wenn Sie die Regeln aktualisieren
    • jedes Mal, wenn Sie die abhängigen Dokumente in den Regeln aktualisieren

Größe des Datenbankspeichers

Ihnen wird die auf Firestore gespeicherte Datenmenge einschließlich des Speicheraufwands in Rechnung gestellt. Die Menge des Speicheraufwands umfasst Metadaten sowie automatische und zusammengesetzte Indexe.

Für jedes in Firestore gespeicherte Dokument werden folgende Metadaten benötigt:

  • Die Dokument-ID, einschließlich Sammlungs-ID und Dokumentname.
  • Der Name und Wert der einzelnen Felder. Da Firestore schemalos ist, muss der Name eines jeden Feldes in einem Dokument zusammen mit dem Feldwert gespeichert werden.
  • Alle Einzelfeld- und zusammengesetzten Indexe, die sich auf das Dokument beziehen. Jeder Indexeintrag enthält die Sammlungs-ID; je nach Indexdefinition beliebig viele Feldwerte und den Dokumentnamen.

Die Speicherkosten werden in GiB/Monat angegeben und täglich berechnet. Firestore misst die Datenbankgröße täglich. Über einen Zeitraum von einem Monat wird der Durchschnitt dieser Messwerte berechnet, um die Datenbankspeichergröße zu ermitteln. Dieser Durchschnittswert wird mit dem Speicherpreis pro GiB-Monat multipliziert

Unter Berechnung der Speichergröße erfahren Sie, wie der Speicher für Firestore berechnet wird.

PITR-Daten

Wenn Sie PITR aktivieren, wird Ihnen das Speichern von PITR-Daten in Rechnung gestellt. Die meisten Kunden werden feststellen, dass die Gesamtkosten für die Speicherung von PiTR-Daten denen der Datenbankspeicherung ähneln.

Die Speicherkosten für PITR werden in GiB/Monat und täglich berechnet. Firestore misst die Datenbankgröße täglich. Über einen Zeitraum von einem Monat wird der Durchschnitt dieser Messwerte berechnet, um die Speichergröße der Datenbank zu ermitteln. Dieser Durchschnittswert wird mit dem Stückpreis der PITR (GiB-Monat) multipliziert.

Wenn die durchschnittliche Größe Ihrer Datenbank im Monat 1 GiB beträgt und PITR für den gesamten Monat aktiviert ist, beträgt die abrechenbare PITR-Datengröße ebenfalls 1 GiB.

Mindestabrechnung: Ihnen werden möglicherweise die Kosten für einen Tag PITR-Speicher in Rechnung gestellt, selbst wenn Sie PITR innerhalb eines Tages nach der Aktivierung deaktivieren.

Datensicherung und -wiederherstellung

Wenn Sie Sicherungen aktivieren, wird Ihnen der Speicherplatz für die Datenbanksicherungen in Rechnung gestellt. Die Speichergröße für eine Sicherung entspricht der Speichergröße der Datenbank zum Zeitpunkt der Sicherung.

Die Speicherkosten für Backups werden in GiB/Monat berechnet. Außerdem wird die durchschnittliche Anzahl der Tage berechnet, an denen ein Backup aufbewahrt wird. Die Kosten für jede Sicherung ergeben sich aus der Speichergröße der Sicherung multipliziert mit dem Anteil des Monats, in dem die Sicherung aufbewahrt wird, multipliziert mit dem Einheitspreis. Die Tagesgrenzen werden zur Abrechnung nach der Zeitzone America/Los_Angeles definiert.

Wenn Sie einen Wiederherstellungsvorgang ausführen, misst Firestore die Größe des Backups für den Wiederherstellungsvorgang. Die Größe der Sicherung wird mit dem Stückpreis für Wiederherstellungsvorgänge multipliziert (GiB).

Abfrage erklären

Die Verwendung von Firestore Query Explain ist kostenpflichtig.

Wenn eine Abfrage mit der Standardoption erklärt wird, werden keine Indexlesevorgänge ausgeführt. Unabhängig von der Komplexität der Abfrage wird immer ein Lesevorgang berechnet.

Wenn eine Abfrage mit der Option „Analysieren“ erklärt wird, werden Index- und Lesevorgänge ausgeführt. Die Abfrage wird also wie gewohnt abgerechnet. Für die Erklärung und Analyse fallen keine zusätzlichen Kosten an, sondern nur die üblichen Kosten für die ausgeführte Abfrage.

Netzwerkbandbreite

Die durch Firestore-Anfragen genutzte Netzwerkbandbreite wird Ihnen in Rechnung gestellt, wie in den folgenden Preistabellen dargestellt. Die Netzwerkbandbreitenkosten für eine Firestore-Anfrage hängen von der Antwortgröße der Anfrage, dem Standort der Firestore-Datenbank und dem Ziel der Antwort ab.

Firestore errechnet die Antwortgröße anhand eines serialisierten Nachrichtenformats. Protokoll-Overhead, wie SSL-Overhead, wird nicht auf die Netzwerkbandbreitennutzung angerechnet. Durch Ihre Firestore-Sicherheitsregeln abgelehnte Anfragen werden nicht auf die Netzwerkbandbreitennutzung angerechnet.

Wenn Sie wissen möchten, wie viel Netzwerkbandbreite Sie genutzt haben, können Sie in der Google Cloud Console Ihre Abrechnungsdaten in eine Datei exportieren.

Allgemeine Netzwerkpreise

Anfragen, die aus der Google Cloud Platform stammen (zum Beispiel von einer Anwendung in Google Compute Engine), werden Ihnen folgendermaßen in Rechnung gestellt:

Traffictyp Preis
Eingehende Datenübertragung Kostenlos
Datenübertragung innerhalb einer Region Kostenlos
Datenübertragung zwischen Regionen in derselben Multiregion Kostenlos
Datentransfer zwischen Regionen innerhalb der USA (pro GiB) 0,01 $ (die ersten 10 GiB pro Monat sind kostenlos)
Datenübertragung zwischen Regionen, ohne Traffic zwischen Regionen in den USA Google Cloud Platform-Preise für ausgehenden Internettraffic

Wenn Sie in einer anderen Währung als US-Dollar bezahlen, gelten die unter Cloud Platform SKUs für Ihre Währung angegebenen Preise.

Preise für die Internetdatenübertragung

Die folgenden Daten werden Ihnen in Rechnung gestellt:

  • Google Cloud-Anfragen zwischen Regionen (jedoch nicht für Traffic zwischen US-Regionen)
  • Anfragen von außerhalb der Google Cloud (zum Beispiel von einem Mobilgerät eines Nutzers)

Wenn Sie in einer anderen Währung als US-Dollar bezahlen, gelten die unter Cloud Platform SKUs für Ihre Währung angegebenen Preise.

Nutzung überwachen

Informationen zum Überwachen der Firestore-Nutzung finden Sie unter Nutzung überwachen.

Ausgaben verwalten

Legen Sie Monatsbudgets und Benachrichtigungen fest, um Ihre Ausgaben zu verwalten.

Google CloudBudgets und Benachrichtigungen

Mit Google Cloud können Sie ein Monatsbudget für alle Google Cloud-Dienste festlegen. Mit einem Monatsbudget behalten Sie Ihre gesamten Google Cloud-Kosten im Blick, einschließlich der Netzwerkbandbreitenkosten für Firestore. Nachdem Sie ein Budget festgelegt haben, können Sie Benachrichtigungen festlegen, um E-Mail-Benachrichtigungen zu erhalten, wenn Ihre Kosten sich Ihrer Budgetgrenze nähern.

Mit diesen Schritten legen Sie ein monatliches Budget fest und richten Benachrichtigungen in der Google Cloud Console ein.

Preisbeispiel

Informationen dazu, wie Abrechnungskosten für Firestore bei einer realen Anwendung anfallen, finden Sie im Kostenbeispiel für Firestore.

Nächste Schritte

Individuelles Angebot einholen

Mit den „Pay as you go“-Preisen von Google Cloud bezahlen Sie nur für die Dienste, die Sie nutzen. Wenden Sie sich an unser Vertriebsteam, wenn Sie ein individuelles Angebot für Ihr Unternehmen erhalten möchten.
Vertrieb kontaktieren