Auf dieser Seite wird beschrieben, wie Sie eine Cloud SQL-Instanz für die Verwendung von privaten IP-Adressen konfigurieren.
Informationen zur Funktionsweise privater IP-Adressen sowie zu den Anforderungen an Umgebung und Verwaltung finden Sie unter Private IP-Adressen.
Vorbereitung
API- und IAM-Anforderungen
- Sie müssen die Service Networking API für Ihr Google Cloud-Projekt aktivieren.
- Um eine Zugriffsverbindung für private Dienste zu verwalten, muss der Nutzer die folgenden IAM-Berechtigungen (Identity and Access Management) haben. Wenn Sie nicht die erforderlichen Berechtigungen haben, können Fehler auftreten.
compute.networks.list
compute.addresses.create
compute.addresses.list
servicenetworking.services.addPeering
Wenn Sie ein freigegebenes VPC-Netzwerk verwenden, müssen Sie den Nutzer auch dem Hostprojekt hinzufügen und ihm dort dieselbe Berechtigung zuweisen.
Wenn Sie ein freigegebenes VPC-Netzwerk verwenden, müssen Sie diese API auch für das Hostprojekt aktivieren.
Zugriff auf private Dienste
Wenn Sie in Ihrem Projekt ein neues VPC-Netzwerk (Virtual Private Cloud) erstellen, müssen Sie den Zugriff auf private Dienste konfigurieren, um einen IP-Adressbereich zuzuweisen und eine private Dienstverbindung zu erstellen. So können Ressourcen im VPC-Netzwerk eine Verbindung zu Cloud SQL-Instanzen herstellen. Die Google Cloud Console enthält einen Assistenten, mit dem Sie diese Konfiguration einrichten können.
Instanz für die Verwendung privater IP-Adressen konfigurieren
Sie können eine Cloud SQL-Instanz so konfigurieren, dass beim Erstellen der Instanz oder bei einer vorhandenen Instanz eine private IP-Adresse verwendet wird.
Private IP-Adresse für eine neue Instanz konfigurieren
So konfigurieren Sie eine Cloud SQL-Instanz für die Verwendung privater IP-Adressen, wenn Sie eine Instanz erstellen:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf Instanz erstellen.
- Maximieren Sie Konfigurationsoptionen einblenden.
- Maximieren Sie Verbindungen.
- Wählen Sie Private IP-Adresse aus.
In einer Drop-down-Liste werden die im Projekt verfügbaren VPC-Netzwerke angezeigt Wenn Ihr Projekt das Dienstprojekt einer freigegebenen VPC ist, werden auch VPC-Netzwerke aus dem Hostprojekt angezeigt.
- Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
- Klicken Sie auf Verbindung einrichten.
- Wählen Sie im Bereich IP-Bereich zuweisen eine der folgenden Optionen aus:
- Wählen Sie einen oder mehrere IP-Bereiche aus oder erstellen Sie einen neuen aus dem Drop-down-Menü. Das Drop-down-Menü enthält die zuvor zugewiesenen Bereiche (sofern vorhanden). Sie können auch Neuen IP-Bereich zuweisen auswählen und einen neuen Bereich und Namen eingeben.
- Verwenden Sie einen automatisch zugewiesenen IP-Bereich in Ihrem Netzwerk.
- Klicken Sie auf Weiter.
- Klicken Sie auf Verbindung erstellen.
- Prüfen Sie, ob die Meldung
Private service connection for network VPC_NETWORK_NAME has been successfully created
angezeigt wird. - Optional können Sie einen zugewiesenen IP-Bereich für Ihre Instanzen angeben, der für Verbindungen verwendet werden soll.
- Maximieren Sie die Option Zugewiesenen IP-Bereich anzeigen.
- Wählen Sie einen IP-Bereich aus dem Drop-down-Menü aus.
- Optional. Wenn Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung ermöglichen möchten, wählen Sie Folgendes aus: Privaten Pfad aktivieren
- Schließen Sie die Konfiguration Ihrer Instanz ab.
- Klicken Sie auf Instanz erstellen.
Wenn Sie darauf hingewiesen werden, dass Sie eine private Dienstverbindung einrichten müssen, gehen Sie so vor:
gcloud
Bevor Sie eine Instanz mit einer privaten IP-Adresse erstellen, müssen Sie Ihr Projekt für den Zugriff auf private Dienste konfigurieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
INSTANCE_ID
: die Instanz-IDPROJECT_ID
: die Projekt-IDNETWORK_PROJECT_ID
: die Projekt-ID des VPC-NetzwerksVPC_NETWORK_NAME
: der Name des VPC-NetzwerksRANGE_NAME
: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname mussRFC-1035
entsprechen und zwischen 1 und 63 Zeichen lang sein.REGION_NAME
: der Name der Region
--network
, um den Namen Ihres VPC-Netzwerks anzugeben. Verwenden Sie das Flag --no-assign-ip
, um öffentliche IP-Adressen zu deaktivieren.
Optional können Sie auch den Parameter --enable-google-private-path
verwenden, um anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung zu ermöglichen. Dieser Parameter ist nur in folgenden Fällen gültig:
- Sie verwenden den Parameter
--no-assign-ip
. - Sie geben mit dem Parameter
--network
den Namen des VPC-Netzwerks an, das Sie zum Erstellen einer privaten Verbindung verwenden möchten.
gcloud beta sql instances create INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME \ --enable-google-private-path
Terraform
Verwenden Sie die folgenden Terraform-Ressourcen, um eine private IP-Adresse für eine neue Instanz zu konfigurieren:
google_compute_network
google_compute_global_address
google_service_networking_connection
google_sql_database_instance
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- PROJECT_ID:: die Projekt-ID
- INSTANCE_ID:: die Instanz-ID
- VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
- RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss
RFC-1035
entsprechen und zwischen 1 und 63 Zeichen lang sein. - AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
Legen Sie für den Parameter ipv4Enabled
den Wert true
fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false
, wenn die Instanz eine private IP-Adresse hat.
Wenn Sie für den Parameter enablePrivatePathForGoogleCloudServices
den Wert true
festlegen, erlauben Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung. Wenn Sie für diesen Parameter den Wert false
angeben, können andere Google Cloud-Dienste nicht über eine private IP-Verbindung auf Daten in Cloud SQL zugreifen.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], "enablePrivatePathForGoogleCloudServices": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- PROJECT_ID:: die Projekt-ID
- INSTANCE_ID:: die Instanz-ID
- VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
- RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss
RFC-1035
entsprechen und zwischen 1 und 63 Zeichen lang sein. - AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
Legen Sie für den Parameter ipv4Enabled
den Wert true
fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false
, wenn die Instanz eine private IP-Adresse hat.
Wenn Sie für den Parameter enablePrivatePathForGoogleCloudServices
den Wert true
festlegen, erlauben Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung. Wenn Sie für diesen Parameter den Wert false
angeben, können andere Google Cloud-Dienste nicht über eine private IP-Verbindung auf Daten in Cloud SQL zugreifen.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], "enablePrivatePathForGoogleCloudServices": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Private IP-Adresse für eine vorhandene Instanz konfigurieren
Wenn Sie eine vorhandene Cloud SQL-Instanz für die Verwendung einer privaten IP-Adresse konfigurieren, wird die Instanz neu gestartet, was zu einer Ausfallzeit führt.
So konfigurieren Sie eine bestehende Instanz für die Verwendung einer privaten IP-Adresse:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Wählen Sie im Cloud SQL-Navigationsmenü die Option Verbindung aus.
- Aktivieren Sie auf dem Tab Netzwerk das Kästchen Private IP.
In einer Drop-down-Liste werden die im Projekt verfügbaren Netzwerke angezeigt.
- Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten:
- Klicken Sie auf Verbindung einrichten.
- Wählen Sie im Bereich IP-Bereich zuweisen eine der folgenden Optionen aus:
- Wählen Sie einen oder mehrere IP-Bereiche aus oder erstellen Sie einen neuen aus dem Drop-down-Menü. Das Drop-down-Menü enthält die zuvor zugewiesenen Bereiche (sofern vorhanden). Sie können auch Neuen IP-Bereich zuweisen auswählen und einen neuen Bereich und Namen eingeben.
- Verwenden Sie einen automatisch zugewiesenen IP-Bereich in Ihrem Netzwerk.
- Klicken Sie auf Weiter.
- Klicken Sie auf Verbindung erstellen.
- Prüfen Sie, ob der Status Private Dienstverbindung für Netzwerk
VPC_NETWORK_NAME
wurde erfolgreich erstellt angezeigt wird. - Optional. Wenn Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung ermöglichen möchten, setzen Sie das Häkchen für Privaten Pfad aktivieren.
- Klicken Sie auf Speichern.
Wenn Private Dienstverbindung erforderlich angezeigt wird:
gcloud
Achten Sie darauf, dass das Projekt für den Zugriff auf private Dienste konfiguriert ist.
Aktualisieren Sie Ihre Cloud SQL-Instanz mithilfe des Parameters --network
, um den Namen des ausgewählten VPC-Netzwerks anzugeben.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --enable-google-private-path
REST Version 1
So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- PROJECT_ID:: die Projekt-ID
- INSTANCE_ID:: die Instanz-ID
- VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
- RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss
RFC-1035
entsprechen und zwischen 1 und 63 Zeichen lang sein. - AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
Legen Sie für den Parameter ipv4Enabled
den Wert true
fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false
, wenn die Instanz eine private IP-Adresse hat.
Wenn Sie für den Parameter enablePrivatePathForGoogleCloudServices
den Wert true
festlegen, erlauben Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung. Wenn Sie für diesen Parameter den Wert false
angeben, können andere Google Cloud-Dienste nicht über eine private IP-Verbindung auf Daten in Cloud SQL zugreifen.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "settings": { "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], "enablePrivatePathForGoogleCloudServices": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- PROJECT_ID:: die Projekt-ID
- INSTANCE_ID:: die Instanz-ID
- VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
- RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss
RFC-1035
entsprechen und zwischen 1 und 63 Zeichen lang sein. - AUTHORIZED_NETWORKS: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.
Legen Sie für den Parameter ipv4Enabled
den Wert true
fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false
, wenn die Instanz eine private IP-Adresse hat.
Wenn Sie für den Parameter enablePrivatePathForGoogleCloudServices
den Wert true
festlegen, erlauben Sie anderen Google Cloud-Diensten wie BigQuery den Zugriff auf Daten in Cloud SQL und das Abfragen dieser Daten über eine private IP-Verbindung. Wenn Sie für diesen Parameter den Wert false
angeben, können andere Google Cloud-Dienste nicht über eine private IP-Verbindung auf Daten in Cloud SQL zugreifen.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "settings": { "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], "enablePrivatePathForGoogleCloudServices": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Verbindung zu einer Instanz über ihre private IP-Adresse herstellen
Verwenden Sie den Zugriff auf private Dienste zum Herstellen einer Verbindung zu Cloud SQL-Instanzen von Compute Engine- oder Google Kubernetes Engine-Instanzen im selben VPC-Netzwerk (hier als interne Quellen definiert) oder von außerhalb des Netzwerks (eine externe Quelle).
Verbindung von einer internen Quelle herstellen
Zum Herstellen einer Verbindung von einer Quelle, die sich im selben Google Cloud-Projekt wie die Cloud SQL-Instanz befindet, z. B. vom Cloud SQL Auth-Proxy, der auf einer Compute Engine-Ressource ausgeführt wird, muss sich diese Ressource im selben VPC-Netzwerk befinden. Dabei wurde für die Cloud SQL-Instanz der Zugriff auf private Dienste eingerichtet.
Bei Verbindungen von einer serverlosen Quelle wie der App Engine-Standardumgebung, Cloud Run oder Cloud Run Functions wird Ihre Anwendung oder Funktion direkt über den serverlosen VPC-Zugriff ohne den Cloud SQL-Auth-Proxy mit der Instanz verbunden.
Verbindung von einer externen Quelle herstellen
Wenn ein externes Netzwerk (z. B. ein lokales Netzwerk oder ein VPC-Netzwerk) mit dem VPC-Netzwerk verbunden ist, mit dem Ihre Cloud SQL-Instanz verbunden ist, können SieCloud-VPN oderCloud Interconnect verwenden, um von einem Client im externen Netzwerk eine Verbindung zur Instanz herzustellen.
So lassen Sie Verbindungen von einem externen Netzwerk zu:
- Stellen Sie sicher, dass Ihr VPC-Netzwerk über einen Cloud-VPN-Tunnel oder einen VLAN-Anhang für Dedicated Interconnect oder Partner Interconnect mit dem externen Netzwerk verbunden ist.
- Achten Sie darauf, dass die BGP-Sitzungen auf den Cloud Routern, die Ihre Cloud VPN-Tunnel und Cloud Interconnect-Anhänge (VLANs) verwalten, von Ihrem lokalen Netzwerk bestimmte Präfixe (Ziele) erhalten haben.
Standardrouten (Ziel 0.0.0.0/0) können nicht in das Cloud SQL-VPC-Netzwerk importiert werden, da das Netzwerk eine eigene lokale Standardroute hat. Lokale Routen für ein Ziel werden verwendet, auch wenn das Cloud SQL-Peering so konfiguriert ist, dass benutzerdefinierte Routen aus Ihrem VPC-Netzwerk importiert werden.
-
Identifizieren Sie die Peering-Verbindungen, die über die private Dienstverbindung erzeugt werden. Je nach Dienst kann die private Dienstverbindung eine oder mehrere der folgenden Peering-Verbindungen erstellen, aber nicht unbedingt alle:
cloudsql-mysql-googleapis-com
cloudsql-postgres-googleapis-com
servicenetworking-googleapis-com
- Aktualisieren Sie alle Peering-Verbindungen, um den Export benutzerdefinierter Routen zu aktivieren.
- Identifizieren Sie den zugewiesenen Bereich, der von der Verbindung für private Dienste verwendet wird.
- <ph type="x-smartling-placeholder"></ph> Konfigurieren Sie den benutzerdefinierten Advertising-Modus von Cloud Router für die zugewiesene Bereich auf den Cloud Routern, die BGP-Sitzungen für Ihre Cloud VPN-Tunnel oder Cloud Interconnect-Anhänge (VLANs) verwalten.
Von Cloud Shell aus verbinden
Cloud Shell unterstützt nicht das Herstellen einer Verbindung zu einer Cloud SQL-Instanz, die nur eine private IP-Adresse hat.
Verbindung von IP-Adressen außerhalb von RFC 1918 herstellen
RFC 1918 gibt IP-Adressen an, die intern, also innerhalb einer Organisation, zugewiesen und nicht ins Internet weitergeleitet werden. Dazu zählen insbesondere Folgende:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Verbindungen zu einer Cloud SQL-Instanz mit einer privaten IP-Adresse werden für RFC 1918-Adressbereiche automatisch autorisiert. Auf diese Weise können alle privaten Clients ohne Umleitung über den Proxy auf die Datenbank zugreifen.
Wenn Sie eine Verbindung über eine IP-Adresse außerhalb des RFC 1918-Bereichs herstellen möchten, müssen Sie eine instanzspezifische IP-Autorisierung einrichten, um Traffic aus anderen als RFC 1918-IP-Adressbereichen zuzulassen.
Verwenden Sie beispielsweise den folgenden gcloud
-Befehl:
gcloud sql instances patch INSTANCE_NAME \ --authorized-networks=192.88.99.0/24,11.0.0.0/24
Cloud SQL lernt standardmäßig keine Subnetzrouten außerhalb des RFC 1918-Bereichs von Ihrem VPC-Netzwerk. Sie müssen deshalb das Netzwerk-Peering auf Cloud SQL aktualisieren, um Routen außerhalb des RFC 1918-Bereichs exportieren zu können.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird.VPC_NETWORK_NAME
ist der Name Ihres VPC-Netzwerks.PROJECT_ID
ist die ID des Projekts des VPC-Netzwerks. Wenn Sie eine freigegebene VPC verwenden, verwenden Sie die Hostprojekt-ID.
Ersetzen Sie Folgendes:
Um die Ausschöpfung von IP-Adressen zu minimieren, können Sie privat verwendete öffentlichen IP-Adressen nutzen.
Verbindung über privat verwendete öffentliche IP-Adressen herstellen
Wenn Sie die Instanz in einem privat genutzten öffentlichen IP-Adressbereich konfigurieren möchten, aktivieren Sie
export-subnet-routes-with-public-ip
für das Netzwerk-Peering zwischen Ihrem Netzwerk
und dem Cloud SQL-Netzwerk.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird. Den Namen der Peering-Verbindung finden Sie auf der Seite VPC-Netzwerk-Peering.VPC_NETWORK_NAME
ist der Name Ihres VPC-Netzwerks.PROJECT_ID
ist die ID des Projekts des VPC-Netzwerks. Wenn Sie eine freigegebene VPC verwenden, verwenden Sie die Hostprojekt-ID.
Ersetzen Sie Folgendes:
Verbindung zu einer Instanz herstellen, die mit privat genutzten öffentlichen IP-Adressen konfiguriert ist
Wenn Ihre Instanz in einem privat genutzten öffentlichen IP-Adressbereich konfiguriert ist
und Sie eine Verbindung zu ihr herstellen möchten,
aktivieren Sie import-subnet-routes-with-public-ip
im Netzwerk-Peering
zwischen Ihrem Netzwerk und dem Cloud SQL-Netzwerk.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --import-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird. Den Namen der Peering-Verbindung finden Sie auf der Seite VPC-Netzwerk-Peering.VPC_NETWORK_NAME
ist der Name Ihres VPC-Netzwerks.PROJECT_ID
ist die ID des Projekts des VPC-Netzwerks. Verwenden Sie die Hostprojekt-ID, wenn Sie eine freigegebene VPC verwenden.
Ersetzen Sie Folgendes:
Verbindung über einen Schreibendpunkt herstellen
Neben einer privaten IP-Adresse können Sie in einem SQL-Verbindungsstring auch einen Schreibendpunkt verwenden. Ein Schreibendpunkt ist ein globaler DNS-Name (Domain Name Service), der automatisch in die IP-Adresse der aktuellen primären Instanz aufgelöst wird. Wenn Sie einen Schreibendpunkt verwenden, müssen Sie bei einem regionalen Ausfall keine Änderungen an der Anwendungsverbindung vornehmen.
Bei einem Failover oder Switchover eines Replicas kann der Schreibendpunkt dabei helfen, private IP-Adressen von Instanzen zu verwalten. Verwenden Sie in diesem Fall den Schreibendpunkt, um eine Verbindung zur Instanz herzustellen, die als primäre Instanz dient.
So erstellt Cloud SQL einen Schreibendpunkt
Wenn Sie die Cloud DNS API für Ihr Google Cloud-Projekt aktiviert und anschließend eine primäre Cloud SQL Enterprise Plus-Instanz erstellen, das Replikat für die Instanz hochstufen oder die Instanz von Cloud SQL Enterprise Edition upgraden , generiert Cloud SQL automatisch einen Schreibendpunkt und weist ihn der Instanz zu.
Wenn sich die primäre Instanz während des Switchover- oder Failover-Prozesses ändert, weist Cloud SQL den Schreibendpunkt dem Failover-Replikat zu, da dieses Replikat die neue primäre Instanz ist.Weitere Informationen zum Abrufen des Schreibendpunkts für die Instanz finden Sie unter Instanzinformationen ansehen.
Einer Instanz einen Schreibendpunkt zuweisen
Wenn Sie die Cloud DNS API nicht für Ihr Google Cloud-Projekt aktivieren und dann Ihre Instanz erstellen, befördern oder aktualisieren, wird der Schreibendpunkt der Instanz von Cloud SQL nicht automatisch zugewiesen.
So lassen Sie Cloud SQL einen Schreibendpunkt generieren und der Instanz zuweisen:
-
Aktivieren Sie die Cloud DNS API:
Console
-
Öffnen Sie in der Google Cloud Console die Seite APIs.
- Klicken Sie auf die Cloud DNS API.
- API aktivieren.
gcloud
Klicken Sie auf die folgende Schaltfläche, um Cloud Shell zu öffnen, die Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen direkt über den Browser bietet.
Führen Sie den folgenden Befehl
gcloud services enable
aus, um die API zu aktivieren:gcloud services enable dns.googleapis.com
-
Erstellen Sie ein Replikat, das für die erweiterte Notfallwiederherstellung aktiviert ist. Cloud SQL generiert dann den Schreibendpunkt und weist ihn der Instanz zu.
- Verwenden Sie den Befehl
gcloud sql instances describe
, um den Schreibendpunkt abzurufen:gcloud sql instances describe INSTANCE_NAME | grep psaWriteEndpoint
Ersetzen Sie INSTANCE_NAME durch den Namen Ihrer Cloud SQL-Instanz.
Fehlerbehebung
Informationen zu bekannten Verbindungsproblemen finden Sie unter Fehlerbehebung. Informationen zur Selbstdiagnose finden Sie unter Verbindungsprobleme beheben.
Nächste Schritte
- Weitere Informationen zu privaten IP-Adressen
- Weitere Informationen zum Zugriff auf private Dienste
- Mit VPC Service Controls einen Dienstperimeter hinzufügen
- Zugriff auf private Dienste konfigurieren
- Zugriff auf private Dienste für Cloud SQL konfigurieren
- Weitere Informationen zu Cloud VPN
- Weitere Informationen zu VPC-Netzwerken
- Weitere Informationen zum VPC-Netzwerk-Peering
- Weitere Informationen zur freigegebenen VPC