Verbindung zu einer Instanz über Private Service Connect herstellen

Auf dieser Seite wird beschrieben, wie Sie mit Private Service Connect eine Verbindung zu einer AlloyDB for PostgreSQL-Instanz herstellen.

Sie können Private Service Connect verwenden, um eine Verbindung zu einer primären AlloyDB-Instanz oder zu einem der Lesereplikate oder zu einer sekundären AlloyDB-Instanz aus mehreren VPC-Netzwerken (Virtual Private Cloud) herzustellen, die zu verschiedenen Gruppen, Teams, Projekten oder Organisationen gehören.

Erforderliche Rollen

Sie müssen einem Nutzer in Ihrem VPC-Netzwerk alle folgenden Rollen zuweisen, damit er eine Verbindung zu einer AlloyDB-Instanz herstellen kann.

Rolle Beschreibung
compute.networkAdmin Vollständige Kontrolle über das VPC-Netzwerk, das eine Verbindung zu einer AlloyDB-Instanz initiiert. Wenn Sie mit Private Service Connect eine Verbindung zu einer AlloyDB-Instanz von mehreren VPC-Netzwerken aus herstellen, hat jedes Netzwerk einen eigenen Administrator.
dns.admin Vollständige Kontrolle über Cloud DNS-Ressourcen, einschließlich DNS-Zonen und -Einträgen.
alloydb.admin : Gewährt vollständige Kontrolle über eine AlloyDB-Instanz und steuert die Instanz über ihren Lebenszyklus.
alloydb.databaseUser (optional) Gewährt Zugriff auf die AlloyDB-Instanz. Wenn Sie die Verbindung über den AlloyDB Auth-Proxyclient herstellen, benötigen Sie die Rolle AlloyDB-Client. Wenn Sie direkt eine Verbindung herstellen, benötigen Sie keine IAM-Rollen und -Berechtigungen (Identity and Access Management).
Custom AlloyDB role (optional) Wenn Sie eine benutzerdefinierte Rolle verwenden, gewähren Sie zusätzlich zu den Rollen compute.networkAdmin und dns.admin die folgenden Berechtigungen:
  • alloydb.clusters.create: Ermöglicht den Zugriff zum Aktivieren von Private Service Connect für einen Cluster.
  • alloydb.instances.create und alloydb.instances.update: Bietet Zugriff zum Hinzufügen einer Liste zulässiger Projekte und zum Festlegen eines Netzwerk-Anhang-URI für eine Instanz.

Private Service Connect-Endpunkt erstellen

Private Service Connect-Endpunkte sind interne IP-Adressen in einem Nutzer-VPC-Netzwerk, auf die Clients in diesem Netzwerk direkt zugreifen können. Clients können diese Endpunkte verwenden, um eine Verbindung zu AlloyDB-Instanzen herzustellen.

So lassen Sie den Private Service Connect-Endpunkt automatisch von AlloyDB erstellen:

Sie können den Private Service Connect-Endpunkt auch manuell erstellen. Weitere Informationen finden Sie unter Endpunkt manuell erstellen.

Endpunkt automatisch erstellen

In den nächsten Abschnitten wird beschrieben, wie Sie Ihre Instanz so konfigurieren, dass der Private Service Connect-Endpunkt automatisch von AlloyDB erstellt wird.

Richtlinie für Dienstverbindungen erstellen

Sie können eine vorhandene Richtlinie für Dienstverbindungen wiederverwenden oder eine Richtlinie für Dienstverbindungen über die Google Cloud Console oder die Google Cloud CLI erstellen.

Mit einer Richtlinie für Dienstverbindungen können Sie eine bestimmte Dienstklasse autorisieren, einen Private Service Connect-Endpunkt in Ihrem VPC-Netzwerk des Nutzers zu erstellen. Mit der Richtlinie für Dienstverbindungen können Sie AlloyDB Private Service Connect-Endpunkte automatisch erstellen lassen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbindungsrichtlinien.

  3. Klicken Sie auf Verbindungsrichtlinie erstellen.

  4. Geben Sie einen Namen für die Verbindungsrichtlinie ein.

  5. Geben Sie die Dienstklasse so an:

    1. Wählen Sie für Quell-Dienstklasse die Option Google-Dienste aus.
    2. Wählen Sie im Menü Dienstklasse die Option google-cloud-alloydb aus, da AlloyDB der verwaltete Dienst für die Verbindungsrichtlinie ist.
  6. Wählen Sie im Bereich Bereich der Zielendpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.

  7. Wählen Sie im Bereich Richtlinie ein oder mehrere Subnetze aus dem Menü Subnetzwerke aus. Die Subnetze werden verwendet, um Endpunkten IP-Adressen zuzuweisen.

  8. Optional: Geben Sie ein Verbindungslimit für die Richtlinie an. Das Limit bestimmt, wie viele Endpunkte AlloyDB für diese Verbindungsrichtlinie erstellen kann. Wenn Sie kein Verbindungslimit angeben, gibt es kein Limit.

  9. Klicken Sie auf Richtlinie erstellen.

gcloud

Verwenden Sie zum Erstellen einer Richtlinie für Dienstverbindungen den Befehl service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name Ihrer Dienstverbindungsrichtlinie.
  • NETWORK: das Netzwerk, für das diese Richtlinie gilt.
  • PROJECT_ID: die Projekt-ID oder Nummer des Projekts des VPC-Netzwerks. Für freigegebene VPC-Netzwerke müssen Sie Richtlinien für Dienstverbindungen im Hostprojekt bereitstellen, da diese Richtlinien in Dienstprojekten nicht unterstützt werden.
  • REGION: die Region, für die diese Richtlinie gilt. Für jede Region, in der Sie die Dienstverbindung automatisieren möchten, muss dieselbe Richtlinie vorhanden sein.
  • SERVICE_CLASS: vom Ersteller bereitgestellte Ressourcenkennzeichnung der Dienstklasse. Für AlloyDB ist die Dienstklasse google-cloud-alloydb.
  • SUBNETS: ein oder mehrere reguläre Nutzersubnetze, die zum Zuweisen von IP-Adressen für Private Service Connect-Endpunkte verwendet werden. Diese IP-Adressen werden automatisch zugewiesen und an den Pool des Subnetzes zurückgegeben, wenn verwaltete Dienstinstanzen erstellt und gelöscht werden. Die Subnetze müssen sich in derselben Region wie die Richtlinie für Dienstverbindungen befinden. Wenn mehrere Verbindungsrichtlinien dieselbe Region verwenden, können Sie dasselbe Subnetzwerk in diesen Richtlinien wiederverwenden. Sie können mehrere Subnetze in einer durch Kommas getrennten Liste angeben.
  • LIMIT: die maximale Anzahl von Endpunkten, die Sie mit dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es kein Limit.
  • DESCRIPTION ist eine optionale Beschreibung der Richtlinie für Dienstverbindungen
  • PRODUCER_INSTANCE_LOCATION: Gibt an, ob die Richtlinie Verbindungen zu AlloyDB-Instanzen automatisiert. Sie können diesen Wert auf eine der folgenden Optionen festlegen:

    • none (Standard): Die AlloyDB-Instanz befindet sich im selben Projekt wie die Dienstverbindungsrichtlinie (oder im Fall einer freigegebene VPC in verbundenen Projekten).
    • custom-resource-hierarchy-levels: Hier müssen Sie den Resource Manager-Standortpfad für die Projekte festlegen, für die Sie die Verbindung über den Parameter allowed-google-producers-resource-hierarchy-level automatisieren möchten.
  • LIST_OF_NODES: Legen Sie diesen Parameter fest, wenn der Standort Ihrer Producer-Instanz auf custom-resource-hierarchy-levels festgelegt ist. Dieser Parameter ist eine Liste von Projekten, Ordnern und Organisationen, in denen sich die Instanzen befinden, für die Sie die Konnektivität automatisieren möchten. Die Liste hat das Format projects/PROJECT_ID, folders/FOLDER_ID oder organizations/ORGANIZATION_ID.

Mit dem folgenden Befehl wird beispielsweise eine Richtlinie für Dienstverbindungen für die Dienstklasse
google-cloud-alloydb erstellt, die IP-Adressen aus dem Subnetz managed-services zuweist. Mit dieser Richtlinie können maximal 10 Private Service Connect-Endpunkte erstellt werden. Die Endpunkte müssen in Projekten erstellt werden, die sich in derselben Organisation wie die verwaltete Dienstinstanz befinden. Die AlloyDB-Instanz befindet sich im Projekt myproject.

gcloud network-connectivity service-connection-policies create alloydb-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-alloydb \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

AlloyDB-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch erstellt werden. Dazu können Sie die Console, die gcloud CLI oder Terraform verwenden.

Console

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

    Zu den Clustern

  2. Klicken Sie auf Cluster erstellen.

  3. Geben Sie bei Cluster-ID my-cluster ein.

  4. Geben Sie ein Passwort ein. Notieren Sie sich dieses Passwort, da Sie es in dieser Kurzanleitung verwenden.

  5. Behalten Sie die Standarddatenbankversion bei.

  6. Wählen Sie die Region us-central1 (Iowa) aus.

  7. Behalten Sie die Standard-Instanz-ID my-cluster-primary bei.

  8. Lassen Sie unter Zonale Verfügbarkeit die Option Einzelne Zone ausgewählt. Wir empfehlen zwar keine Einzelzoneninstanz für die Produktion, aber in dieser Kurzanleitung verwenden Sie eine einzelne Zone, um die Kosten zu minimieren. Weitere Informationen finden Sie unter Kosten mithilfe von einfachen Instanzen reduzieren.

  9. Wählen Sie den Maschinentyp 2 vCPU, 16 GB aus.

  10. Private IP-Verbindung beibehalten

    1. Wählen Sie Private Service Connect (PSC) aus.
    2. Klicken Sie auf Endpunkt hinzufügen.
    3. Wählen Sie das Projekt aus, in dem Sie den Endpunkt erstellen möchten.
    4. Wählen Sie das Netzwerk aus.
    5. Klicken Sie auf Richtlinie prüfen, um Informationen zur Richtlinie für Dienstverbindungen aufzurufen.
  11. Behalten Sie die Standardeinstellungen unter Netzwerksicherheit bei.

  12. Nehmen Sie keine Änderungen unter Erweiterte Optionen einblenden vor.

  13. Klicken Sie auf Cluster erstellen. Es kann einige Minuten dauern, bis AlloyDB den Cluster erstellt und auf der Seite Übersicht des primären Clusters angezeigt wird.

gcloud

Verwenden Sie den Befehl gcloud alloydb clusters create, um den Cluster zu erstellen.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Ersetzen Sie Folgendes:

  • CLUSTER_ID: die ID des Clusters, den Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.

  • PASSWORD: das Passwort für den Standardnutzer postgres.

  • REGION_ID: Die Region, in der sich der Cluster befinden soll.

  • PROJECT_ID: die ID des Projekts, in dem Sie den Cluster platzieren möchten.

Dieser Befehl initiiert einen Vorgang mit langer Ausführungszeit und gibt eine Vorgangs-ID zurück.

Verwenden Sie den Befehl gcloud alloydb instances create, um die AlloyDB-Instanz zu erstellen, entweder primär oder als Lesepool für die Verwendung von Private Service Connect. Achten Sie darauf, dass Sie den Parameter --allowed-psc-projects einfügen, um anzugeben, in welchen Nutzerprojekten Endpunkte erstellt werden können, um eine Verbindung zu dieser Instanz herzustellen.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
    --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

Ersetzen Sie Folgendes:

  • INSTANCE_ID: die ID der Instanz, die Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • CPU_COUNT: die Anzahl der vCPUs, die Sie für die Instanz benötigen. Gültige Werte sind:
    • 2: 2 vCPUs, 16 GB RAM
    • 4: 4 vCPUs, 32 GB RAM
    • 8: 8 vCPUs, 64 GB RAM
    • 16: 16 vCPUs, 128 GB RAM
    • 32: 32 vCPUs, 256 GB RAM
    • 64: 64 vCPUs, 512 GB RAM
    • 96: 96 vCPUs, 768 GB RAM
    • 128: 128 vCPUs, 864 GB RAM
  • AVAILABILITY: Gibt an, ob diese Instanz hochverfügbar (HA) sein soll, mit Knoten in mehreren Zonen. Gültige Werte sind:
    • REGIONAL: Erstellt eine HA-Instanz mit separaten aktiven und Standby-Knoten und automatischem Failover zwischen ihnen. Dies ist der Standardwert, der für Produktionsumgebungen geeignet ist.
    • ZONAL: erstellt eine einfache Instanz mit nur einem Knoten und ohne automatisches Failover.
  • REGION_ID: die Region, in der sich die Instanz befinden soll.
  • CLUSTER_ID ist die ID des Clusters, den Sie zuvor erstellt haben.
  • ALLOWED_PROJECT_LIST: die durch Kommas getrennte Liste der Projekt-IDs oder Projektnummern, die auf die Instanz zugreifen dürfen, z. B. my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (Optional): Der vollständige Ressourcenname des Netzwerkanhang-URI, den Sie für ausgehende Verbindungen erstellen. Beispiel: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel: projects/my-host-project/global/networks/default Diese Option gilt, wenn Sie Endpunkte automatisch erstellen. Prüfen Sie, ob die Richtlinie für Dienstverbindungen erstellt wurde. Sie können die Richtlinie vor oder nach dem Erstellen der Instanz erstellen.
  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein. Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, der Liste der zulässigen Projekte hinzufügen.

Ein sekundärer Cluster, der für einen primären Cluster mit aktivierter Private Service Connect-Funktion erstellt wurde, übernimmt automatisch die Private Service Connect-Konfiguration. Weitere Informationen finden Sie unter Sekundärcluster erstellen.

Terraform

Verwenden Sie eine Terraform-Ressource, um eine Instanz in Ihrem Datenbankcluster zu erstellen.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
  allowed_consumer_projects = ["123456789"]
  psc_interface_configs {
    network_attachment_resource = google_compute_network_attachment.default.id
  }
  }
}

resource "google_compute_network" "default" {
    name = "alloydb-network"
    auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
    name = "alloydb-subnetwork"
    region = "us-central1"
    network = google_compute_network.default.id
    ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Endpunkt abrufen

Wenn Sie die interne IP-Adresse abrufen, die der Private Service Connect-Endpunkt für eine Instanz ist, können Sie diesen Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.

Verwenden Sie den Befehl gcloud alloydb instances describe, um Informationen zu einer Instanz aufzurufen, einschließlich der IP-Adresse, die der Private Service Connect-Endpunkt für die Instanz ist:

gcloud alloydb instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

Ersetzen Sie die folgenden Werte:

Notieren Sie sich in der Antwort den Wert, der neben dem Feld pscConfig:pscAutoConnections:ipAddress angezeigt wird. Dieser Wert ist die interne IP-Adresse, die auch der Private Service Connect-Endpunkt für die Instanz ist.

Instanz für das automatische Erstellen von Endpunkten aktualisieren

Wenn Sie eine Instanz aktualisieren möchten, um Endpunkte automatisch zu erstellen, übergeben Sie den Parameter --psc-auto-connections an den Befehl gcloud alloydb instances update.

Ausgehende Verbindungen konfigurieren

Wenn Sie ausgehende Verbindungen für Ihre AlloyDB-Instanz mit aktiviertem Private Service Connect aktivieren möchten, müssen Sie den URI des Netzwerkanhangs für die Instanz festlegen. Weitere Informationen finden Sie unter Ausgehende Verbindungen konfigurieren.

Endpunkt manuell erstellen

In den nächsten Abschnitten wird erläutert, wie Sie einen Private Service Connect-Endpunkt manuell erstellen.

AlloyDB-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch erstellt werden. Dazu können Sie die Console, die gcloud CLI oder Terraform verwenden.

Console

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

    Zu den Clustern

  2. Klicken Sie auf Cluster erstellen.

  3. Geben Sie bei Cluster-ID my-cluster ein.

  4. Geben Sie ein Passwort ein. Notieren Sie sich dieses Passwort, da Sie es in dieser Kurzanleitung verwenden.

  5. Behalten Sie die Standarddatenbankversion bei.

  6. Wählen Sie die Region us-central1 (Iowa) aus.

  7. Behalten Sie die Standard-Instanz-ID my-cluster-primary bei.

  8. Lassen Sie unter Zonale Verfügbarkeit die Option Einzelne Zone ausgewählt. Wir empfehlen zwar keine Einzelzoneninstanz für die Produktion, aber in dieser Kurzanleitung verwenden Sie eine einzelne Zone, um die Kosten zu minimieren. Weitere Informationen finden Sie unter Kosten mithilfe von einfachen Instanzen reduzieren.

  9. Wählen Sie den Maschinentyp 2 vCPU, 16 GB aus.

  10. Private IP-Verbindung beibehalten

    1. Wählen Sie Private Service Connect(PSC) aus.
    2. Klicken Sie auf Endpunkt hinzufügen.
    3. Wählen Sie das Projekt aus, in dem Sie den Endpunkt erstellen möchten.
    4. Wählen Sie das Netzwerk aus.
    5. Klicken Sie auf Richtlinie prüfen, um Informationen zur Richtlinie für Dienstverbindungen aufzurufen.
  11. Behalten Sie die Standardeinstellungen unter Netzwerksicherheit bei.

  12. Nehmen Sie keine Änderungen unter Erweiterte Optionen einblenden vor.

  13. Klicken Sie auf Cluster erstellen. Es kann einige Minuten dauern, bis AlloyDB den Cluster erstellt und auf der Seite Übersicht des primären Clusters angezeigt wird.

gcloud

Verwenden Sie den Befehl gcloud alloydb clusters create, um den Cluster zu erstellen.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Ersetzen Sie Folgendes:

  • CLUSTER_ID: die ID des Clusters, den Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.

  • PASSWORD: das Passwort für den Standardnutzer postgres.

  • REGION_ID: Die Region, in der sich der Cluster befinden soll.

  • PROJECT_ID: die ID des Projekts, in dem Sie den Cluster platzieren möchten.

Dieser Befehl initiiert einen Vorgang mit langer Ausführungszeit und gibt eine Vorgangs-ID zurück.

Verwenden Sie den Befehl gcloud alloydb instances create, um die primäre Instanz zu erstellen.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST \
    --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \

Ersetzen Sie Folgendes:

  • INSTANCE_ID: die ID der Instanz, die Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • CPU_COUNT: die Anzahl der vCPUs, die Sie für die Instanz benötigen. Gültige Werte sind:
    • 2: 2 vCPUs, 16 GB RAM
    • 4: 4 vCPUs, 32 GB RAM
    • 8: 8 vCPUs, 64 GB RAM
    • 16: 16 vCPUs, 128 GB RAM
    • 32: 32 vCPUs, 256 GB RAM
    • 64: 64 vCPUs, 512 GB RAM
    • 96: 96 vCPUs, 768 GB RAM
    • 128: 128 vCPUs, 864 GB RAM
  • AVAILABILITY: Gibt an, ob diese Instanz hochverfügbar (HA) sein soll, mit Knoten in mehreren Zonen. Gültige Werte sind:
    • REGIONAL: Erstellt eine HA-Instanz mit separaten aktiven und Standby-Knoten und automatischem Failover zwischen ihnen. Dies ist der Standardwert, der für Produktionsumgebungen geeignet ist.
    • ZONAL: erstellt eine einfache Instanz mit nur einem Knoten und ohne automatisches Failover.
  • REGION_ID: die Region, in der sich die Instanz befinden soll.
  • CLUSTER_ID ist die ID des Clusters, den Sie zuvor erstellt haben.
  • ALLOWED_PROJECT_LIST: die durch Kommas getrennte Liste der Projekt-IDs oder Projektnummer, die auf die Instanz zugreifen dürfen, z. B. my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (Optional): Der vollständige Ressourcenname des Netzwerkanhang-URI, den Sie für ausgehende Verbindungen erstellen. Beispiel: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, aus dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel: projects/my-host-project/global/networks/default Diese Option gilt, wenn Sie Endpunkte automatisch erstellen. Prüfen Sie, ob die Richtlinie für Dienstverbindungen erstellt wurde. Sie können die Richtlinie vor oder nach dem Erstellen der Instanz erstellen.
  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein. Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, der Liste der zulässigen Projekte hinzufügen.

Ein sekundärer Cluster, der für einen primären Cluster mit aktivierter Private Service Connect-Funktion erstellt wurde, übernimmt automatisch die Private Service Connect-Konfiguration. Weitere Informationen finden Sie unter Sekundärcluster erstellen.

Terraform

Verwenden Sie eine Terraform-Ressource, um eine Instanz in Ihrem Datenbankcluster zu erstellen.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"
  machine_config {
    cpu_count = 2
  }
  psc_instance_config {
  allowed_consumer_projects = ["123456789"]
  psc_interface_configs {
    network_attachment_resource = google_compute_network_attachment.default.id
  }
  }
}

resource "google_compute_network" "default" {
    name = "alloydb-network"
    auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
    name = "alloydb-subnetwork"
    region = "us-central1"
    network = google_compute_network.default.id
    ip_cidr_range = "10.0.0.0/16"
}

resource "google_compute_network_attachment" "default" {
  name                  = "alloydb-network-attachment"
  region                = "us-central1"
  connection_preference = "ACCEPT_AUTOMATIC"
  subnetworks = [
    google_compute_subnetwork.default.self_link
  ]
}

data "google_project" "project" {}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Dienstanhang abrufen

Nachdem Sie eine AlloyDB-Instanz mit aktiviertem Private Service Connect erstellt haben, rufen Sie die URL des Dienstanhangs ab und verwenden Sie sie, um den Private Service Connect-Endpunkt zu erstellen.

Verwenden Sie den Befehl gcloud alloydb instances describe, um Details zu einer Instanz aufzurufen.

gcloud alloydb instances describe INSTANCE_ID \
 --cluster=CLUSTER_ID \
 --region=REGION_ID

Ersetzen Sie Folgendes:

  • INSTANCE_ID: Die ID der Instanz
  • CLUSTER_ID: die ID des Clusters.
  • REGION_ID: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.

Eine Beispielantwort für den Befehl sieht so aus:

  "pscInstanceConfig": {
    "serviceAttachmentLink:": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id"
        "allowedConsumerProjects": {
          "45678",
          "12345",
              "67890",
            },
            "pscDnsName": "11111111-1111-1111-1111-111111111111.22222222-2222-2222-2222-222222222222.alloydb-psc.goog."
          }

Der Parameter serviceAttachmentLink enthält den Wert der URL des Dienstanhangs.

Private Service Connect-Endpunkt erstellen

Wenn Sie einen Private Service Connect-Endpunkt erstellen möchten, übergeben Sie die URL des Dienstanhangs zusammen mit einem eindeutigen Endpunktnamen. Weitere Informationen zum Erstellen eines Private Service Connect-Endpunkts finden Sie unter Endpunkt erstellen.

Sie können auch eine interne IP-Adresse für den Private Service Connect-Endpunkt mit dem Befehl gcloud compute addresses create reservieren und dann die reservierte IP-Adresse beim Erstellen des Endpunkts verwenden.

Ausgehende Verbindungen konfigurieren

Um ausgehende Verbindungen zu aktivieren, legen Sie den URI für die Netzwerkverbindung fest, wenn Sie eine AlloyDB-Instanz erstellen oder aktualisieren. Dieser URI ermöglicht eine sichere Verbindung zwischen Ihrem Projekt und der AlloyDB-Instanz bei ausgehenden Vorgängen wie Migrationen.

Netzwerkanhang erstellen

Sie können einen Netzwerkanhang erstellen, der Verbindungen automatisch(ACCEPT_AUTOMATIC) oder manuell (ACCEPT_MANUAL) akzeptieren kann. Weitere Informationen zum Erstellen eines Netzwerkanhangs finden Sie unter Netzwerkanhänge erstellen und verwalten.

Wenn Sie einen Netzwerkanhang erstellen, der Verbindungen automatisch akzeptiert, müssen Sie keine Liste der akzeptierten Projekte explizit festlegen. Wenn Sie Verbindungen manuell akzeptieren möchten, müssen Sie die dienstbezogene Projektnummer des Projekts, in dem sich Ihre AlloyDB-Instanz befindet, der Liste der akzeptierten Projekte hinzufügen.

Führen Sie den folgenden Befehl aus, um die Projektnummer des Dienstes zu ermitteln:

gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID

Hier ist eine Beispielantwort:

pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012

Nachdem Sie die Projektnummer des Dienstes ermittelt haben, fügen Sie das Projekt der Liste der akzeptierten Projekte hinzu und erstellen Sie dann den Netzwerk-Anhang.

Die Region des Netzwerkanhangs muss mit der Region der AlloyDB-Instanz übereinstimmen. Außerdem muss das Subnetz, das zum Erstellen der Netzwerkverbindung verwendet wird, zu den RFC 1918-IP-Bereichen gehören, nämlich 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16.

Instanz für ausgehende Verbindungen aktualisieren

Wenn Sie die ausgehende Verbindung für eine vorhandene AlloyDB-Instanz mit aktiviertem Private Service Connect aktivieren möchten, übergeben Sie den Parameter --psc-network-attachment-uri an den Befehl gcloud alloydb instances update.

AlloyDB-Instanzen, die vor dem 1. März 2025 erstellt wurden, können nicht aktualisiert werden, um ausgehende Verbindungen zu aktivieren. Alternativ empfehlen wir eine der folgenden Optionen:


Ausgehende Verbindungen deaktivieren

Wenn Sie die ausgehende Verbindung für eine vorhandene AlloyDB-Instanz deaktivieren möchten, übergeben Sie den Parameter --clear-psc-network-attachment-uri an den Befehl gcloud alloydb instances update.

Verbindung zu einer AlloyDB-Instanz herstellen

Sie können eine Verbindung zu einer AlloyDB-Instanz, für die Private Service Connect aktiviert ist, mit einer der folgenden Optionen herstellen:

Bei Methoden, für die ein DNS-Eintrag erforderlich ist, müssen Sie den Eintrag in einer privaten DNS-Zone im entsprechenden VPC-Netzwerk erstellen. Nachdem Sie einen DNS-Eintrag erstellt haben, können Sie ihn verwenden, um eine Verbindung zu einer Instanz herzustellen, für die Private Service Connect aktiviert ist.

Verwaltete DNS-Zone und DNS-Eintrag konfigurieren

So konfigurieren Sie eine verwaltete DNS-Zone und einen DNS-Eintrag in Ihrem Netzwerk:

  1. Verwenden Sie den Befehl gcloud alloydb instances describe, um zusammenfassende Informationen zu einer AlloyDB-Instanz einschließlich des DNS-Namens der Instanz aufzurufen:

    gcloud alloydb instances describe INSTANCE_ID \
    --cluster=CLUSTER_ID --region=REGION_ID

    Ersetzen Sie Folgendes:

    • INSTANCE_ID: Die ID der Instanz.
    • CLUSTER_ID: Die ID des Clusters.

    Prüfen Sie in der Antwort, ob der DNS-Name angezeigt wird. Der DNS-Name entspricht dem Muster INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..

  2. Verwenden Sie zum Erstellen einer privaten DNS-Zone den Befehl gcloud dns managed-zones create. Diese Zone ist dem VPC-Netzwerk zugeordnet, das für die Verbindung mit der AlloyDB-Instanz über den Private Service Connect-Endpunkt verwendet wird.

    gcloud dns managed-zones create ZONE_NAME \
    --project=PROJECT_ID \
    --description=DESCRIPTION \
    --dns-name=DNS_NAME \
    --networks=NETWORK_NAME \
    --visibility=private

    Ersetzen Sie Folgendes:

    • ZONE_NAME: der Name der DNS-Zone.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das die Zone enthält.
    • DESCRIPTION durch eine Beschreibung der Zone (z. B. eine DNS-Zone für die AlloyDB-Instanz).
    • DNS_NAME: der DNS-Name für die Zone, z. B. INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..
    • NETWORK_NAME: der Name des VPC-Netzwerks. Bei einem freigegebene VPC-Netzwerk muss der vollständig qualifizierte Pfad des VPC-Netzwerks angegeben werden, z. B. projects/cymbal-project/global/networks/shared-vpc-network.
  3. Nachdem Sie den Private Service Connect-Endpunkt erstellt haben, verwenden Sie den Befehl gcloud dns record-sets create, um einen DNS-Eintrag in der Zone zu erstellen:

    gcloud dns record-sets create DNS_NAME \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    Ersetzen Sie Folgendes:

    • DNS_NAME: der DNS-Name, den Sie zuvor in dieser Prozedur abgerufen haben.
    • RRSET_TYPE: Der Ressourceneintragstyp des DNS-Eintragssatzes (z. B. A).
    • RR_DATA: die IP-Adresse, die dem Private Service Connect-Endpunkt zugewiesen ist (z. B. 198.51.100.5). Sie können auch mehrere Werte eingeben, z. B. rrdata1 rrdata2 rrdata3 (z. B. 10.1.2.3 10.2.3.4 10.3.4.5).

Verbindung direkt über einen DNS-Eintrag herstellen

Nachdem Sie einen Private Service Connect-Endpunkt und einen DNS-Eintrag erstellt haben, können Sie direkt über den DNS-Eintrag eine Verbindung herstellen.

  1. Verwenden Sie den Befehl gcloud compute addresses describe, um den DNS-Eintrag des Private Service Connect-Endpunkts abzurufen:

    gcloud compute addresses describe DNS_RECORD \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Ersetzen Sie Folgendes:

    • DNS_RECORD: der DNS-Eintrag für den Endpunkt.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das den Endpunkt enthält.
    • REGION_NAME: der Name der Region für den Endpunkt.
  2. Verwenden Sie den DNS-Eintrag, um eine Verbindung zur AlloyDB-Instanz herzustellen.

    psql -U USERNAME -h DNS_RECORD

    Ersetzen Sie Folgendes:

    • USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.
    • DNS_RECORD: der DNS-Eintrag des Endpunkts.

Verbindung über den AlloyDB Auth-Proxy herstellen

Der AlloyDB Auth-Proxy ist ein Connector, mit dem Sie autorisierte, verschlüsselte Verbindungen zu AlloyDB-Datenbanken herstellen können. Der AlloyDB Auth-Proxy hat einen lokalen Client, der in der lokalen Umgebung ausgeführt wird. Ihre Anwendung kommuniziert mit dem AlloyDB Auth-Proxy über das Standarddatenbankprotokoll, das von Ihrer Datenbank verwendet wird.

Wenn Sie das Flag --psc beim Starten des Auth-Proxy-Clients festlegen, verwendet der AlloyDB Auth-Proxy den von Ihnen erstellten DNS-Eintrag, um eine Verbindung zur Instanz mit aktiviertem Private Service Connect herzustellen.

Achten Sie darauf, dass Sie den Auth-Proxy-Client starten, indem Sie den Instanz-URI übergeben, den Sie mit dem Befehl gcloud alloydb instances list abrufen, und das Flag --psc festlegen.

Weitere Informationen zum Herstellen einer Verbindung zu einer Instanz mit dem Auth-Proxy finden Sie unter Verbindung mit dem Auth-Proxy herstellen.

Verbindung über AlloyDB Language Connectors herstellen

AlloyDB Language Connectors sind Bibliotheken, die für das Herstellen einer Verbindung zu einer AlloyDB-Instanz eine automatische gegenseitige TLS-Authentifizierung (mTLS) mit TLS 1.3 sowie eine Autorisierung über die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) ermöglichen.

Nachdem der Language Connector festgestellt hat, dass die Instanz Private Service Connect unterstützt, wird der von Ihnen erstellte DNS-Eintrag verwendet, um eine Verbindung zur Instanz herzustellen.

Java

Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:

config.addDataSourceProperty("alloydbIpType", "PSC");

Weitere Informationen zur Verwendung von Private Service Connect-Endpunkten in Java Language Connectors finden Sie im GitHub-Repository.

Python (pg8000)

Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:

  def getconn() -> pg8000.dbapi.Connection:
      conn: pg8000.dbapi.Connection = connector.connect(
          inst_uri,
          "pg8000",
          user=user,
          password=password,
          db=db,
          # use ip_type to specify PSC
          ip_type=IPTypes.PSC,
      )
      return conn

Weitere Informationen zur Verwendung von Private Service Connect-Endpunkten in Python Language Connectors finden Sie im GitHub-Repository.

Python (asyncpg)

Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:

  async def getconn() -> asyncpg.Connection:
    conn: asyncpg.Connection = await connector.connect(
        inst_uri,
        "asyncpg",
        user=user,
        password=password,
        db=db,
        # use ip_type to specify PSC
        ip_type=IPTypes.PSC,
    )
    return conn

Weitere Informationen zur Verwendung von Private Service Connect-Endpunkten in Python Language Connectors finden Sie im GitHub-Repository.

Go (pgx)

Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:

d.Dial(ctx, instURI, alloydbconn.WithPSC())

Weitere Informationen zur Verwendung von Private Service Connect-Endpunkten in Go Language Connectors finden Sie im GitHub-Repository.

Go (database/sql)

Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:

  cleanup, err := pgxv5.RegisterDriver(
    "alloydb",
    alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)

Weitere Informationen zur Verwendung von Private Service Connect-Endpunkten in Go Language Connectors finden Sie im GitHub-Repository.

Direkte Verbindung über eine interne IP-Adresse

Nachdem Sie einen Private Service Connect-Endpunkt erstellt haben, können Sie direkt über die von Ihnen konfigurierte IP-Adresse eine Verbindung zu einer AlloyDB-Instanz herstellen.

  1. Verwenden Sie den Befehl gcloud compute addresses describe, um die IP-Adresse des Private Service Connect-Endpunkts abzurufen:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Ersetzen Sie Folgendes:

    • ADDRESS_NAME: der Name der IP-Adresse des Endpunkts.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das den Endpunkt enthält.
    • REGION_NAME: der Name der Region für den Endpunkt.
  2. Verwenden Sie die interne IP-Adresse, um eine Verbindung zur AlloyDB-Instanz herzustellen.

    psql -U USERNAME -h IP_ADDRESS"

    Ersetzen Sie Folgendes:

    • USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.
    • IP_ADDRESS: die IP-Adresse des Endpunkts.

Beschränkungen

  • Sie können bis zu 20 Private Service Connect-Endpunkte einrichten, die eine Verbindung zum Dienstanhang einer AlloyDB-Instanz herstellen, auf der Private Service Connect aktiviert ist.
  • Sie können das Flag --network nicht verwenden, wenn Sie einen Cluster mit aktiviertem Private Service Connect erstellen, da es dem Zugriff auf private Dienste zugeordnet ist.
  • Sie können Private Service Connect nicht auf einer vorhandenen Instanz aktivieren oder deaktivieren.
  • Sie können eine Instanz, für die Private Service Connect aktiviert ist, nicht für die Verwendung des Zugriffs auf private Dienste konfigurieren.