Sie können Ihre Daten über private Netzwerke migrieren, indem Sie eine Verbindung zwischen den privaten IP-Adressen Ihrer Quell- und Zieldatenbanken herstellen. Sie können einen der beiden Ansätze verwenden. Um private IP-Adressen für Ihre Zieldatenbank zu konfigurieren, können Sie den Zugriff auf private Dienste mit VPC-Peering oder Private Service Connect verwenden.
Jede Verbindungsmethode bietet bestimmte Vorteile und Nachteile. Wählen Sie den Ansatz aus, der am besten zu Ihrem Szenario passt. Weitere Informationen zum Zugriff auf private Dienste und zu Private Service Connect in Cloud SQL finden Sie in der Cloud SQL-Dokumentation unter Übersicht über private IP-Adressen.
Verbindung über VPC-Peering konfigurieren
Beim VPC-Peering werden die VPCs für die Kommunikation miteinander konfiguriert. Wenn sich Ihre Quelle im selben Google Cloud Projekt in Cloud SQL oder Compute Engine befindet, kann das Ziel direkt mit der Quelle kommunizieren. Wenn sich Ihre Quelle in einem VPN befindet (z. B. in AWS oder in Ihrem eigenen lokalen VPN), konfigurieren Sie das Quell-VPN und das Google Cloud-VPN so, dass sie miteinander funktionieren. Weitere Informationen finden Sie unter VPCs über VPNs verbinden.VPC-Verkettung wird nicht unterstützt. Wenn sich Ihre Quelle in einem anderen Google Cloud Projekt befindet, finden Sie unter Übersicht über gemeinsam genutzte VPC Informationen zum Verbinden von Ressourcen aus mehreren Projekten mit einem gemeinsamen VPC-Netzwerk für das VPC-Peering.
Die Firewall des Quelldatenbankservers muss so konfiguriert sein, dass sie den gesamten internen IP-Adressbereich zulässt, der für die private Dienstverbindung des VPC-Netzwerks zugewiesen ist, das die Cloud SQL-Zielinstanz verwenden wird.
So finden Sie den internen IP-Bereich in der Console:
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
Wählen Sie Zugriff auf private Dienste > Diensten zugewiesene IP-Bereiche aus.
Suchen Sie den internen IP-Bereich , der mit der Verbindung verknüpft ist, die von servicenetworking-googleapis-com erstellt wurde.
pg_hba.conf oder die Sicherheitsgruppendefinitionen in AWS RDS in der Quelldatenbank aktualisiert wurden, sodass Verbindungen aus dem IP-Adressbereich der Cloud SQL-VPC akzeptiert werden.
Beim VPC-Peering wird der Zugriff auf private Dienste verwendet,
der einmal für jedes Projekt konfiguriert werden muss, das VPC-Peering verwendet. Nachdem Sie
eingerichtet haben private services access, testen Sie Ihren
Migationsjob, um die Verbindung zu prüfen.
Zugriff auf private Dienste für Database Migration Service konfigurieren
Wenn Sie für eine Ihrer Database Migration Service-Instanzen eine private IP-Adresse verwenden, müssen Sie den Zugriff auf private Dienste für jedes Google Cloud-Projekt, das eine Verbindung zu einer Database Migration Service-Instanz hat oder herstellen muss, nur einmal konfigurieren.
Zum Einrichten des Zugriffs auf private Dienste ist die
compute.networkAdmin erforderlich. Nachdem der Zugriff auf private Dienste für Ihr Netzwerk eingerichtet wurde, benötigen Sie die IAM-Rolle compute.networkAdmin zum Konfigurieren einer Instanz für die Verwendung privater IP-Adressen nicht mehr.
Für den Zugriff auf private Dienste müssen Sie zuerst einen internen IP-Adressbereich zuweisen, dann eine private Verbindung erstellen und dann eine benutzerdefinierte Route exportieren.
Ein zugewiesener Bereich ist ein reservierter CIDR-Block, der andernfalls nicht in Ihrem lokalen VPC-Netzwerk verwendet werden kann. Wenn Sie eine private Verbindung erstellen, geben Sie eine Zuweisung an. Die private Verbindung verknüpft Ihr VPC-Netzwerk mit dem zugrunde liegenden VPC-Netzwerk („Dienstersteller“).
Wenn Sie eine private Verbindung erstellen, tauschen das VPC-Netzwerk und das Dienstersteller-Netzwerk nur Subnetzrouten aus. Sie müssen die benutzerdefinierten Routen des VPC-Netzwerk exportieren, damit das Netzwerk des Dienstanbieters sie importieren und den Traffic korrekt an Ihr lokales Netzwerk weiterleiten kann.
Mit einer Peering-Konfiguration wird die Absicht festgeschrieben, eine Verbindung zu einem anderen VPC-Netzwerk herzustellen. Ihr Netzwerk und das andere Netzwerk sind erst verbunden, wenn beide eine Peering-Konfiguration für das andere haben. Sobald das andere Netzwerk eine entsprechende Konfiguration für das Peering mit Ihrem Netzwerk hat, ändert sich der Peering-Status in beiden Netzwerken in „AKTIV“ und sie sind verbunden. Wenn im anderen Netzwerk keine passende Peering-Konfiguration vorhanden ist, bleibt der Peering-Status „INAKTIV“. Das bedeutet, dass Ihr Netzwerk nicht mit dem anderen verbunden ist.
Nach der Verbindung tauschen die beiden Netzwerke immer Subnetzrouten aus. Optional können Sie sowohl statische als auch dynamische benutzerdefinierte Routen aus einem Peering-Netzwerk importieren, wenn es für den Export konfiguriert wurde.
Die Konfiguration des Zugriffs auf private Dienste besteht aus zwei Teilen:
- IP-Adressbereich zuweisen. Der Bereich umfasst alle Ihre Instanzen.
- Private Verbindung von Ihrem VPC-Netzwerk zum Netzwerk des Diensterstellers herstellen.
IP-Adressbereich zuweisen
Console
- Rufen Sie die Seite VPC-Netzwerke auf in der Google Cloud Console.
- Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
- Wählen Sie den Tab Private Dienstverbindung aus.
- Wählen Sie den Tab Diensten zugewiesene IP-Bereiche aus.
- Klicken Sie auf IP-Bereich zuweisen.
Geben Sie unter Name für den zugewiesenen Bereich
google-managed-services-VPC_NETWORK_NAMEan, wobeiVPC_NETWORK_NAMEder Name des VPC-Netzwerk ist, zu dem Sie eine Verbindung herstellen, beispielsweisegoogle-managed-services-default. Die Description ist optional.Klicken Sie auf ZUWEISEN , um den zugewiesenen Bereich zu erstellen.
gcloud
Führen Sie einen der folgenden Schritte aus:
Legen Sie einen Adressbereich und eine Präfixlänge (Subnetzmaske) mit den Flags
addressesundprefix-lengthfest. Wenn Sie beispielsweise den CIDR-Block192.168.0.0/16zuordnen möchten, geben Sie192.168.0.0für die Adresse und16für die Präfixlänge an.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]Wenn Sie nur eine Präfixlänge (Subnetzmaske) angeben möchten, verwenden Sie einfach das Flag
prefix-length. Wenn Sie den Adressbereich weglassen, Google Cloud wählt automatisch einen nicht verwendeten Adressbereich in Ihrem VPC Netzwerk aus. Im folgenden Beispiel wird ein nicht verwendeter IP-Adressbereich mit einer Präfixlänge von16Bit ausgewählt.gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
Ersetzen Sie [VPC_NETWORK_NAME] durch den Namen Ihres VPC-Netzwerks, beispielsweise my-vpc-network.
In diesem Beispiel wird ein IP-Bereich zugewiesen, mit dem Ressourcen im VPC-Netzwerk my-vpc-network eine Verbindung zu Database Migration Service-Instanzen über private IP-Adressen herstellen können.
gcloud compute addresses create google-managed-services-my-vpc-network \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--network=my-vpc-network \
--project=my-project
Private Verbindung erstellen
Console
- Rufen Sie die Seite VPC-Netzwerke auf in der Google Cloud Console.
- Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
- Wählen Sie den Tab Private Dienstverbindung aus.
- Wählen Sie den Tab Private Verbindungen zu Diensten aus.
- Klicken Sie auf Verbindung erstellen , um eine private Verbindung zwischen Ihrem Netzwerk und einem Dienstersteller herzustellen.
- Wählen Sie unter Zugewiesene Zuweisung einen oder mehrere vorhandene zugewiesene Bereiche aus, die nicht von anderen Diensterstellern verwendet werden, und klicken Sie dann auf OK.
- Klicken Sie auf VERBINDEN , um die Verbindung zu erstellen.
gcloud
Erstellen Sie eine private Verbindung.
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]Ersetzen Sie
[VPC_NETWORK_NAME]durch den Namen Ihres VPC-Netzwerks und[PROJECT_ID]durch die ID des Projekts, das Ihr VPC-Netzwerk enthält.Der Befehl initiiert einen Vorgang mit langer Ausführungszeit und gibt einen Vorgangsnamen zurück.
Prüfen Sie, ob der Vorgang erfolgreich war.
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]Ersetzen Sie
[OPERATION_NAME]durch den Vorgangsnamen, der im vorherigen Schritt zurückgegeben wurde.
Sie können mehr als einen zugewiesenen Bereich angeben, wenn Sie eine private Verbindung erstellen. Wenn beispielsweise ein Bereich aufgebraucht ist, können Sie zusätzliche zugewiesene Bereiche zuordnen. Der Dienst verwendet IP-Adressen aus allen bereitgestellten Bereichen in der von Ihnen angegebenen Reihenfolge.
Benutzerdefinierte Routen exportieren
Aktualisieren Sie eine vorhandene VPC-Netzwerk-Peering-Verbindung, um anzupassen, ob das VPC-Netzwerk benutzerdefinierte Routen aus dem Peering-VPC-Netzwerk exportiert oder in dieses importiert.
Ihr Netzwerk importiert benutzerdefinierte Routen nur, wenn das Peering-Netzwerk auch benutzerdefinierte Routen exportiert. Das Peering-Netzwerk empfängt benutzerdefinierte Routen nur, wenn es sie importiert.
Console
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerk-Peering auf.
Seite „VPC-Netzwerk-Peering“ aufrufen - Wählen Sie die zu aktualisierende Peering-Verbindung aus.
- Klicken Sie auf BEARBEITEN.
- Aktualisieren Sie Ihre Einstellungen für benutzerdefinierte Routen, indem Sie Benutzerdefinierte Routen importieren oder Benutzerdefinierte Routen exportieren auswählen bzw. die Auswahl aufheben.
- Klicken Sie auf SPEICHERN.
gcloud
Aktualisieren Sie die Peering-Verbindung, um Ihre Import- bzw. Exporteinstellungen für benutzerdefinierte Routen anzupassen.
gcloud compute networks peerings update [PEERING-NAME] \
--network=[MY-LOCAL-NETWORK] \
[--[no-]import-custom-routes] \
[--[no-]export-custom-routes]
Rolle roles/servicenetworking.serviceAgent zuweisen
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking." \
--role="roles/servicenetworking.serviceAgent"
Verbindung über Private Service Connect-Schnittstellen konfigurieren
Bei homogenen Migrationen kann Cloud SQL Private Service Connect-Schnittstellen verwenden, um eine Verbindung über private Netzwerke herzustellen. Diese Verbindungsmethode ist nur verfügbar, wenn Sie zu einer vorhandenen Instanz migrieren.
So verwenden Sie Private Service Connect-Schnittstellen:
Erstellen Sie eine Cloud SQL-Instanz, die für Private Service Connect aktiviert ist. Weitere Informationen finden Sie in der Cloud SQL-Dokumentation unter Private Service Connect-fähige Instanz erstellen.
Konfigurieren Sie Private Service Connect für die ausgehende Verbindung auf Ihrer Instanz. Im Wesentlichen umfasst dieser Prozess folgende Schritte:
2.1 Erstellen Sie einen Netzwerkanhang im VPC-Netzwerk, in dem Sie die private IP-Adresse Ihrer Quelldatenbank erreichen können. Der für den Netzwerkanhang reservierte Subnetzbereich muss innerhalb des RFC 1918-Bereichs liegen.
2.2 Weisen Sie den Netzwerkanhang Ihrer Cloud SQL-Zielinstanz zu.
Den vollständigen Prozess finden Sie in der Cloud SQL-Dokumentation unter Ausgehende Verbindung konfigurieren.
Wenn Sie später den Migrationsjob erstellen, wählen Sie für die Verbindungsmethode PSC-Schnittstelle aus.