Verbindung zu einem Cluster von außerhalb seiner VPC herstellen

Auf dieser Seite werden verschiedene Möglichkeiten zum Herstellen einer Verbindung zu einem AlloyDB for PostgreSQL-Cluster von außerhalb der konfigurierten Virtual Private Cloud (VPC) beschrieben. Es wird davon ausgegangen, dass Sie bereits einen AlloyDB-Cluster erstellt haben.

Externe Verbindungen

Ihr AlloyDB-Cluster besteht aus mehreren Knoten in einerGoogle Cloud VPC. Wenn Sie einen Cluster erstellen, konfigurieren Sie auch den Zugriff auf private Dienste zwischen einer Ihrer VPCs und der von Google verwalteten VPC mit Ihrem neuen Cluster. Über diese Peering-Verbindung können Sie über private IP-Adressen auf Ressourcen in der VPC des Clusters zugreifen, als ob sie Teil Ihrer eigenen VPC wären.

Es gibt Situationen, in denen Ihre Anwendung von außerhalb dieser verbundenen VPC eine Verbindung zu Ihrem Cluster herstellen muss:

  • Ihre Anwendung wird an anderer Stelle im Google Cloud System ausgeführt, außerhalb der VPC, die Sie über den Zugriff auf private Dienste mit Ihrem Cluster verbunden haben.

  • Ihre Anwendung wird in einer VPC ausgeführt, die sich außerhalb des Google-Netzwerks befindet.

  • Ihre Anwendung wird lokal auf einem Computer ausgeführt, der sich an einem anderen Ort im öffentlichen Internet befindet.

In allen diesen Fällen müssen Sie einen zusätzlichen Dienst einrichten, um diese Art von externer Verbindung zu Ihrem AlloyDB-Cluster zu ermöglichen.

Zusammenfassung der Lösungen für externe Verbindungen

Je nach Ihren Anforderungen empfehlen wir zwei allgemeine Lösungen zum Herstellen externer Verbindungen:

In den folgenden Abschnitten werden diese Lösungen für externe Verbindungen ausführlich beschrieben.

Verbindung über eine intermediäre VM herstellen

Wenn Sie mit Open-Source-Tools und mindestens zusätzlichen Ressourcen eine Verbindung zu einem AlloyDB-Cluster von außerhalb seiner VPC herstellen möchten, führen Sie einen Proxydienst auf einer zwischengeschalteten VM aus, die in dieser VPC eingerichtet ist. Sie können dazu eine neue VM einrichten oder eine VM verwenden, die bereits in der VPC Ihres AlloyDB-Clusters ausgeführt wird.

Als selbstverwaltete Lösung kostet die Verwendung einer zwischengeschalteten VM in der Regel weniger und hat eine schnellere Einrichtungszeit als die Verwendung eines Network Connectivity-Produkts. Sie hat auch Nachteile: Die Verfügbarkeit, Sicherheit und der Datendurchsatz der Verbindung hängen von der Zwischen-VM ab, die Sie als Teil Ihres Projekts verwalten müssen.

Verbindung über IAP herstellen

Mit Identity-Aware Proxy (IAP) können Sie sicher eine Verbindung zu Ihrem Cluster herstellen, ohne die öffentliche IP-Adresse der intermediären VM freigeben zu müssen. Sie verwenden eine Kombination aus Firewallregeln und Identity and Access Management (IAM), um den Zugriff über diese Route einzuschränken. Dies macht IAP zu einer guten Lösung für Nicht-Produktionsumgebungen wie Entwicklung und Prototyping.

So richten Sie den IAP-Zugriff auf Ihren Cluster ein:

  1. Installieren Sie die Google Cloud CLI auf Ihrem externen Client.

  2. Projekt für die IAP-TCP-Weiterleitung vorbereiten

    Lassen Sie beim Definieren der neuen Firewallregel eingehenden TCP-Traffic an Port 22 (SSH) zu. Wenn Sie das Standardnetzwerk Ihres Projekts mit aktivierter vorkonfigurierter default-allow-ssh-Regel verwenden, gilt Folgendes: Sie müssen keine zusätzliche Regel definieren.

  3. Richten Sie die Portweiterleitung zwischen Ihrem externen Client und der zwischengeschalteten VM mit SSH über IAP ein:

    gcloud compute ssh my-vm \
           --tunnel-through-iap \
           --zone=ZONE_ID \
           --ssh-flag="-L PORT_NUMBER:ALLOYDB_IP_ADDRESS:5432"

    Ersetzen Sie Folgendes:

    • ZONE_ID: Die ID der Zone, in der sich der Cluster befindet, z. B. us-central1-a.
    • ALLOYDB_IP_ADDRESS: Die IP-Adresse der AlloyDB-Instanz, zu der Sie eine Verbindung herstellen möchten.
    • PORT_NUMBER: Die Portnummer Ihrer VM.
  4. Testen Sie die Verbindung auf Ihrem externen Client mit psql und stellen Sie dabei eine Verbindung zum lokalen Port her, den Sie im vorherigen Schritt angegeben haben. So stellen Sie beispielsweise eine Verbindung als Nutzer mit der Rolle postgres zum Port 5432 her:

    psql -h localhost -p 5432 -U USERNAME

    Ersetzen Sie Folgendes:

    • USERNAME: Der PostgreSQL-Nutzer, mit dem Sie eine Verbindung zur Instanz herstellen möchten, z. B. der Standardnutzer postgres.

Verbindung über einen SOCKS-Proxy herstellen

Das Ausführen eines SOCKS-Dienstes auf der intermediären VM bietet eine flexible und skalierbare Verbindung zu Ihrem AlloyDB-Cluster. Die Ende-zu-Ende-Verschlüsselung wird vom AlloyDB Auth-Proxy bereitgestellt. Mit der richtigen Konfiguration können Sie es für Produktionsarbeitslasten anpassen.

Diese Lösung umfasst folgende Schritte:

  1. Installieren, konfigurieren und führen Sie einen SOCKS-Server auf der intermediären VM aus. Ein Beispiel ist Dante, eine beliebte Open-Source-Lösung.

    Konfigurieren Sie den Server so, dass er sowohl für externe als auch für interne Verbindungen an die Netzwerkschnittstelle ens4 der VM gebunden ist. Geben Sie einen beliebigen Port für interne Verbindungen an.

  2. Konfigurieren Sie die Firewall Ihrer VPC so, dass TCP-Traffic von der entsprechenden IP-Adresse oder dem entsprechenden Bereich zum konfigurierten Port des SOCKS-Servers zugelassen wird.

  3. Installieren Sie den AlloyDB Auth-Proxy auf dem externen Client.

  4. Führen Sie den AlloyDB Auth Proxy auf Ihrem externen Client aus. Die Umgebungsvariable ALL_PROXY muss auf die IP-Adresse der zwischengeschalteten VM festgelegt sein und Sie müssen den Port angeben, den der SOCKS-Server verwendet.

    In diesem Beispiel wird der AlloyDB Auth-Proxy so konfiguriert, dass er über einen SOCKS-Server, der an 198.51.100.1 auf Port 1080 ausgeführt wird, eine Verbindung zur Datenbank unter my-main-instance herstellt:

    ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \
    /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

    Wenn Sie eine Verbindung von einer Peering-VPC herstellen, können Sie die interne IP-Adresse der intermediären VM verwenden. Andernfalls verwenden Sie deren externe IP-Adresse.

  5. Testen Sie die Verbindung mit psql auf Ihrem externen Client und stellen Sie eine Verbindung zum Port her, auf dem der AlloyDB Auth-Proxy wartet. So stellen Sie beispielsweise eine Verbindung als Nutzer mit der Rolle postgres zum Port 5432 her:

    psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME

Verbindung über einen PostgreSQL-Pooler herstellen

Wenn Sie den AlloyDB Auth-Proxy anstelle eines externen Clients auf der intermediären VM installieren und ausführen müssen, können Sie sichere Verbindungen zu ihm aktivieren, indem Sie ihn mit einem protokollsensitiven Proxy, koppeln, auch als Pooler bekannt. Beliebte Open-Source-Pooler für PostgreSQL sind zum Beispiel Pgpool-II und PgBouncer.

In dieser Lösung führen Sie sowohl den AlloyDB Auth-Proxy als auch den Pooler auf der zwischengeschalteten VM aus. Ihr Client oder Ihre Anwendung kann dann direkt über SSL eine sichere Verbindung zum Pooler herstellen, ohne zusätzliche Dienste ausführen zu müssen. Der Pooler leitet PostgreSQL-Abfragen über den Auth-Proxy an Ihren AlloyDB-Cluster weiter.

Da jede Instanz in einem AlloyDB-Cluster eine separate interne IP-Adresse hat, kann jeder Proxydienst nur mit einer bestimmten Instanz kommunizieren: mit der primären Instanz, der Standby-Instanz oder einem Lesepool. Daher müssen Sie für jede Instanz im Cluster einen separaten Pooler-Dienst mit einem entsprechend konfigurierten SSL-Zertifikat ausführen.

Verbindung über Cloud VPN oder Cloud Interconnect herstellen

Für Produktionsarbeiten, die Hochverfügbarkeit (High Availability, HA) erfordern, empfehlen wir abhängig von den Anforderungen Ihres externen Dienstes und der Netzwerktopologie die Verwendung eines Google Cloud Netzwerkverbindungsprodukts: entweder Cloud VPN oder Cloud Interconnect. Anschließend konfigurieren Sie Cloud Router, um die entsprechenden Routen zu bewerben.

Die Verwendung eines Netzwerkkonnektivitätsprodukts ist zwar aufwendiger als die Einrichtung einer Zwischen-VM, aber bei diesem Ansatz werden die Verfügbarkeit und die Betriebszeit von Ihnen auf Google übertragen. Insbesondere bietet HA VPN ein SLA von 99,99 %, was es für Produktionsumgebungen geeignet macht.

Mit Lösungen für die Netzwerkkonnektivität müssen Sie auch keine separate, sichere VM als Teil Ihrer Anwendung verwalten, wodurch die mit diesem Ansatz verbundenen Risiken eines Single Point of Failure vermieden werden.

Weitere Informationen zu diesen Lösungen finden Sie unter Netzwerkverbindungsprodukt auswählen.

Nächste Schritte