1. Übersicht
Es gibt mehrere Möglichkeiten, eine Verbindung zu einer privaten Cloud SQL-Instanz von einem anderen Projekt oder VPC-Netzwerk aus herzustellen. Mit dem Zugriff auf private Dienste können Sie die internen IP-Adressen von Google- und Drittanbieterdiensten über private Verbindungen erreichen. Wenn Sie den Zugriff auf die Datenbank erweitern möchten, können Sie jetzt auch Private Service Connect (PSC) aktivieren.
Mit Private Service Connect (PSC) können Dienstersteller ihre Dienste über Dienstanhänge bereitstellen, mit denen Nutzer PSC-Endpunkte und/oder PSC-Backends in ihrer Umgebung erstellen können. Über diese PSC-Endpunkte können sie über eine vom Nutzer angegebene private IP-Adresse eine Verbindung zu den Erstellerdiensten herstellen.
In diesem Lab können Sie die Option konfigurieren und testen.
In diesem Lab erstellen Sie eine einfache Architektur, die die Verwendung des PSA- und PSC-Endpunktzugriffs mit CloudSQL veranschaulicht.
Abbildung 1.
Für dieses Lab benötigen Sie zwei Projekte oder separate VPCs im selben Projekt.
Lernziele
In diesem Lab lernen Sie, wie Sie die folgenden Aufgaben ausführen:
- Dienstnetzwerk aktivieren
- PSA einrichten
- Cloud SQL-Instanz mit PSA erstellen
- Aktivieren Sie den PSC-Dienstanhang.
- PSC-Endpunkt in der Nutzer-VPC erstellen, um eine Verbindung zur CloudSQL-Datenbank herzustellen
- Zugriff auf die SQL-Datenbank von Test-VMs in Produzenten- und Nutzer-VPCs prüfen
2. Einrichtung und Anforderungen
Einrichtung der Umgebung im eigenen Tempo
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.
- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es ist ein Zeichenstring, der von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und kann nach der Festlegung nicht mehr geändert werden. In der Cloud Console wird automatisch ein eindeutiger String generiert. In der Regel spielt es keine Rolle, wie er lautet. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (normalerweise als
PROJECT_ID
gekennzeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige generieren. Alternativ können Sie Ihr eigenes Konto ausprobieren und prüfen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs ist kostenlos oder kostet nur sehr wenig. Wenn Sie die Ressourcen herunterfahren möchten, um Kosten nach Abschluss dieser Anleitung zu vermeiden, können Sie die von Ihnen erstellten Ressourcen oder das Projekt löschen. Neuen Google Cloud-Nutzern steht das kostenlose Testprogramm mit einem Guthaben von 300$ zur Verfügung.
Cloud Shell starten
Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus nutzen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:
Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Minuten dauern. Wenn der Vorgang abgeschlossen ist, sollte in etwa Folgendes angezeigt werden:
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.
3. Aufgabe 1: Umgebung für Datenbankprojekt mit Terraform einrichten
Im Datenbankprojekt aktivieren wir das Dienstnetzwerk, erstellen ein VPC, einen PSA-Bereich, ein Dienstnetzwerk-Peering und Firewallregeln. Öffnen Sie die Cloud Console und wählen Sie das Projekt aus, das Sie für die Datenbank verwenden möchten.
- Öffnen Sie Cloud Shell oben rechts in der Console. Achten Sie darauf, dass die Projekt-ID der Datenbank für das Datenbankprojekt in Cloud Shell angezeigt wird. Bestätigen Sie alle Aufforderungen, um den Zugriff zuzulassen.
- Erstellen Sie einen Ordner mit dem Namen terraform-db-psc und verschieben Sie ihn in den Ordner.
mkdir terraform-db-psc && cd terraform-db-psc
- Erstellen Sie die Dateien main.tf, variable.tf, nat-vm.tf und database.tf.
touch main.tf variable.tf nat-vm.tf database.tf
- Wechseln Sie zur Ansicht Cloud Shell-Editor. Wählen Sie editor aus und erlauben Sie alle erforderlichen Aufforderungen, damit die Benutzeroberfläche geladen werden kann.
- Gehen Sie nach dem Laden zu Datei > Ordner öffnen und wählen Sie /home/your-user-name/terraform-db-psc aus. Klicken Sie dann auf Ok, um den Ordner im Editor zu öffnen.
- Wählen Sie die Datei variable.tf aus und fügen Sie Folgendes hinzu: Ersetzen Sie den Text
your-database-project-id-here
durch die ID Ihres Datenbankprojekts in Anführungszeichen. Ersetzen Sie den Textyour-consumer-project-id-here
durch die tatsächliche ID Ihres Nutzerprojekts in Anführungszeichen.
variable "project_id" { type = string default = "your-database-project-id-here" } variable "project_id_consumer" { type = set(string) default = ["your-consumer-project-id-here"] } variable "network_id" { type = string default = "database-net" } variable "region_id" { type = string default = "us-east1" } variable "db_password" { type = string default = "cloudsql24" }
- Öffnen Sie als Nächstes die Datei main.tf. Wir fügen Terraform-Code hinzu, um verschiedene Aktionen auszuführen, wie unten erläutert.
APIs aktivieren |
|
VPC erstellen |
|
Firewallregeln hinzufügen |
|
PSA-Bereich erstellen |
|
Peering erstellen |
|
- Kopieren Sie den folgenden Code in die Datei main .tf.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "servicenetworking.googleapis.com", "sqladmin.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = true mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_global_address" "psa_range" { name = "psa-range-${google_compute_network.default.name}" project = var.project_id purpose = "VPC_PEERING" address_type = "INTERNAL" prefix_length = 20 address = "172.18.0.0" network = google_compute_network.default.id } resource "google_service_networking_connection" "private_connection" { network = google_compute_network.default.self_link service = "servicenetworking.googleapis.com" reserved_peering_ranges = [ google_compute_global_address.psa_range.name, ] } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-icmp"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_sql" { name = "allow-sql-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["3306"] } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["10.128.0.0/9", "172.18.0.0/20"] # Include PSA range }
- Wechseln Sie zurück zum Cloud Shell-Terminal, prüfen Sie, ob Sie sich im Verzeichnis terraform-db-psc
cd terraform-db-psc
befinden, und führen Sie die folgenden Befehle aus:
terraform init
Initialisiert das Arbeitsverzeichnis. In diesem Schritt werden die für die jeweilige Konfiguration erforderlichen Anbieter heruntergeladen.
terraform plan
Er generiert einen Ausführungsplan, der zeigt, welche Aktionen Terraform ausführen wird, um Ihre Infrastruktur bereitzustellen.
- Führen Sie nun den Befehl
terraform apply
aus und geben Sieyes
ein, um die Ressourcen zu erstellen.
4. Aufgabe 2: Cloud SQL-Instanz mit PSA (Terraform) erstellen
Erstellen wir mit Terraform eine Cloud SQL-Instanz mit der PSA-Option, um die Verbindung zu ermöglichen. Führen Sie diese Konfiguration im Datenbankprojekt aus.
- Wechseln Sie zur Ansicht Cloud Shell-Editor. Sie müssen sich im Ordner
terraform-db-psc
befinden. Wählen Sie die Dateidatabase.tf
aus und fügen Sie Folgendes hinzu.
resource "google_sql_database_instance" "default" {
name = "psc-psa-sql-db"
region = var.region_id
database_version = "MYSQL_8_0"
settings {
tier = "db-f1-micro"
availability_type = "REGIONAL"
backup_configuration {
enabled = true
binary_log_enabled = true
}
ip_configuration {
ipv4_enabled = "false"
private_network = google_compute_network.default.id
}
}
deletion_protection = false
}
resource "google_sql_user" "users" {
name = "testsql"
instance = google_sql_database_instance.default.name
password = var.db_password
}
- Kehren Sie zum Cloud Shell-Terminal zurück und prüfen Sie,ob Sie sich im Verzeichnis terraform-db-psc befinden. Führen Sie nun den Befehl
terraform apply
aus und geben Sieyes
ein, um die Ressourcen zu erstellen. Das Erstellen der Cloud SQL-Instanz mit PSA kann bis zu 15 Minuten dauern.
Datenbank prüfen
- Gehen Sie nach Abschluss in der Console zu SQL und wählen Sie die neu erstellte Datenbankinstanz psc-psa-sql-db aus.
- Maximieren Sie links die Ausklappoptionen für SQL und wählen Sie Verbindungen aus.
- Auf dem Tab „Zusammenfassung“ sehen Sie Informationen zur Verbindung.
- Kopieren Sie die interne IP-Adresse und speichern Sie sie auf Ihrem System. Wie Sie sehen, wurde sie aus dem von uns reservierten Bereich zugewiesen.
- Sie benötigen diese IP-Adresse für Schritt 5 von Aufgabe 3.
- Maximieren Sie links den Ausklappbereich für die SQL-Optionen und wählen Sie Nutzer aus.
- Sie sollten einen Nutzer namens testsql mit dem Passwort cloudsql24 sehen. Dieses wird später zum Zugriff auf die Datenbank verwendet.
5. Aufgabe 3: Test-VM erstellen und von einem DB-Projekt aus eine Verbindung zur SQL-Instanz herstellen (Terraform)
Erstellen wir mit Terraform eine Test-VM und ein NAT-Gateway. Führen Sie diese Konfiguration im Datenbankprojekt aus.
- Wechseln Sie zur Ansicht Cloud Shell-Editor. Sie müssen sich im Ordner
terraform-db-psc
befinden. Wählen Sie die Dateinat-vm.tf
aus und fügen Sie Folgendes hinzu.
resource "google_compute_router" "default" {
name = "outbound-nat"
region = var.region_id
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "outbound-nat-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "sql_net_vm" {
name = "db-vm-test"
machine_type = "e2-medium"
zone = "${var.region_id}-b"
project = var.project_id
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = google_compute_network.default.self_link
}
# No external IP address
network_performance_config {
total_egress_bandwidth_tier = "DEFAULT"
}
tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"]
# Install MariaDB at startup
metadata_startup_script = <<EOF
#!/bin/bash
apt-get update
apt-get install -y mariadb-server
systemctl enable mariadb
EOF
}
- Kehren Sie zum Cloud Shell-Terminal zurück und prüfen Sie,ob Sie sich im Verzeichnis terraform-db-psc befinden. Führen Sie nun den Befehl
terraform plan, then terraform apply
aus und geben Sieyes
ein, um die Ressourcen zu erstellen. Dadurch werden ein NAT-Gateway und eine VM mit installierter MariaDB erstellt.
Datenbank prüfen
Führen Sie diese Schritte im Nutzerprojekt aus.
- Rufen Sie VM-Instanz auf. Wählen Sie db-vm-test aus.
- Wählen Sie die Option SSH aus, um eine Verbindung zur VM herzustellen.
- Stellen Sie über die zuvor kopierte lokale IP-Adresse eine Verbindung zur Datenbank her:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24
PS: Ändern Sie die IP-Adresse in Ihre tatsächliche IP-Adresse, damit eine Verbindung hergestellt werden kann.
- Wenn die Verbindung hergestellt ist, erstellen Sie eine Datenbank mit dem folgenden localvpcsqldb.
CREATE DATABASE localvpcsqldb;
- Geben Sie zum Beenden der Verbindung „exit“ ein. Geben Sie noch einmal „exit“ ein, um die VM zu schließen.
6. Aufgabe 4: PSC für die Cloud SQL-Instanz aktivieren
Aktivieren wir die PSC-Option mit gcloud-Befehlen, um die Verbindung zu ermöglichen. Führen Sie diese Konfiguration im Datenbankprojekt aus.
- Wechseln Sie zur Ansicht Cloud Shell.
- Führen Sie in Cloud Shell den folgenden Befehl aus.
- Ersetzen Sie „Ensure
YOUR_DB_PROJECT_HERE
“ durch die Datenbankprojekt-ID. - Ersetzen Sie
YOUR_CONSUMER_PROJECT_HERE
durch die Projekt-ID des Verbraucherprojekts.
project_id=YOUR_DB_PROJECT_HERE
allowed_project=YOUR_CONSUMER_PROJECT_HERE
gcloud beta sql instances patch psc-psa-sql-db \
--project=$project_id \
--enable-private-service-connect \
--allowed-psc-projects=$allowed_project
- Dadurch wird die vorhandene Datenbank mit dem PSC-Anhang aktualisiert. Das kann bis zu 10 Minuten dauern.
Wenn Sie einen Fehler wegen Zeitüberschreitung erhalten, sollte Ihnen auch der Befehl angezeigt werden, mit dem Sie den Fortschritt sehen können. Etwa so: „Sie können weiter auf den Vorgang warten, indem Sie ‚gcloud beta sql operations wait ‑project ausführen.“
Hinweis: Sie können eine neue Datenbank mit aktiviertem PSA und PSC von Anfang an bereitstellen.
Datenbank prüfen
- Gehen Sie nach Abschluss in der Console zu SQL und wählen Sie die Datenbankinstanz psc-psa-sql-db aus.
- Maximieren Sie links die Ausklappoptionen für SQL und wählen Sie Verbindungen aus.
- Auf dem Tab „Zusammenfassung“ sehen Sie Informationen zur Verbindung.
- Kopieren Sie die Adresse der Dienstanhänge und speichern Sie sie auf Ihrem System.
- Sie benötigen diese für die nächste Aufgabe 5, Schritt 8.
7. Aufgabe 5: Umgebung für Nutzerprojekt einrichten (Terraform)
Im Nutzerprojekt erstellen wir eine benutzerdefinierte VPC mit Firewallregeln und Subnetz. Öffnen Sie die Cloud Console und wählen Sie das Projekt aus, das Sie verwenden möchten.
- Klicken Sie oben in der Console rechts neben dem Google Cloud-Symbol auf das Drop-down-Menü und wählen Sie den Tab Alle aus.
- Wählen Sie aus den aufgeführten Projekten die ID Ihres Konsumentenprojekts aus, um fortzufahren.
- Öffnen Sie Cloud Shell oben rechts in der Konsole. Achten Sie darauf, dass die Kundenprojekt-ID in Cloud Shell angezeigt wird, und bestätigen Sie alle Aufforderungen, um den Zugriff zuzulassen.
- Erstellen Sie einen Ordner mit dem Namen terraform-consumer-psc und verschieben Sie ihn in den Ordner.
mkdir terraform-consumer-psc && cd terraform-consumer-psc
- Erstellen Sie die Dateien main.tf, variable.tf und psc.tf.
touch main.tf variable.tf psc.tf
- Wechseln Sie zur Ansicht Cloud Shell-Editor für die Nutzerprojekt-ID. Wählen Sie editor aus und erlauben Sie alle erforderlichen Aufforderungen, damit die Benutzeroberfläche geladen werden kann.
- Gehen Sie nach dem Laden zu Datei > Ordner öffnen, rufen Sie /home/your-user-name/terraform-consumer-psc auf und wählen Sie Ok aus, um den Ordner im Editor zu öffnen.
- Wählen Sie die Datei variable.tf aus und fügen Sie Folgendes hinzu: Ersetzen Sie den Text
your-consumer-project-id-here
durch Ihre tatsächliche Kundenprojekt-ID in Anführungszeichen. Ersetzen Sie den Textyour-psc-attachment-id-here
durch Ihre psc-Anlageadresse in Anführungszeichen. Dies ist die ID, die Sie in Aufgabe 4 Abschnitt 5–7 kopiert haben
variable "project_id" { type = string default = "your-consumer-project-id-here" } variable "psc_attachment_id" { type = string default = "your-psc-attachment-id-here" } variable "network_id" { type = string default = "psc-endpoint-vpc" } variable "region_id" { type = string default = "us-east1" }
- Öffnen Sie als Nächstes die Datei main.tf. Wir fügen Terraform-Code hinzu, um verschiedene Aktionen auszuführen, wie unten erläutert.
APIs aktivieren |
|
VPC erstellen |
|
NAT-Gateway erstellen |
|
Firewallregeln hinzufügen |
|
- Kopieren Sie den folgenden Code in die Datei main .tf.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = false mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "vm_subnet_pc" { name = "vm-net" ip_cidr_range = "192.168.80.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_subnetwork" "psc_subnet_ip" { name = "psc-subnet" ip_cidr_range = "192.168.100.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_router" "default" { name = "outbound-nat" region = var.region_id network = google_compute_network.default.id bgp { asn = 64514 } } resource "google_compute_router_nat" "default" { name = "outbound-nat-gw" router = google_compute_router.default.name region = google_compute_router.default.region nat_ip_allocate_option = "AUTO_ONLY" source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" log_config { enable = true filter = "ERRORS_ONLY" } } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["192.168.0.0/16"] }
- Wechseln Sie zurück zum Cloud Shell-Terminal, prüfen Sie, ob Sie sich im Verzeichnis terraform-consumer-psc
cd terraform-consumer-psc
im Verbraucherprojekt befinden, und führen Sie die folgenden Befehle aus.
terraform init
Initialisiert das Arbeitsverzeichnis. In diesem Schritt werden die für die jeweilige Konfiguration erforderlichen Anbieter heruntergeladen.
terraform plan
Er generiert einen Ausführungsplan, der zeigt, welche Aktionen Terraform ausführen wird, um Ihre Infrastruktur bereitzustellen.
- Führen Sie nun den Befehl
terraform apply
aus und geben Sieyes
ein, um die Ressourcen zu erstellen.
8. Aufgabe 6: PSC-Endpunkt für den SQL-Datenbankanhang im Nutzerprojekt und Test-VM erstellen (Terraform)
Führen Sie diese Konfiguration im Nutzerprojekt aus.
- Kehren Sie zum Cloud Shell-Editor zurück, öffnen Sie das Verzeichnis terraform-consumer-psc und wählen Sie die Datei
psc.tf
aus. Fügen Sie der Datei den folgenden Terraform-Code hinzu. Dadurch werden eine statische interne IP-Adresse, ein PSC-Endpunkt und eine Test-VM mit installierter Maria DB erstellt.
resource "google_compute_address" "default" { name = "psc-ip-1" region = var.region_id address_type = "INTERNAL" subnetwork = google_compute_subnetwork.psc_subnet_ip.name address = "192.168.100.100" } resource "google_compute_forwarding_rule" "default" { name = "psc-sql-endpoint" region = var.region_id network = google_compute_network.default.name ip_address = google_compute_address.default.self_link load_balancing_scheme = "" target = var.psc_attachment_id } resource "google_compute_instance" "sql_test_vm" { name = "remote-sql-test-vm" machine_type = "e2-medium" zone = "${var.region_id}-b" project = var.project_id boot_disk { initialize_params { image = "debian-cloud/debian-11" } } network_interface { subnetwork = google_compute_subnetwork.vm_subnet_pc.name } # No external IP address network_performance_config { total_egress_bandwidth_tier = "DEFAULT" } tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"] # Install MariaDB at startup metadata_startup_script = <<EOF #!/bin/bash apt-get update apt-get install -y mariadb-server systemctl enable mariadb EOF }
- Wechseln Sie zurück zum Cloud Shell-Terminal, prüfen Sie, ob Sie sich im Verzeichnis terraform-consumer-psc
cd terraform-consumer-psc
im Verbraucherprojekt befinden, und führen Sie die folgenden Befehle aus.
terraform plan
Er generiert einen Ausführungsplan, der zeigt, welche Aktionen Terraform ausführen wird, um Ihre Infrastruktur bereitzustellen.
- Führen Sie nun den Befehl
terraform apply
aus, um die Ressourcen zu erstellen, und geben Sieyes
ein, um sie auszuführen.
9. Aufgabe 7: Endpunktverbindung von der VM über die PSC-IP-Adresse prüfen
Führen Sie diese Schritte im Nutzerprojekt aus.
- Rufen Sie VM-Instanz auf. Wählen Sie remote-sql-test-vm aus.
- Wählen Sie die Option SSH aus, um eine Verbindung zur VM herzustellen.
- Stellen Sie mit folgendem Befehl eine Verbindung zur Datenbank über den Endpunkt her:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
- Wenn die Verbindung hergestellt ist, erstellen Sie eine Datenbank mit der folgenden psc-sql-db.
CREATE DATABASE remotepscpsasqldb;
- Geben Sie zum Beenden der Verbindung „exit“ ein. Geben Sie noch einmal „exit“ ein, um die VM zu schließen.
10. Aufgabe 8: Datenbankeintrag prüfen
Führen Sie diese Überprüfung im Datenbankprojekt aus.
- Klicken Sie oben in der Console rechts neben dem Google Cloud-Symbol auf das Drop-down-Menü und wählen Sie den Tab Alle aus.
- Wählen Sie aus den aufgeführten Projekten die Projekt-ID Ihrer Datenbank aus, um fortzufahren.
- Rufen Sie SQL auf, wählen Sie die Datenbank psc-psa-sql-db aus, maximieren Sie die SQL-Optionen und wählen Sie Datenbanken aus. Sie sollten die von Ihnen gerade erstellte Datenbank remotepscpsasqldb von der VM des Nutzerprojekts und auch die localvpcsqldb von der VM des Datenbankprojekts sehen.**
.
**
11. Bereinigen
Führen Sie diese Schritte im Verbraucherprojekt aus.
- Wählen Sie die Nutzerprojekt-ID aus.
- Rufen Sie Cloud Shell auf und prüfen Sie, ob die Projekt-ID des Verbrauchers angezeigt wird.
- Rufen Sie das Verzeichnis terraform-consumer-psc auf
cd terraform-consumer-psc
und führen Sie den folgenden Befehl austerraform destroy
und geben Sieyes
ein. Alle Ressourcen, die Sie in Ihrem Verbraucherprojekt mit Terraform erstellt haben, werden entfernt.
Führen Sie diese Schritte im Datenbankprojekt aus.
- Datenbankprojekt-ID auswählen
- Rufen Sie Cloud Shell auf und prüfen Sie, ob die Datenbankprojekt-ID angezeigt wird.
- Rufen Sie das Verzeichnis terraform-db-psc auf
cd terraform-db-psc
und führen Sie den folgenden Befehl austerraform destroy
und geben Sieyes
ein. Die meisten Ressourcen, die Sie in Ihrem DB-Projekt mit Terraform erstellt haben, werden entfernt. Das Dienstnetzwerk kann möglicherweise nicht gelöscht werden und es wird ein Fehler ausgegeben. - Löschen Sie als Nächstes die folgenden Dateien aus dem Ordner terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
- Gehen Sie in der Console zu VPC-Netzwerke.
- Wählen Sie die VPC database-net und PRIVATE SERVICES ACCESS aus. Wählen Sie unter Allocated IP Ranges for Services (Zugewiesene IP-Bereiche für Dienste) die Option psa-range-database-net und dann Release aus.
- Wählen Sie als Nächstes VPC-NETZWERK-PEERING,servicenetworking-googleapis-com und dann die Option Löschen aus.
- Wählen Sie als Nächstes VPC-Netzwerk löschen
aus.
12. Glückwunsch
Sie haben eine Cloud SQL-Instanz mit PSA- und PSC-Anhängen konfiguriert und einen Private Service Connect-Endpunkt in einem anderen VPC erstellt.
Weitere Informationen
Weitere Informationen zu Private Service Connect und Cloud SQL
Weiteres Codelab zum Thema: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform