Wenn Sie eine Verbindung zu einer primären, Lesepool- oder sekundären AlloyDB for PostgreSQL-Instanz aus mehreren VPC-Netzwerken (Virtual Private Cloud) herstellen möchten, die zu verschiedenen Gruppen, Teams, Projekten oder Organisationen gehören, ohne VPC-Netzwerk-Peering zu konfigurieren, können Sie Private Service Connect konfigurieren.
Erforderliche Rollen
Je nachdem, ob Sie die Private Service Connect-Infrastruktur konfigurieren oder eine Verbindung als Datenbankclient herstellen, weisen Sie die entsprechenden IAM-Rollen (Identity and Access Management) zu:
| Aufgabe | Rolle | Beschreibung |
|---|---|---|
| Private Service Connect-Endpunkte und -Netzwerkanhänge konfigurieren | Compute-Netzwerkadminstrator (roles/compute.networkAdmin) |
Vollständige Kontrolle über das Nutzer-VPC-Netzwerk, das eine Verbindung zu einer AlloyDB-Instanz initiiert. Wenn Sie eine Verbindung von mehreren VPC-Netzwerken herstellen, wird jedes Netzwerk von einem eigenen Administrator verwaltet. |
| Private DNS-Zonen und -Einträge konfigurieren | DNS-Administrator (roles/dns.admin) |
Vollständige Kontrolle über Cloud DNS-Ressourcen, einschließlich privater DNS-Zonen und Datensätze. |
| AlloyDB-Cluster und -Instanzen erstellen und verwalten | AlloyDB Admin (roles/alloydb.admin) |
Gewährt vollständige Kontrolle über AlloyDB-Cluster und -Instanzen während ihres Lebenszyklus. Wenn Sie stattdessen eine benutzerdefinierte Rolle verwenden, weisen Sie alloydb.clusters.create (zum Aktivieren von Private Service Connect in einem Cluster) sowie alloydb.instances.create und alloydb.instances.update (zum Konfigurieren zulässiger Nutzerprojekte und URIs für Netzwerkanhänge) zu. |
| Als Client eine Verbindung zu einer Instanz herstellen | AlloyDB-Client (roles/alloydb.client) und Service Usage-Nutzer (roles/serviceusage.serviceUsageConsumer) (optional) |
Erforderlich, wenn Sie eine Verbindung über den AlloyDB Auth-Proxy oder AlloyDB Language Connectors herstellen. Wenn Sie auch die IAM-Datenbankauthentifizierung verwenden, weisen Sie die Rolle „AlloyDB Database User“ (roles/alloydb.databaseUser) zu. Wenn Sie eine direkte Verbindung über die integrierte Datenbankauthentifizierung herstellen, sind für die Clientverbindung keine IAM-Rollen erforderlich. |
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, um eine Verbindung zu AlloyDB-Instanzen herzustellen.
So lassen Sie AlloyDB den Private Service Connect-Endpunkt automatisch erstellen:
- Verwenden Sie eine vorhandene Dienstverbindungsrichtlinie wieder oder erstellen Sie eine Dienstverbindungsrichtlinie in Ihren VPC-Netzwerken. Mit dieser Richtlinie können Sie Private Service Connect-Endpunkte automatisch bereitstellen.
- Erstellen Sie einen AlloyDB-Cluster und eine AlloyDB-Instanz, wobei Private Service Connect für die Instanz aktiviert ist, und konfigurieren Sie die Instanz so, dass Private Service Connect-Endpunkte automatisch erstellt werden.
- Rufen Sie den Endpunkt für die Instanz ab. So können Sie den Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.
- Optional: Aktualisieren Sie einen vorhandenen AlloyDB-Cluster und eine vorhandene AlloyDB-Instanz mit aktiviertem Private Service Connect, um Endpunkte automatisch zu generieren.
Sie können den Private Service Connect-Endpunkt auch manuell erstellen.
Endpunkt automatisch erstellen
So konfigurieren Sie Ihre Instanz, damit AlloyDB den Private Service Connect-Endpunkt automatisch erstellt:
- Richtlinie für Dienstverbindungen erstellen
- AlloyDB-Instanz erstellen
- Endpunkt abrufen
- Instanz für das automatische Erstellen von Endpunkten aktualisieren
- Ausgehende Verbindungen konfigurieren
Richtlinie für Dienstverbindungen erstellen
Sie können eine vorhandene Richtlinie für Dienstverbindungen wiederverwenden oder eine neue 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 angegebene Dienstklasse zum Erstellen eines Private Service Connect-Endpunkts in Ihrem Nutzer-VPC-Netzwerk autorisieren. Sie können die Richtlinie für Dienstverbindungen verwenden, damit AlloyDB automatisch Private Service Connect-Endpunkte erstellt.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbindungsrichtlinien.
Klicken Sie auf Verbindungsrichtlinie erstellen.
Geben Sie einen Namen für die Verbindungsrichtlinie ein.
Wählen Sie im Abschnitt Dienstdetails für Dienstklasse die Option
google-cloud-alloydbaus.Wählen Sie im Bereich Bereich der Endpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.
Wählen Sie im Bereich Endpunktkonfiguration ein oder mehrere Subnetze aus dem Menü Subnetzwerke aus. Die Subnetze werden verwendet, um Endpunkten IP-Adressen zuzuweisen.
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.
Klicken Sie auf Richtlinie erstellen.
gcloud
Verwenden Sie den Befehl service-connection-policies create, um eine Richtlinie für Dienstverbindungen zu erstellen.
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, auf das diese Richtlinie angewendet werden soll.PROJECT_ID: die Projekt-ID oder Nummer des Projekts des VPC-Netzwerks. Für gemeinsam genutzte VPC-Netzwerke müssen Sie Richtlinien für Dienstverbindungen im Hostprojekt bereitstellen, da diese Richtlinien in Dienstprojekten nicht unterstützt werden.REGION: die Region, auf die diese Richtlinie angewendet wird. 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 Dienstklassegoogle-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.DESCRIPTIONist eine optionale Beschreibung der Richtlinie für DienstverbindungenPRODUCER_INSTANCE_LOCATION: Gibt an, ob die Richtlinie Verbindungen zu AlloyDB-Instanzen automatisiert. Sie können diesen Wert auf einen der folgenden Werte festlegen:none(Standard): Die AlloyDB-Instanz befindet sich im selben Projekt wie die Richtlinie für Dienstverbindungen. Wenn sich die AlloyDB-Instanz in einer freigegebene VPC-Umgebung in einem Dienstprojekt befindet und Sie die Verbindungsrichtlinie im Hostprojekt erstellen, müssen Sie diesen Parameter aufcustom-resource-hierarchy-levelssetzen.custom-resource-hierarchy-levels: Erfordert, dass Sie den Resource Manager-Standortpfad für die Projekte festlegen, für die Sie die Konnektivität über den Parameterallowed-google-producers-resource-hierarchy-levelautomatisieren möchten.
LIST_OF_NODES: Legen Sie diesen Parameter fest, wenn der Standort Ihrer Erstellerinstanz aufcustom-resource-hierarchy-levelsfestgelegt 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 Formatprojects/PROJECT_ID,folders/FOLDER_IDoderorganizations/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-service-subnet 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 erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch über die Google Cloud Console, die gcloud CLI oder Terraform erstellt werden.
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf Cluster erstellen.
Geben Sie unter Cluster-ID
my-clusterein.Geben Sie ein Passwort ein. Notieren Sie sich dieses Passwort, da Sie es in dieser Kurzanleitung verwenden.
Behalten Sie die Standarddatenbankversion bei.
Wählen Sie die Region
us-central1 (Iowa)aus.Behalten Sie die Standard-Instanz-ID
my-cluster-primarybei.Behalten Sie unter Zonale Verfügbarkeit die Option Einzelne Zone bei. Wir empfehlen zwar keine Instanz mit einer einzelnen Zone für die Produktion, aber in dieser Kurzanleitung verwenden Sie eine einzelne Zone, um die Kosten zu minimieren. Weitere Informationen finden Sie unter Kosten mit einfachen Instanzen reduzieren.
Wählen Sie den Maschinentyp
2 vCPU, 16 GBaus.Private IP-Verbindung beibehalten.
- Wählen Sie Private Service Connect (PSC) aus.
- Klicken Sie auf Endpunkt hinzufügen.
- Wählen Sie das Projekt aus, in dem Sie den Endpunkt erstellen möchten.
- Wählen Sie das Netzwerk aus.
- Klicken Sie auf Richtlinie prüfen, um Informationen zur Richtlinie für Dienstverbindungen aufzurufen.
Behalten Sie die Standardeinstellungen unter Netzwerksicherheit bei.
Nehmen Sie keine Änderungen unter Erweiterte Optionen einblenden vor.
Klicken Sie auf Cluster erstellen. Es kann einige Minuten dauern, bis AlloyDB den Cluster erstellt und auf der Übersichtsseite des primären Clusters anzeigt.
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-connectErsetzen 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 Standardnutzerpostgres.REGION_ID: die Region, in der sich der Cluster befindet.PROJECT_ID: die ID des Projekts, in dem sich der Cluster befindet.
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 eine primäre Instanz oder einen Lesepool für die Verwendung von Private Service Connect. Fügen Sie den Parameter --allowed-psc-projects hinzu, um anzugeben, welche Nutzerprojekte Endpunkte erstellen 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_PROJECTErsetzen 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 RAM4: 4 vCPUs, 32 GB RAM8: 8 vCPUs, 64 GB RAM16: 16 vCPUs, 128 GB RAM32: 32 vCPUs, 256 GB RAM64: 64 vCPUs, 512 GB RAM96: 96 vCPUs, 768 GB RAM128: 128 vCPUs, 864 GB RAM
AVAILABILITY: Gibt an, ob diese Instanz hochverfügbar sein soll, mit Knoten in mehreren Zonen. Gültige Werte sind:REGIONAL: Erstellt eine HA-Instanz mit separaten aktiven und Stand-by-Knoten und automatischem Failover zwischen ihnen. Dies ist der Standardwert, der für Produktionsumgebungen geeignet ist.ZONAL: Erstellt eine einfache Instanz, die nur einen Knoten und kein automatisches Failover enthält.
REGION_ID: die Region, in der sich die Instanz befindet.CLUSTER_ID: die ID des Clusters, den Sie zuvor erstellt haben.ALLOWED_PROJECT_LIST: die durch Kommas getrennte Liste der Projekt-IDs oder Projektnummern, denen Sie Zugriff auf die Instanz gewähren möchten, 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. Beispiel:projects/my-host-project/global/networks/defaultDiese 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 alle 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 aktiviertem Private Service Connect erstellt wurde, übernimmt automatisch die Private Service Connect-Konfiguration. Weitere Informationen finden Sie unter Sekundären Cluster erstellen.
Terraform
Verwenden Sie die Terraform-Ressourcen google_alloydb_cluster und google_alloydb_instance, um einen AlloyDB-Cluster und eine AlloyDB-Instanz mit aktiviertem Private Service Connect zu erstellen:
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
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 = [data.google_project.project.number]
psc_auto_connections {
consumer_network = google_compute_network.default.id
consumer_project = data.google_project.project.project_id
}
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 \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig.pscAutoConnections)'
Ersetzen Sie Folgendes:
- INSTANCE_NAME: Der Name der AlloyDB-Instanz. Wenn für diese Instanz Private Service Connect aktiviert ist, können Private Service Connect-Endpunkte in VPC-Netzwerken eine Verbindung zu ihr herstellen.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
- CLUSTER_ID: die ID des Clusters.
- REGION_ID: die Region, in der sich die Instanz befindet.
Notieren Sie sich in der Antwort den Wert, der neben dem Feld pscInstanceConfig.pscAutoConnections.ipAddress angezeigt wird. Dieser Wert ist die interne IP-Adresse, die auch der Private Service Connect-Endpunkt für die Instanz ist.
Instanz zum automatischen Erstellen von Endpunkten aktualisieren
Verwenden Sie den Befehl gcloud alloydb instances update mit dem Parameter --psc-auto-connections, um eine Instanz so zu aktualisieren, dass Endpunkte automatisch erstellt werden:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECTErsetzen Sie Folgendes:
INSTANCE_ID: die ID der Instanz, die Sie aktualisieren.CLUSTER_ID: die ID des Clusters.REGION_ID: die Region, in der sich die Instanz befindet.PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden, z. B.projects/my-host-project/global/networks/default.CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird.
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 folgenden 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 über die Google Cloud Console, die gcloud CLI oder Terraform erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf Cluster erstellen.
Geben Sie unter Cluster-ID
my-clusterein.Geben Sie ein Passwort ein. Notieren Sie sich dieses Passwort, da Sie es in dieser Kurzanleitung verwenden.
Behalten Sie die Standarddatenbankversion bei.
Wählen Sie die Region
us-central1 (Iowa)aus.Behalten Sie die Standard-Instanz-ID
my-cluster-primarybei.Behalten Sie unter Zonale Verfügbarkeit die Option Einzelne Zone bei. Wir empfehlen zwar keine Instanz mit einer einzelnen Zone für die Produktion, aber in dieser Kurzanleitung verwenden Sie eine einzelne Zone, um die Kosten zu minimieren. Weitere Informationen finden Sie unter Kosten mit einfachen Instanzen reduzieren.
Wählen Sie den Maschinentyp
2 vCPU, 16 GBaus.Behalten Sie die private IP-Verbindung bei und wählen Sie Private Service Connect (PSC) aus.
Geben Sie unter Zulässige Nutzerprojekte die Projekt-IDs oder Projektnummern ein, die Sie mit der Instanz verbinden möchten.
Behalten Sie die Standardeinstellungen unter Netzwerksicherheit bei.
Nehmen Sie keine Änderungen unter Erweiterte Optionen einblenden vor.
Klicken Sie auf Cluster erstellen. Es kann einige Minuten dauern, bis AlloyDB den Cluster erstellt und auf der Übersichtsseite des primären Clusters anzeigt.
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-connectErsetzen 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 Standardnutzerpostgres.REGION_ID: die Region, in der sich der Cluster befindet.PROJECT_ID: die ID des Projekts, in dem sich der Cluster befindet.
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_URIErsetzen 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 RAM4: 4 vCPUs, 32 GB RAM8: 8 vCPUs, 64 GB RAM16: 16 vCPUs, 128 GB RAM32: 32 vCPUs, 256 GB RAM64: 64 vCPUs, 512 GB RAM96: 96 vCPUs, 768 GB RAM128: 128 vCPUs, 864 GB RAM
AVAILABILITY: Gibt an, ob diese Instanz hochverfügbar sein soll, mit Knoten in mehreren Zonen. Gültige Werte sind:REGIONAL: Erstellt eine HA-Instanz mit separaten aktiven und Stand-by-Knoten und automatischem Failover zwischen ihnen. Dies ist der Standardwert, der für Produktionsumgebungen geeignet ist.ZONAL: Erstellt eine einfache Instanz, die nur einen Knoten und kein automatisches Failover enthält.
REGION_ID: die Region, in der sich die Instanz befindet.CLUSTER_ID: die ID des Clusters, den Sie zuvor erstellt haben.ALLOWED_PROJECT_LIST: die durch Kommas getrennte Liste der Projekt-IDs oder Projektnummern, denen Sie Zugriff auf die Instanz gewähren möchten, 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.
Ein sekundärer Cluster, der für einen primären Cluster mit aktiviertem Private Service Connect erstellt wurde, übernimmt automatisch die Private Service Connect-Konfiguration. Weitere Informationen finden Sie unter Sekundären Cluster erstellen.
Terraform
Verwenden Sie die Terraform-Ressourcen google_alloydb_cluster und google_alloydb_instance, um einen AlloyDB-Cluster und eine AlloyDB-Instanz mit aktiviertem Private Service Connect zu erstellen:
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
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 = [data.google_project.project.number]
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_IDErsetzen 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.
Hier eine Beispielantwort für den Befehl:
{
"pscInstanceConfig": {
"serviceAttachmentLink": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id",
"allowedConsumerProjects": [
"45678",
"12345",
"67890"
],
"pscDnsName": "015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.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 oder die interne IP-Adresse und die Weiterleitungsregel mit Terraform bereitstellen:
resource "google_compute_address" "psc_endpoint_ip" {
name = "alloydb-psc-endpoint-ip"
region = "us-central1"
subnetwork = google_compute_subnetwork.default.id
address_type = "INTERNAL"
}
resource "google_compute_forwarding_rule" "psc_endpoint" {
name = "alloydb-psc-endpoint"
region = "us-central1"
network = google_compute_network.default.id
ip_address = google_compute_address.psc_endpoint_ip.self_link
load_balancing_scheme = ""
target = google_alloydb_instance.default.psc_instance_config[0].service_attachment_link
}
Ausgehende Verbindungen konfigurieren
Wenn Sie ausgehende Verbindungen aktivieren möchten, legen Sie den URI des Netzwerkanhangs 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) akzeptiert. 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 dienstspezifische 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 Nummer des dienstspezifischen Projekts zu ermitteln:
gcloud alloydb clusters describe CLUSTER_ID --region=REGION_IDHier ist eine Beispielantwort:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Nachdem Sie die Nummer des dienstspezifischen Projekts ermittelt haben, fügen Sie das Projekt der Liste der akzeptierten Projekte hinzu und erstellen dann den Netzwerkanhang.
Die Region des Netzwerkanhangs muss mit der Region der AlloyDB-Instanz übereinstimmen. Außerdem muss das Subnetz, das zum Erstellen des Netzwerkanhangs verwendet wird, zu den RFC 1918-IP-Bereichen gehören, d. h. 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16.
Instanz für ausgehende Verbindungen aktualisieren
Wenn Sie ausgehende Verbindungen für eine vorhandene AlloyDB-Instanz mit aktiviertem Private Service Connect aktivieren möchten, verwenden Sie den Befehl gcloud alloydb instances update mit dem Parameter --psc-network-attachment-uri:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URIErsetzen Sie Folgendes:
INSTANCE_ID: die ID der Instanz.CLUSTER_ID: die ID des Clusters.REGION_ID: die Region, in der sich die Instanz befindet.PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.NETWORK_ATTACHMENT_URI: der vollständige Ressourcenname des Netzwerk-Anhang-URI, den Sie für ausgehende Verbindungen erstellen, z. B.projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
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:
- Erstellen Sie ein regionales Replikat für die regionenübergreifende Replikation (Cross-Region Replication, CRR) Ihrer primären Instanz mit aktivierter ausgehender Verbindung. Führen Sie dann einen Switchover durch, um die Replikatinstanz als neue primäre Instanz festzulegen.
- Erstellen Sie eine Sicherung Ihres vorhandenen AlloyDB-Clusters und der primären Instanz. Erstellen Sie dann einen neuen AlloyDB-Cluster und eine primäre Instanz mit aktivierter ausgehender Verbindung. Stellen Sie schließlich die zuvor erstellte Sicherung im neuen Cluster wieder her.
Ausgehende Verbindungen deaktivieren
Verwenden Sie den Befehl gcloud alloydb instances update mit dem Parameter --clear-psc-network-attachment-uri, um ausgehende Verbindungen für eine vorhandene AlloyDB-Instanz zu deaktivieren:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--clear-psc-network-attachment-uriErsetzen Sie Folgendes:
INSTANCE_ID: die ID der Instanz.CLUSTER_ID: die ID des Clusters.REGION_ID: die Region, in der sich die Instanz befindet.PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
Verbindung zu einer AlloyDB-Instanz herstellen
Sie können eine Verbindung zu einer AlloyDB-Instanz mit aktiviertem Private Service Connect herstellen, indem Sie eine der folgenden Optionen verwenden:
- Verbindung direkt über einen DNS-Eintrag herstellen
- AlloyDB Auth-Proxy mit einem DNS-Eintrag verwenden
- AlloyDB Language Connectors mit einem DNS-Eintrag verwenden
- Direkte Verbindung über eine interne IP-Adresse herstellen
pscDnsName der Instanz der internen IP-Adresse des Private Service Connect-Endpunkts zuordnet, wenn Sie eine Verbindung über den AlloyDB Auth-Proxy oder die AlloyDB Language Connectors herstellen.Bei Methoden, die einen DNS-Eintrag verwenden, müssen Sie den Eintrag in einer privaten DNS-Zone im entsprechenden Nutzer-VPC-Netzwerk erstellen. Der von der AlloyDB API zurückgegebene pscDnsName ist ein vorab generierter Hostname-String und wird erst aufgelöst, wenn Sie eine private DNS-Zone und einen A-Eintrag in Ihrem Nutzer-VPC-Netzwerk erstellen.
Verwaltete DNS-Zone und DNS-Eintrag konfigurieren
So konfigurieren Sie eine verwaltete DNS-Zone und einen DNS-Eintrag in Ihrem Nutzernetzwerk:
gcloud
Verwenden Sie den Befehl
gcloud alloydb instances describe, um zusammenfassende Informationen zu einer AlloyDB-Instanz aufzurufen, einschließlich des vorab generiertenpscDnsNameder Instanz:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig)'Ersetzen Sie Folgendes:
INSTANCE_ID: die ID der Instanz.CLUSTER_ID: die ID des Clusters.REGION_ID: die Region, in der sich die Instanz befindet.
Prüfen Sie in der Antwort, ob das Feld
pscDnsNameangezeigt wird. Der DNS-Name hat das MusterINSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog., z. B.015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog..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=privateErsetzen 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: eine Beschreibung der Zone (z. B.DNS zone for the AlloyDB instance).DNS_NAME: der DNS-Name für die Zone, z. B.INSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog.(oder die übergeordnete Domainalloydb-psc.goog.).NETWORK_NAME: der Name des Nutzer-VPC-Netzwerk. Legen Sie für ein freigegebene VPC-Netzwerk den vollständig qualifizierten Pfad des VPC-Netzwerks fest, z. B.projects/cymbal-project/global/networks/shared-vpc-network.
Nachdem Sie den Private Service Connect-Endpunkt erstellt haben, erstellen Sie mit dem Befehl
gcloud dns record-sets createeinen DNS-A-Eintrag in der Zone:gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAMEErsetzen Sie Folgendes:
DNS_NAME: diepscDnsName, die Sie zuvor in diesem Verfahren abgerufen haben.RRSET_TYPE: der Ressourceneintragstyp des DNS-Eintragssatzes (A).RR_DATA: die interne IP-Adresse, die dem Private Service Connect-Endpunkt zugewiesen ist (z. B.198.51.100.5).
Terraform
Verwenden Sie die Terraform-Ressourcen google_dns_managed_zone und google_dns_record_set, um eine private Cloud DNS-Zone und einen A-Eintrag zu erstellen, der den pscDnsName der Instanz der internen IP-Adresse des Private Service Connect-Endpunkts zuordnet:
resource "google_dns_managed_zone" "psc_dns_zone" {
name = "alloydb-psc-zone"
dns_name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
description = "Private DNS zone for AlloyDB PSC endpoint"
visibility = "private"
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "psc_dns_record" {
name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.psc_dns_zone.name
rrdatas = [google_compute_address.psc_endpoint_ip.address]
}
Verbindung direkt über einen DNS-Eintrag herstellen
Nachdem Sie einen Private Service Connect-Endpunkt erstellt und einen privaten DNS-A-Eintrag für die pscDnsName der Instanz konfiguriert haben, können Sie über den DNS-Namen (ohne den Punkt am Ende) direkt von einem Client im Nutzer-VPC-Netzwerk eine Verbindung herstellen:
psql -U USERNAME -h DNS_NAME -d DATABASE_NAMEErsetzen Sie Folgendes:
USERNAME: Der Name des Datenbanknutzers, der eine Verbindung zur Instanz herstellt.DNS_NAME: der Name des DNS-Eintrags (z. B. derpscDnsNameder Instanz ohne den abschließenden Punkt), der in den Private Service Connect-Endpunkt aufgelöst wird.DATABASE_NAME: der Name der Datenbank, zu der eine Verbindung hergestellt werden soll (z. B.postgres).
Verbindung mit dem 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 beim Starten des Auth-Proxy-Clients das Flag --psc festlegen, löst der AlloyDB Auth-Proxy den pscDnsName der Instanz mithilfe des privaten DNS-Eintrags auf, den Sie erstellt haben, um eine Verbindung zur Instanz mit aktiviertem Private Service Connect herzustellen.
Starten Sie den Auth-Proxy-Client, indem Sie den Instanz-URI übergeben, den Sie mit dem Befehl gcloud alloydb instances describe abrufen, und legen Sie das Flag --psc fest.
Weitere Informationen zum Herstellen einer Verbindung zu einer Instanz über den Auth-Proxy finden Sie unter Verbindung mit dem AlloyDB Auth-Proxy herstellen.
Verbindung über die AlloyDB Language Connectors herstellen
AlloyDB Language Connectors sind Bibliotheken, die für das Herstellen einer Verbindung zu einer AlloyDB-Instanz automatisiertes mTLS mit TLS 1.3 und IAM-Autorisierung ermöglichen.
Nachdem der Language Connector für Private Service Connect konfiguriert wurde, wird der pscDnsName der Instanz mithilfe des privaten DNS-Eintrags aufgelöst, den Sie für die Verbindung mit der Instanz erstellt haben.
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 eines Private Service Connect-Endpunkts im AlloyDB-Java-Connector 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 eines Private Service Connect-Endpunkts im AlloyDB Python Connector 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 eines Private Service Connect-Endpunkts im AlloyDB Python-Connector 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 eines Private Service Connect-Endpunkts im AlloyDB Go-Connector 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 := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
)
Weitere Informationen zur Verwendung eines Private Service Connect-Endpunkts im AlloyDB Go-Connector finden Sie im GitHub-Repository.
Direkte Verbindung über eine interne IP-Adresse
Nachdem Sie einen Private Service Connect-Endpunkt erstellt haben, können Sie über die interne IP-Adresse des Endpunkts direkt eine Verbindung zu einer AlloyDB-Instanz herstellen, ohne einen DNS-Eintrag konfigurieren zu müssen.
Verwenden Sie den Befehl
gcloud compute addresses describe, um die IP-Adresse eines manuell erstellten Private Service Connect-Endpunkts abzurufen:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAMEErsetzen Sie Folgendes:
ADDRESS_NAME: der Name der reservierten IP-Adressressource 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.
Verwenden Sie die interne IP-Adresse, um eine Verbindung zur AlloyDB-Instanz herzustellen:
psql -U USERNAME -h IP_ADDRESSErsetzen Sie Folgendes:
USERNAME: der Name des Nutzers, der eine Verbindung zur Instanz herstellt.IP_ADDRESS: die interne 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
--networknicht verwenden, wenn Sie einen Cluster mit 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.