AlloyDB for PostgreSQL ist ein vollständig verwalteter, PostgreSQL-kompatibler Datenbankdienst, der für Ihre anspruchsvollsten Arbeitslasten entwickelt wurde, einschließlich hybrider transaktionsorientierter und analytischer Verarbeitung. AlloyDB kombiniert eine von Google entwickelte Datenbank-Engine mit einer cloudbasierten Multi-Node-Architektur, um Leistung, Zuverlässigkeit und Verfügbarkeit auf Unternehmensniveau zu bieten.
So funktioniert AlloyDB
Eine Anwendung stellt über Standard-PostgreSQL-Protokolle und -Techniken eine Verbindung zu AlloyDB-Instanzen her. Die Anwendung verwendet dann die PostgreSQL-Abfragesyntax, um mit der Datenbank zu arbeiten.
Im Hintergrund nutzt AlloyDB eine cloudbasierte Hierarchie von Komponenten und Funktionen, die die Verfügbarkeit Ihrer Daten maximieren und die Abfrageleistung und den Durchsatz optimieren sollen. Google CloudMit Verwaltungstools können Sie den Zustand Ihrer AlloyDB-Bereitstellung überwachen und die Skalierung und Größe so anpassen, dass sie den sich ändernden Anforderungen Ihrer Arbeitslast am besten entspricht.
Cluster
Bei einer einzelnen AlloyDB-Bereitstellung innerhalb einer bestimmten Google CloudRegion werden alle Ressourcen in einem Cluster organisiert. Dazu gehören alle Ihre Datenbanken, Protokolle und anderen Metadaten. AlloyDB stellt alle Ressourcen eines Clusters in einer einzigen Virtual Private Cloud (VPC) bereit und nutzt ein cloudbasiertes Dateisystem, das von Google entwickelt und für AlloyDB optimiert wurde.
Knoten und Instanzen
Ein Cluster enthält mehrere Knoten, also virtuelle Maschineninstanzen, die speziell für die Ausführung der PostgreSQL-kompatiblen Datenbank-Engine vorgesehen sind, mit der Anwendungen die Daten Ihres Clusters abfragen. AlloyDB ordnet Knoten Instanzen zu, von denen jede eine private, statische IP-Adresse in Ihrem VPC hat. In der Praxis stellen Ihre Anwendungen über PostgreSQL-Protokolle eine Verbindung zu Instanzen an diesen IP-Adressen her. Die Instanzen übergeben dann SQL-Abfragen an ihre Knoten.
AlloyDB bietet zwei Arten von Instanzen:
Primäre Instanz: Jeder Cluster hat eine primäre Instanz, die einen Lese- oder Schreibzugriffspunkt für Ihre Daten bietet. Eine primäre Instanz kann entweder hochverfügbar (HA) oder einfach sein.
Primäre HA-Instanz: Eine primäre HA-Instanz hat zwei Knoten: einen aktiven und einen Standby-Knoten. AlloyDB überwacht die Verfügbarkeit des aktiven Knotens und befördert den Standby-Knoten bei Bedarf automatisch zum aktiven Knoten.
Einfache Instanz:Für Nicht-Produktionsumgebungen, für die keine hohe Verfügbarkeit erforderlich ist, können optional einfache Instanzen verwendet werden. Eine Basisinstanz hat nur einen Knoten, keinen Standby-Knoten. Weitere Informationen finden Sie unter Kosten mit einfachen Instanzen reduzieren.
Lesepoolinstanz: Ihr Cluster kann optional eine oder mehrere Lesepoolinstanzen enthalten, die jeweils einen oder mehrere schreibgeschützte Knoten enthalten. Die maximale Anzahl clusterweit ist 20. AlloyDB führt automatisch ein Load Balancing für alle an eine Lesepoolinstanz gesendeten Anfragen durch und leitet sie an die Knoten der Instanz weiter.
Bei einfacheren Anwendungsfällen kann ein Cluster nur die primäre Instanz ohne Lesepools haben und Anwendungen verwenden die primäre Instanz für alle Abfragen. Bei anspruchsvolleren Aufgaben können Sie dem Cluster Lesepoolinstanzen hinzufügen. Anschließend konfigurieren Sie Ihre Berichts- oder Analyseanwendungen so, dass Leseanfragen an sie gesendet werden. Dadurch wird die Belastung der primären Instanz reduziert und die Skalierbarkeit verbessert, da die Last auf mehrere Knoten verteilt wird.
Sie können die Anzahl der Knoten einer Lesepoolinstanz jederzeit hinzufügen, entfernen oder anpassen, wenn sich die Anforderungen Ihrer Anwendung ändern. Außerdem können Sie bei Bedarf die Größe des Arbeitsspeichers und die Anzahl der vCPUs der Knoten einer Instanz mit minimaler Ausfallzeit anpassen. Das Skalieren Ihrer Instanzen birgt kein Risiko von Datenverlusten, da AlloyDB Ihre Daten in der flexiblen Speicherschicht des Clusters und nicht in den Instanzen speichert.
Dieses Diagramm zeigt einen Beispielcluster, der für anspruchsvolle Arbeitslasten skaliert ist und mehrere nur lesbare Instanzen für das Load Balancing umfasst:
Wichtige Features
AlloyDB unterscheidet sich auf verschiedene Weise von einer Standard-PostgreSQL-Installation. Dabei geht es nicht nur um die Vorteile der vertikalen und horizontalen Skalierung, die mit der oben beschriebenen Multi-Node-Architektur verbunden sind. In den folgenden Abschnitten werden die wichtigsten Funktionen von AlloyDB näher erläutert.
Automatische und adaptive Datenbankfunktionen
Das vollständig PostgreSQL-kompatible Datenbankmodul, das jeden AlloyDB-Knoten unterstützt, bietet mehrere Funktionen, mit denen die Struktur und Häufigkeit der Abfragen, die von Ihren Instanzen verarbeitet werden, kontinuierlich analysiert werden. Anhand dieser Informationen werden Schemaverbesserungen vorgeschlagen oder Optimierungen automatisch angewendet:
Mit einem Indexierungsberater können Sie Möglichkeiten finden, Ihr Datenbankschema mithilfe neuer Indexe zu optimieren, die auf Ihren Nutzungsmustern basieren.
Eine spaltenbasierte Engine kann die Leistung analytischer Abfragen beschleunigen, indem Daten im Arbeitsspeicher in einem spaltenbasierten Format gespeichert werden. So kann AlloyDB bei Bedarf erweiterte Verarbeitungstechniken verwenden, um große Mengen an Tabellendaten effizient zu scannen.
Eine adaptive Variante der PostgreSQL-Funktion „Autovacuum für veraltete Daten“ passt automatisch die damit verbundenen Parameter an die Arbeitslast an.
Systeme zur automatischen Arbeitsspeicher- und Speicherverwaltung nutzen die von Google entwickelte cloudbasierte Umgebung, in der AlloyDB ausgeführt wird. Sie weisen Arbeitsspeicher und Speicher nach Bedarf zu und räumen sie bei Bedarf wieder frei, damit Ihr Cluster mit optimaler Leistung und Ressourceneffizienz ausgeführt werden kann.
Hochverfügbarkeit
Standardmäßig bietet ein AlloyDB-Cluster eine Hochverfügbarkeit (High Availability, HA) über die redundanten Knoten der primären Instanz, die sich in zwei verschiedenen Zonen befinden, mit automatischem Failover.
Für Cluster in Nicht-Produktionsumgebungen, für die keine Hochverfügbarkeit erforderlich ist, können stattdessen einfache primäre Instanzen mit einer Zone verwendet werden.
Wenn Sie Lesepoolinstanzen mit mindestens zwei Knoten hinzufügen, werden weitere hochverfügbare, zonenübergreifende und lastausgleichende Zugriffspunkte auf Ihre Daten erstellt. Alle Lesepoolinstanzen werden unabhängig von der primären Instanz ausgeführt.
Weitere Informationen zu regionsspezifischen Aspekten finden Sie unter Geografie und Regionen.
Datensicherung und Notfallwiederherstellung
AlloyDB bietet ein kontinuierliches Sicherungs- und Wiederherstellungssystem, mit dem Sie einen neuen Cluster zu einem beliebigen Zeitpunkt innerhalb einer einstellbaren Aufbewahrungsdauer erstellen können. So können Sie bei einem versehentlichen Datenverlust schnell wiederherstellen.
Außerdem kann AlloyDB vollständige Sicherungen der Daten Ihres Clusters erstellen und speichern, entweder auf Anfrage oder nach einem regelmäßigen Zeitplan. Sie können jederzeit eine Sicherung in einem neuen AlloyDB-Cluster wiederherstellen, der alle Daten aus dem ursprünglichen Cluster zum Zeitpunkt der Erstellung der Sicherung enthält.
Weitere Informationen finden Sie unter Sicherungen.
Als weitere Methode zur Notfallwiederherstellung können Sie eine regionenübergreifende Replikation erreichen, indem Sie sekundäre Cluster in separaten Google Cloud-Regionen erstellen. AlloyDB streamt Daten asynchron von einem bestimmten primären Cluster an jeden seiner sekundären Cluster. Sie können einen sekundären Cluster bei Bedarf in einen voll funktionsfähigen AlloyDB-Cluster mit primären und Lesepool-Instanzen hochstufen.
Weitere Informationen finden Sie unter Regionenübergreifende Replikation.
Sicherheits- und Zugriffsverwaltung
Sie können einen Cluster so konfigurieren, dass eine Verbindung zum sicheren AlloyDB Auth-Proxy erforderlich ist, der die Google Cloud Identitäts- und Zugriffsverwaltung (Identity Access and Management, IAM) für die Zugriffssteuerung verwendet. Weitere Informationen finden Sie unter Autorisierung.
AlloyDB verwendet das standardmäßige PostgreSQL-Nutzerrollensystem für die Authentifizierung und führt einige zusätzliche Rollen ein, die speziell für AlloyDB gelten. Weitere Informationen finden Sie unter AlloyDB-Nutzerrollen verwalten.
Verschlüsselung
In AlloyDB werden alle ruhenden Daten standardmäßig mit den Verschlüsselungsmethoden von Google geschützt. Wenn Sie Ihre Daten stattdessen mit einem von Ihnen bereitgestellten Schlüssel verschlüsseln möchten, können Sie beim Erstellen eines Clusters einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) angeben. AlloyDB verwendet dann den CMEK-Schlüssel, um alle Daten zu verschlüsseln, die in diesen Cluster geschrieben werden.
CMEK gilt auch für Sicherungen. Sie können einen CMEK-Schlüssel angeben, wenn Sie eine Sicherung auf Abruf erstellen, einen Sicherungszeitplan konfigurieren oder eine Sicherung wiederherstellen.
Weitere Informationen finden Sie unter Informationen zu CMEK.
Wartung ohne Unterbrechungen
AlloyDB-Wartungsvorgänge sind so konzipiert, dass Unterbrechungen der Datenbank minimiert werden. Primäre und sekundäre Instanzen haben eine Ausfallzeit von weniger als einer Sekunde, während Lesepools ohne Ausfallzeit kontinuierlich verfügbar bleiben. Dazu werden Ersatzserver vorbereitet und schnell gegen die aktiven Server ausgetauscht, sobald sie bereit sind. Während dieses Vorgangs werden alle aktiven Verbindungen zur Datenbank vorübergehend getrennt. Sie können Ihre Datenbank während des gesamten Vorgangs wie gewohnt verwenden.
Dieser Austauschprozess sorgt zwar für eine minimale Ausfallzeit, der gesamte Vorgang kann jedoch einige Minuten dauern, wie in der Google Cloud Console und in der Google Cloud CLI angezeigt.
Zu diesen Wartungsvorgängen gehören regelmäßige Wartungsaufgaben, die von Google ausgeführt werden, und Aufgaben, die Sie manuell ausführen, z. B. die Konfiguration von Flags und die Größenänderung von Instanzen. Wenn Sie ein Update sofort anwenden möchten, auch wenn dadurch eine längere Ausfallzeit entsteht, verwenden Sie das FORCE_APPLY
-Datenbankflag.
Unterstützung für Erweiterungen
AlloyDB unterstützt eine Reihe beliebter PostgreSQL-Erweiterungen. Eine vollständige Liste finden Sie unter Unterstützte Datenbankerweiterungen.
Eine selbst gehostete Alternative: AlloyDB Omni
Als Alternative zum Ausführen von AlloyDB in Google Cloudbietet Google AlloyDB Omni an. Mit dieser optimierten, herunterladbaren Version von AlloyDB können Sie das leistungsstarke Datenbankmodul in Ihrer eigenen Linux-basierten Computing-Umgebung ausführen – und zwar überall.
Weitere Informationen finden Sie unter AlloyDB Omni.