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:
|
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:
- Verwenden Sie eine vorhandene Richtlinie für Dienstverbindungen wieder oder erstellen Sie eine Richtlinie für Dienstverbindungen in Ihren VPC-Netzwerken. Mit dieser Richtlinie können Sie Private Service Connect-Endpunkte automatisch bereitstellen.
- Erstellen Sie einen AlloyDB-Cluster und eine Instanz mit aktiviertem Private Service Connect für die Instanz 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. 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
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.
Geben Sie die Dienstklasse so an:
- Wählen Sie für Quell-Dienstklasse die Option Google-Dienste aus.
- Wählen Sie im Menü Dienstklasse die Option
google-cloud-alloydb
aus, da AlloyDB der verwaltete Dienst für die Verbindungsrichtlinie ist.
Wählen Sie im Bereich Bereich der Zielendpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.
Wählen Sie im Bereich Richtlinie 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 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 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.DESCRIPTION
ist 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 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 Parameterallowed-google-producers-resource-hierarchy-level
automatisieren möchten.
LIST_OF_NODES
: Legen Sie diesen Parameter fest, wenn der Standort Ihrer Producer-Instanz aufcustom-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 Formatprojects/PROJECT_ID
,folders/FOLDER_ID
oderorganizations/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
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf Cluster erstellen.
Geben Sie bei Cluster-ID
my-cluster
ein.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-primary
bei.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.
Wählen Sie den Maschinentyp
2 vCPU, 16 GB
aus.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 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 Standardnutzerpostgres
.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 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 (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:
- 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.
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
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf Cluster erstellen.
Geben Sie bei Cluster-ID
my-cluster
ein.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-primary
bei.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.
Wählen Sie den Maschinentyp
2 vCPU, 16 GB
aus.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 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 Standardnutzerpostgres
.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 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 (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 InstanzCLUSTER_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:
- Erstellen Sie ein regionales CRR-Replikat (Cross-Region Replica) Ihrer primären Instanz mit aktivierter ausgehender Verbindung. Führen Sie dann einen Switchover durch, um die Replikatinstanz als neue primäre Instanz festzulegen.
- Sichern Sie Ihren vorhandenen AlloyDB-Cluster und die primäre Instanz. Erstellen Sie dann einen neuen AlloyDB-Cluster und eine primäre Instanz mit aktivierter ausgehender Verbindung. Stellen Sie die zuvor erstellte Sicherung im neuen Cluster wieder her.
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:
- Direkte Verbindung über einen DNS-Eintrag herstellen
- AlloyDB Auth-Proxy mit DNS-Eintrag verwenden
- AlloyDB Language Connectors mit DNS-Eintrag verwenden
- Direkte Verbindung über eine interne IP-Adresse
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:
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.
.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
.
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.
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.
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.
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.
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.