Datenbankverbindungen mit Endpunkten für Schreibvorgänge verwalten

Auf dieser Seite wird beschrieben, wie Sie AlloyDB for PostgreSQL-Schreibendpunkte verwenden, um die Verwaltung von Datenbankverbindungen für Ihre Anwendungen zu vereinfachen.

Ein Endpunkt ist eine AlloyDB-Ressource, die einen stabilen DNS-Namen (Domain Name Service) bietet, mit dem Ihre Anwendungen eine Verbindung zu einer AlloyDB-Instanz herstellen können. Durch die Verwendung eines Endpunkts entkoppeln Sie Ihre Anwendung von der spezifischen IP-Adresse oder dem URI (Uniform Resource Identifier) einer Instanz. Diese Abstraktion vereinfacht die Verbindungsverwaltung bei Betriebsereignissen wie Notfallwiederherstellung, Sicherungswiederherstellungen oder Migrationen, da Sie den DNS-Namen des Endpunkts zu einer anderen Instanz umleiten können, ohne die Konfiguration Ihrer Anwendung zu ändern.

AlloyDB-Endpunkte unterstützen den Typ WRITE_ENDPOINT. Ein Schreibendpunkt leitet den Traffic zu einer einzelnen primären AlloyDB-Instanz und verarbeitet sowohl Lese- als auch Schreibtraffic.

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 die folgenden Vorteile:

  • Vereinfachte Notfallwiederherstellung: Wenn Sie ein Switchover oder ein regionenübergreifendes Failover zu einem sekundären Cluster ausführen, aktualisiert AlloyDB den Endpunkt automatisch, sodass er auf die neue primäre Instanz verweist. Ihre Anwendungen können dann mit demselben Endpunkt-DNS-Namen eine Verbindung herstellen, wodurch sich die Zielzeit für die Wiederherstellung (Recovery Time Objective, RTO) verkürzt.
  • Nahtlose 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 den Betrieb ohne Konfigurationsänderungen fortsetzen.
  • Einfachere Migrationen:Bei Migrationen können Sie einen Endpunkt mit minimalen Unterbrechungen für die Anwendung von einer Quelldatenbank zu einer AlloyDB-Instanz wechseln.

Beschränkungen

  • Endpunkte unterstützen nur Instanzen, die für die Verwendung von Zugriff auf private Dienste (Private Service Access, PSA) 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-Sprach-Connectors und den AlloyDB Auth-Proxy ist für den Schreibendpunkt nicht verfügbar.
  • Gleichzeitige Änderungsoperationen (z. B. gleichzeitige Aktualisierungen oder eine Aktualisierungs- und eine Löschoperation) für Endpunkte, die auf dieselbe Zielinstanz verweisen, werden nicht unterstützt und können zu Fehlern führen.

Hinweis

  1. Installieren und initialisieren Sie die Google Cloud CLI.
  2. Aktivieren Sie die Cloud DNS API.
  3. Prüfen Sie, ob eine vorhandene AlloyDB-Instanz als Ziel für den Endpunkt dient.
  4. Bitten Sie Ihren Administrator, Ihnen die AlloyDB Admin (roles/alloydb.admin) IAM-Rolle 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. Die spezifischen erforderlichen Berechtigungen sind:

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

Weitere Informationen finden Sie unter IAM-Rollen und -Berechtigungen für AlloyDB.

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 ausgerichtet sein.

Console

  1. Rufen Sie in der Google Cloud Console die Endpunkte Seite auf.

    Endpunkte aufrufen

  2. Klicken Sie auf Endpunkt erstellen.

  3. Geben Sie im Feld Endpunktname eine ID für Ihren Endpunkt ein. Muss aus Kleinbuchstaben (a–z), Ziffern und Bindestrichen bestehen, mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.

  4. Wählen Sie eine Region aus.

  5. Wählen Sie für Endpunkttyp die Option Schreiben aus.

  6. Wählen Sie im Feld Zielinstanz die primäre Instanz aus, auf die dieser Endpunkt verweisen soll.

  7. 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: Ihre Google Cloud Projekt-ID.
  • REGION_ID: Die ID der Region, in der Sie den Endpunkt erstellen möchten, z. B. us-central1.
  • ENDPOINT_TYPE: Der Typ der Endpunktressource. Nur WRITE_ENDPOINT wird 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 mit dem Endpunkt verknüpft ist.

DNS-Namen abrufen

Sie können den DNS-Namen eines Endpunkts mit der Google Cloud CLI aufrufen.

Console

  1. Rufen Sie in der Google Cloud Console die Endpunkte Seite auf.

    Endpunkte aufrufen

  2. Suchen Sie den Endpunkt, zu dem Sie eine Verbindung herstellen möchten, und kopieren Sie den Wert in der Spalte DNS-Name.

gcloud

  1. Führen Sie den Befehl gcloud beta alloydb endpoints describe aus:

    gcloud beta alloydb endpoints describe ENDPOINT_ID \
        --project=PROJECT_ID \
        --region=REGION_ID
    

    Ersetzen Sie Folgendes:

    • ENDPOINT_ID: Die ID des Endpunkts.
    • PROJECT_ID: Ihre Google Cloud Projekt-ID
    • REGION_ID: Die ID der Region, in der sich der Endpunkt befindet.
  2. Suchen Sie in der Befehlsausgabe das Feld dnsName und kopieren Sie den Wert.

Verbindung mit psql herstellen

Nachdem Sie den DNS-Namen haben, können Sie ihn als Host in Ihrer Verbindungsstring oder Ihrem Clienttool verwenden. Führen Sie beispielsweise den folgenden Befehl aus, um eine Verbindung mit dem psql-Client herzustellen:

psql -h DNS_NAME -U USERNAME -d DATABASE_NAME

Ersetzen Sie Folgendes:

  • DNS_NAME: Der DNS-Name des Endpunkts.
  • USERNAME: Der Datenbanknutzer, mit dem 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 einer Wiederherstellungsoperation:

Console

  1. Rufen Sie in der Google Cloud Console die Endpunkte Seite auf.

    Endpunkte aufrufen

  2. Klicken Sie in der Zeile des Endpunkts, den Sie aktualisieren möchten, auf Aktionen und wählen Sie dann Bearbeiten aus.

  3. Wählen Sie im Feld Zielinstanz die neue primäre Instanz aus, auf die dieser Endpunkt verweisen soll.

  4. 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 Endpunkts.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • REGION_ID: Die ID der Region, in der sich der Endpunkt befindet.
  • NEW_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

  1. Rufen Sie in der Google Cloud Console die Endpunkte Seite auf.

    Endpunkte aufrufen

    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 Google Cloud Projekt-ID
  • REGION_ID: Die ID der Region, in der sich der Endpunkt befindet.

Endpunktdetails ansehen

Verwenden Sie den folgenden Google Cloud CLI-Befehl, um die Details eines bestimmten Endpunkts aufzurufen:

gcloud

gcloud beta alloydb endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Ersetzen Sie Folgendes:

  • ENDPOINT_ID: Die ID des zu beschreibenden Endpunkts.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • REGION_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

  1. Rufen Sie in der Google Cloud Console die Endpunkte Seite auf.

    Endpunkte aufrufen

  2. Klicken Sie in der Zeile des Endpunkts, den Sie löschen möchten, auf Aktionen und wählen Sie dann Löschen aus.

  3. 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 Endpunkts.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • REGION_ID: Die ID der Region, in der sich der Endpunkt befindet.

Verhalten von Schreibendpunkten bei Switchover oder regionenübergreifendem Failover

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 Replikations aktivitäten wie einem Switchover oder einem regionenübergreifenden Failover (Vorschau) sorgen AlloyDB-Schreibendpunkte für eine kontinuierliche Verbindung ohne manuelle Eingriffe. 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. Durch dieses Verhalten entfällt die manuelle Neukonfiguration von Verbindungsstrings für Anwendungen, wodurch die operative Komplexität erheblich reduziert und die Ausfallzeit minimiert wird, um die Zielzeit für die Wiederherstellung (Recovery Time Objective, RTO) zu erreichen.

Nach Abschluss des Vorgangs und der DNS-Weiterleitung kann Ihre Anwendung mit demselben Endpunkt-DNS-Namen eine Verbindung zur neuen primären Instanz herstellen.

Konfliktierende Schreibvorgänge während des Failovers verhindern

Wenn Sie während eines regionenübergreifenden Failovers einen Schreibendpunkt verwenden, können Sie konfliktierende Schreibvorgänge verhindern, indem Sie neuen Schreibtraffic automatisch vom ursprünglichen primären Cluster zum neuen Cluster weiterleiten. Weitere Informationen zum Verhalten von Schreibendpunkten während des Failovers finden Sie unter Schreibendpunkte verwenden, um Split-Brain zu vermeiden.

Nächste Schritte