Wenn Sie Ihre Anwendungen während Switchovers, regionenübergreifenden Failovers, Sicherungswiederherstellungen oder Migrationen von der spezifischen IP-Adresse oder dem Uniform Resource Identifier (URI) Ihrer AlloyDB for PostgreSQL-Primärinstanz entkoppeln möchten, können Sie einen Schreibendpunkt konfigurieren.
Ein Endpunkt ist eine AlloyDB-Ressource, die einen stabilen DNS-Namen (Domain Name System) bereitstellt, über den Ihre Anwendungen eine Verbindung zu einer AlloyDB-Instanz herstellen können. Diese Abstraktion vereinfacht die Verbindungsverwaltung bei betrieblichen Ereignissen wie Notfallwiederherstellung, Sicherungswiederherstellung oder Migrationen, da Sie den DNS-Namen des Endpunkts auf eine andere Instanz umleiten können, ohne die Konfiguration Ihrer Anwendung zu ändern.
AlloyDB-Endpunkte unterstützen den Typ WRITE_ENDPOINT. Ein Schreibendpunkt leitet den Traffic an eine einzelne primäre AlloyDB-Instanz weiter und verarbeitet sowohl Lese- als auch Schreibzugriffe.
Der DNS-Name fungiert als globale Ressource, die Endpunktressource selbst ist jedoch regional. Trotzdem kann jeder Endpunkt global mit Instanzen verknüpft werden und sein DNS-Name wird von jedem Standort aus aufgelöst.
Vorteile der Verwendung von Endpunkten
Die Verwendung eines Schreibendpunkts bietet folgende Vorteile:
- Vereinfachte Notfallwiederherstellung: Wenn Sie einen Wechsel oder ein regionenübergreifendes Failover zu einem sekundären Cluster durchführen, aktualisiert AlloyDB den Endpunkt automatisch, sodass er auf die neue primäre Instanz verweist. Ihre Anwendungen können dann über denselben Endpunkt-DNS-Namen wieder eine Verbindung herstellen, wodurch sich die Wiederherstellungszeit (Recovery Time Objective, RTO) verkürzt.
- Optimierte Sicherungswiederherstellung: Wenn Sie eine Instanz aus einer Sicherung wiederherstellen, erstellt AlloyDB eine neue Instanz mit einer neuen IP-Adresse. Sie können Ihren Endpunkt so aktualisieren, dass er auf die neu wiederhergestellte Instanz verweist. So können Anwendungen ohne Konfigurationsänderungen den Betrieb wieder aufnehmen.
- Einfachere Migrationen: Während der Migration können Sie einen Endpunkt von einer Quelldatenbank zu einer AlloyDB-Instanz wechseln, wobei die Anwendung nur minimal unterbrochen wird.
Beschränkungen
- Endpunkte unterstützen nur Instanzen, die für die Verwendung des Zugriffs auf private Dienste konfiguriert sind. Endpunkte unterstützen keine Instanzen, die für die Verwendung von Private Service Connect (PSC) konfiguriert sind.
- Die Unterstützung für AlloyDB Language Connectors und den AlloyDB Auth-Proxy ist für Schreibendpunkte nicht verfügbar.
- Gleichzeitige Änderungsvorgänge (z. B. gleichzeitige Aktualisierungen oder ein Aktualisierungs- und ein Löschvorgang) an Endpunkten, die auf dieselbe Zielinstanz verweisen, werden nicht unterstützt und können zu Fehlern führen.
Hinweis
- Installieren und initialisieren Sie die Google Cloud CLI.
- Aktivieren Sie die Cloud DNS API:
- Sie benötigen eine vorhandene AlloyDB-Instanz, die als Ziel für den Endpunkt dient.
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle (Identity and Access Management) AlloyDB-Administrator (
roles/alloydb.admin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Endpunkten benötigen. Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwalten von Endpunkten erforderlich sind.Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten. Folgende Berechtigungen sind erforderlich:
alloydb.endpoints.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
Weitere Informationen finden Sie unter AlloyDB-IAM-Rollen und -Berechtigungen.
Sie können Schreibendpunkte mit der Google Cloud CLI erstellen und verwalten.
Endpunkt erstellen
Verwenden Sie die Google Cloud CLI, um einen Schreibendpunkt zu erstellen. Der Endpunkttyp muss WRITE_ENDPOINT sein und auf eine einzelne primäre Instanz verweisen.
Console
Rufen Sie in der Google Cloud Console die Seite Endpunkte auf.
Klicken Sie auf Endpunkt erstellen.
Geben Sie im Feld Endpunktname eine ID für den Endpunkt ein. Muss aus Kleinbuchstaben (a–z), Ziffern und Bindestrichen bestehen, mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.
Wählen Sie eine Region aus.
Wählen Sie als Endpunkttyp die Option Schreiben aus.
Wählen Sie im Feld Zielinstanz die primäre Instanz aus, auf die dieser Endpunkt verweisen soll.
Klicken Sie auf Erstellen.
gcloud
gcloud beta alloydb endpoints create ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--endpoint-type=ENDPOINT_TYPE \
--target-instances=TARGET_INSTANCE_NAME
Ersetzen Sie Folgendes:
ENDPOINT_ID: Eine eindeutige Kennung für den Endpunkt. Diese ID muss innerhalb des angegebenen Projekts und Standorts eindeutig sein.PROJECT_ID: Projekt-ID in Google Cloud .REGION_ID: die ID der Region, in der Sie den Endpunkt erstellen möchten, z. B.us-central1.ENDPOINT_TYPE: der Typ der Endpunktressource. NurWRITE_ENDPOINTwird unterstützt.TARGET_INSTANCE_NAME: der vollständige Ressourcenname der AlloyDB for PostgreSQL-Instanz, auf die der Endpunkt verweist. Der vollständige Ressourcenpfad für eine Instanz hat das folgende Format:projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.
Verbindung zu einer Instanz über einen Endpunkt herstellen
Wenn Sie über einen Endpunkt eine Verbindung zu Ihrer AlloyDB-Instanz herstellen möchten, müssen Sie zuerst den automatisch generierten DNS-Namen abrufen, der dem Endpunkt zugeordnet ist.
DNS-Namen abrufen
Sie können den DNS-Namen eines Endpunkts mit der Google Cloud CLI aufrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Endpunkte auf.
Suchen Sie den Endpunkt, zu dem Sie eine Verbindung herstellen möchten, und kopieren Sie den Wert in der Spalte DNS-Name.
gcloud
Führen Sie den Befehl
gcloud beta alloydb endpoints describeaus:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_IDErsetzen Sie Folgendes:
ENDPOINT_ID: die ID des EndpunktsPROJECT_ID: Ihre Projekt-ID in Google CloudREGION_ID: die ID der Region, in der sich der Endpunkt befindet
Suchen Sie in der Befehlsausgabe das Feld
dnsNameund kopieren Sie den Wert.
Verbindung über psql herstellen
Sobald Sie den DNS-Namen haben, können Sie ihn als Host in Ihrem Verbindungsstring oder Clienttool verwenden. Wenn Sie beispielsweise eine Verbindung mit dem psql-Client herstellen möchten, führen Sie den folgenden Befehl aus:
psql -h DNS_NAME -U USERNAME -d DATABASE_NAME
Ersetzen Sie Folgendes:
DNS_NAME: der DNS-Name des EndpunktsUSERNAME: Der Datenbanknutzer, als der die Verbindung hergestellt werden soll.DATABASE_NAME: Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll.
Weitere Informationen zur Verwendung von psql finden Sie unter Verbindung über den psql-Client herstellen.
Endpunkt aktualisieren
Verwenden Sie die folgenden Befehle, um die Instanz zu ändern, auf die ein Endpunkt verweist, z. B. nach einem Wiederherstellungsvorgang:
Console
Rufen Sie in der Google Cloud Console die Seite Endpunkte auf.
Klicken Sie in der Zeile des Endpunkts, den Sie aktualisieren möchten, auf Aktionen und wählen Sie dann Bearbeiten aus.
Wählen Sie im Feld Zielinstanz die neue primäre Instanz aus, auf die dieser Endpunkt verweisen soll.
Klicken Sie auf Aktualisieren.
gcloud
gcloud beta alloydb endpoints update ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--target-instances=NEW_TARGET_INSTANCE_NAME
Ersetzen Sie Folgendes:
ENDPOINT_ID: die ID des zu aktualisierenden EndpunktsPROJECT_ID: Ihre Projekt-ID in Google CloudREGION_ID: die ID der Region, in der sich der Endpunkt befindetNEW_TARGET_INSTANCE_NAME: der vollständige Ressourcenname der neuen Zielinstanzen
Endpunkte auflisten
Verwenden Sie den folgenden Befehl, um alle Endpunkte in einem bestimmten Projekt und einer bestimmten Region aufzulisten:
Console
Rufen Sie in der Google Cloud Console die Seite Endpunkte auf.
Auf der Seite werden alle Endpunkte im aktuellen Projekt aufgeführt.
gcloud
gcloud beta alloydb endpoints list --project=PROJECT_ID \
--region=REGION_ID
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID in Google CloudREGION_ID: die ID der Region, in der sich der Endpunkt befindet
Endpunktdetails ansehen
Wenn Sie die Details eines bestimmten Endpunkts aufrufen möchten, verwenden Sie den folgenden Google Cloud CLI-Befehl:
gcloud
gcloud beta alloydb endpoints describe ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Ersetzen Sie Folgendes:
ENDPOINT_ID: die ID des zu beschreibenden EndpunktsPROJECT_ID: Ihre Projekt-ID in Google CloudREGION_ID: die ID der Region, in der sich der Endpunkt befindet
In der Google Cloud Console können Sie die Endpunktdetails auf der Seite Endpunkte aufrufen.
Endpunkt löschen
Verwenden Sie die folgenden Befehle, um einen Endpunkt zu löschen:
Console
Rufen Sie in der Google Cloud Console die Seite Endpunkte auf.
Klicken Sie in der Zeile des Endpunkts, den Sie löschen möchten, auf Aktionen und wählen Sie Löschen aus.
Geben Sie zur Bestätigung die Endpunkt-ID ein und klicken Sie dann auf Löschen.
gcloud
gcloud beta alloydb endpoints delete ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Ersetzen Sie Folgendes:
ENDPOINT_ID: die ID des zu löschenden EndpunktsPROJECT_ID: Ihre Projekt-ID in Google CloudREGION_ID: die ID der Region, in der sich der Endpunkt befindet
Verhalten des Schreibendpunkts während eines Switchovers oder regionenübergreifenden Failovers
Der DNS-Name eines Endpunkts wird bei der Erstellung in die IP-Adresse einer bestimmten Instanz aufgelöst. Diese Endpunkte sind jedoch dynamisch. Bei regionenübergreifenden Replikationsaktivitäten wie einem Wechsel oder einem regionenübergreifenden Failover (Vorschau) bleiben die AlloyDB-Schreibendpunkte ohne manuelles Eingreifen kontinuierlich verbunden. Wenn ein sekundärer Cluster zum neuen primären Cluster hochgestuft wird, aktualisiert der Endpunkt automatisch seinen DNS-Eintrag, sodass er auf die neue primäre Instanz verweist. Dadurch entfällt die manuelle Neukonfiguration von Verbindungsstrings für Anwendungen, was die operative Komplexität erheblich reduziert und die Ausfallzeit minimiert, um ein Recovery Time Objective (RTO) zu erreichen.
Nach Abschluss des Vorgangs und der DNS-Weitergabe kann Ihre Anwendung über denselben DNS-Namen des Endpunkts wieder eine Verbindung zur neuen primären Instanz herstellen.
Konflikte bei Schreibvorgängen während des Failovers verhindern
Wenn Sie während eines regionenübergreifenden Failovers einen Schreibendpunkt verwenden, können Sie widersprüchliche Schreibvorgänge vermeiden, da neuer Schreibtraffic automatisch vom ursprünglichen primären Cluster zum neuen Cluster weitergeleitet wird. Weitere Informationen zum Verhalten des Endpunkts für Schreibvorgänge während eines Failovers finden Sie unter Endpunkte für Schreibvorgänge verwenden, um Split-Brain-Szenarien zu vermeiden.