Sie können Google Cloud-Dienste oder einen anderen Speicherdienst verwenden, der von Ihrer Sprache unterstützt wird und über Ihre App Engine-Instanz zugänglich ist, um Daten und Dateien in App Engine zu speichern. Diese Datenbanken von Drittanbietern können bei einem anderen Cloud-Anbieter oder lokal gehostet bzw. von einem Drittanbieter verwaltet werden.
Google Cloud-Speicherdienste
Wir empfehlen für App Engine-Anwendungen, die in der Java 8-Standardumgebung ausgeführt werden, einen der folgenden Google Cloud-Speicherdienste:
Name | Struktur | Konsistenz | Kosten |
---|---|---|---|
Firestore im Datastore-Modus | Schemalos (NoSQL) | Sehr konsistent, außer bei globalen Abfragen | Der Datastore-Modus bietet ein kostenloses Kontingent mit täglichen Limits. Bezahlte Konten bieten unbegrenzte Speicher-, Lese- und Schreibvorgänge. Weitere Informationen finden Sie auf der Seite „Datenspeicherkontingente“. |
Cloud SQL for MySQL oder Cloud SQL for PostgreSQL |
Relational | Strikte Konsistenz | Google bietet zwei Abrechnungstarife für Google Cloud SQL: pro Paket und nutzungsbasiert. Weitere Informationen finden Sie in der Cloud SQL-Preisübersicht. |
Cloud Storage | Dateien und zugehörige Metadaten (Cloud-Dateispeicher) | Strikt konsistent, außer bei der Durchführung von Listenvorgängen, bei denen eine Liste von Buckets oder Objekten abgerufen wird | Für Aufrufe von Google Cloud Storage fallen keine Gebühren an.
Für alle in Google Cloud Storage gespeicherten Daten fallen jedoch die üblichen Datenspeichergebühren an. Informationen zu Cloud Storage-Preisen finden Sie in der Cloud Storage-Preisübersicht. |
Diese Optionen schließen sich nicht gegenseitig aus. Sie können zum Beispiel dieselbe Anwendung nutzen, um Informationen in einer Cloud SQL-Datenbank und Dateien in einem Cloud Storage-Bucket zu speichern.
Eine vollständige Liste der Google Cloud-Speicherprodukte finden Sie auf der Seite Cloud Storage-Produkte.
Andere Cloud-Anbieter
App Engine-Anwendungen können eine Verbindung zu externen Datenbanken herstellen, die in anderen öffentlichen Clouds gehostet werden. Voraussetzung ist, dass diese Datenbankserver und Ihre Firewall für das Akzeptieren von Verbindungen richtig konfiguriert sind. Ihre App Engine-Anwendung stellt mithilfe der öffentlichen IP-Adresse dieses externen Dienstes eine Verbindung über das Internet her.
Von Drittanbietern verwaltete Datenbanken
Viele Anbieter stellen verwaltete Datenbankdienste wie mLab für MongoDB zur Verfügung. Redis Labs bietet z. B. ein gehostetes Redis-Caching. Diese Anbieter übernehmen das Hosting, die Konfiguration und die Pflege der Datenbanken. App Engine kann ebenso wie andere öffentliche Clouds über das Internet eine Verbindung zu diesen externen Diensten herstellen. Dazu wird die öffentliche IP-Adresse des Dienstes verwendet.
Lokal
Wenn bereits lokale Datenbanken vorhanden sind, die Sie Ihrer App Engine-Anwendung zugänglich machen möchten, können Sie entweder Ihr internes Netzwerk und Ihre Firewall entsprechend konfigurieren und der Datenbank eine öffentliche IP-Adresse zuweisen oder eine Verbindung über ein VPN herstellen.
Überlegungen zur Produktion
App Engine kann so konfiguriert werden, dass die Anwendung basierend auf verschiedenen Messwerten automatisch horizontal skaliert wird. Im Gegensatz zu Webanwendungen sind bei Datenbanken oft anspruchsvolle Änderungen erforderlich, um auf Skalierungen zu reagieren. In Produktionsanwendungen kann App Engine bei Zugriffsspitzen eine Datenbank schnell überfordern. Beim Konfigurieren und Bereitstellen von Datenbanken müssen Sie das erwartete durchschnittliche Trafficaufkommen und die Last bei einem plötzlichen Anstieg der Zugriffe berücksichtigen.