1. Übersicht
Es gibt mehrere Möglichkeiten, eine Verbindung zu einer privaten Cloud SQL-Instanz aus einem anderen Projekt oder VPC-Netzwerk herzustellen. Mit dem Zugriff auf private Dienste (Private Services Access, PSA) können Sie die internen IP-Adressen von Google- und Drittanbieterdiensten über private Verbindungen erreichen. Um den Zugriff auf die Datenbank zu erweitern, können Sie jetzt auch Private Service Connect (PSC) aktivieren.
Mit Private Service Connect (PSC) können Dienstersteller ihre Dienste über Dienstanhänge bereitstellen, die Nutzer verwenden können, um PSC-Endpunkte und/oder PSC-Backends in ihrer Umgebung zu erstellen. Ü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 von PSA- und PSC-Endpunktzugriff mit Cloud SQL veranschaulicht.
Abbildung 1:

Für dieses Lab benötigen Sie zwei Projekte oder separate VPCs im selben Projekt.
Ziele
Aufgaben in diesem Lab:
- Service Networking aktivieren
- PSA einrichten
- Cloud SQL-Instanz mit PSA erstellen
- Aktivieren Sie den PSC-Dienstanhang.
- PSC-Endpunkt in der Consumer-VPC erstellen, um eine Verbindung zur CloudSQL-Datenbank herzustellen
- Zugriff auf die SQL-Datenbank von Test-VMs in den VPCs des Erstellers und des Nutzers prüfen
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- 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 eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er 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
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, 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 Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

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 in 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 eine VPC, erstellen einen PSA-Bereich, erstellen ein Dienstnetzwerk-Peering und erstellen 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 Konsole. Prüfen Sie, ob die Projekt-ID der Datenbank für das Datenbankprojekt in Cloud Shell angezeigt wird. Bestätigen Sie alle Aufforderungen, den Zugriff zu erlauben.

- Erstellen Sie einen Ordner mit dem Namen terraform-db-psc und wechseln Sie 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 bestätigen Sie alle erforderlichen Aufforderungen, damit die Benutzeroberfläche geladen werden kann.
- Rufen Sie nach dem Laden Datei > Ordner öffnen auf, wechseln Sie zu /home/your-user-name/terraform-db-psc 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-database-project-id-heredurch die ID Ihres tatsächlichen Datenbankprojekts in Anführungszeichen. Ersetzen Sie den Textyour-consumer-project-id-heredurch die ID Ihres tatsächlichen 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 nun Terraform-Code hinzu, um verschiedene Aktionen auszuführen, wie unten beschrieben.
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 befinden
cd terraform-db-pscund führen Sie die folgenden Befehle aus.
terraform init
Initialisiert das Arbeitsverzeichnis. In diesem Schritt werden die für die angegebene Konfiguration erforderlichen Anbieter heruntergeladen.
terraform plan
Erstellt einen Ausführungsplan, der zeigt, welche Aktionen Terraform zum Bereitstellen Ihrer Infrastruktur ausführt.
- Führen Sie nun den Befehl
terraform applyaus und geben Sieyesein, um die Ressourcen zu erstellen.
4. Aufgabe 2: Cloud SQL-Instanz mit privater IP-Adresse erstellen (Terraform)
Wir erstellen mit Terraform eine Cloud SQL-Instanz mit der PSA-Option, um die Verbindung zu ermöglichen. Schließen Sie diese Konfiguration im Datenbankprojekt ab.
- Wechseln Sie zur Ansicht Cloud Shell-Editor. Sie müssen sich im Ordner
terraform-db-pscbefinden. Wählen Sie die Dateidatabase.tfaus 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
}
- Wechseln Sie zurück zum Cloud Shell-Terminal und prüfen Sie,ob Sie sich im Verzeichnis terraform-db-psc befinden. Führen Sie nun den Befehl
terraform applyaus und geben Sieyesein, um die Ressourcen zu erstellen. Das Erstellen der Cloud SQL-Instanz mit PSA kann bis zu 15 Minuten oder länger dauern.
Datenbank prüfen
- Rufen Sie nach Abschluss des Vorgangs in der Konsole SQL auf und wählen Sie die neu erstellte Datenbankinstanz psc-psa-sql-db aus.
- Erweitern Sie auf der linken Seite das Einblendmenü mit den SQL-Optionen und wählen Sie Verbindungen aus.
- Auf dem Tab „Zusammenfassung“ finden Sie Informationen zur Verbindung.
- Kopieren Sie die interne IP-Adresse und speichern Sie sie auf Ihrem System. Wie Sie sehen, wurde die IP-Adresse aus dem von uns reservierten Bereich zugewiesen.
- Sie benötigen diese IP-Adresse für Aufgabe 3, Schritt 5.

- Maximieren Sie auf der linken Seite das Einblendmenü für SQL-Optionen und wählen Sie Nutzer aus.
- Sie sollten einen Nutzer namens testsql mit dem Passwort cloudsql24 sehen. (Dieses wird später für den Zugriff auf die Datenbank verwendet.)
5. Aufgabe 3: Test-VM erstellen und über das Datenbankprojekt (Terraform) eine Verbindung zur SQL-Instanz herstellen
Wir erstellen eine Test-VM und ein NAT-Gateway mit Terraform. Schließen Sie diese Konfiguration im Datenbankprojekt ab.
- Wechseln Sie zur Ansicht Cloud Shell-Editor. Sie müssen sich im Ordner
terraform-db-pscbefinden. Wählen Sie die Dateinat-vm.tfaus 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
}
- Wechseln Sie zurück zum Cloud Shell-Terminal und prüfen Sie,ob Sie sich im Verzeichnis terraform-db-psc befinden. Führen Sie nun den Befehl
terraform plan, then terraform applyaus und geben Sieyesein, um die Ressourcen zu erstellen. Dadurch werden ein NAT-Gateway und eine VM mit installierter MariaDB erstellt.
Datenbank prüfen
Im Nutzerprojekt ausführen
- Rufen Sie die Seite VM-Instanzen auf. Wählen Sie db-vm-test aus.
- Wählen Sie die Option SSH aus, um eine Verbindung zur VM herzustellen.
- Stellen Sie mit der lokalen IP-Adresse, die Sie zuvor kopiert haben, mit dem folgenden Befehl eine Verbindung zur Datenbank her:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24
p.s Change the IP address to your actual IP for it to connect.
- Wenn die Verbindung hergestellt ist, erstellen Sie eine Datenbank mit dem folgenden Namen: localvpcsqldb.
CREATE DATABASE localvpcsqldb;
- Geben Sie nach Abschluss „exit“ ein, um die Verbindung zu beenden. Geben Sie noch einmal „exit“ ein, um die VM zu schließen.
6. Aufgabe 4: PSC für die Cloud SQL-Instanz aktivieren
Wir verwenden gcloud-Befehle, um die PSC-Option zu aktivieren und so die Konnektivität zu ermöglichen. Schließen Sie diese Konfiguration im Datenbankprojekt ab.
- Wechseln Sie zur Ansicht Cloud Shell.
- Führen Sie in Cloud Shell den folgenden Befehl aus.
- Ersetzen Sie
YOUR_DB_PROJECT_HEREdurch die ID des Datenbankprojekts. - Ersetzen Sie
YOUR_CONSUMER_PROJECT_HEREdurch die ID des Nutzerprojekts.
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 der PSC-Anlage aktualisiert. Das dauert eine Weile (mindestens 10 Minuten).
Wenn Sie einen Zeitüberschreitungsfehler erhalten, sollte auch der Befehl angezeigt werden, mit dem Sie den Fortschritt weiter verfolgen können. Etwa so: "Sie können weiterhin auf den Abschluss des Vorgangs warten, indem Sie `gcloud beta sql operations wait –project ausführen.“
Sie können eine neue Datenbank mit aktiviertem PSA und PSC von Anfang an bereitstellen.
Datenbank prüfen
- Rufen Sie nach Abschluss in der Konsole SQL auf und wählen Sie die Datenbankinstanz psc-psa-sql-db aus.
- Erweitern Sie auf der linken Seite das Einblendmenü mit den SQL-Optionen und wählen Sie Verbindungen aus.
- Auf dem Tab „Zusammenfassung“ finden Sie Informationen zur Verbindung.
- Kopieren Sie die Adresse des Service Attachment und speichern Sie sie auf Ihrem System.
- Sie benötigen sie für die nächste Aufgabe 5, Schritt 8.

7. Aufgabe 5: Umgebung für das 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 dann den Tab Alle aus.


- Wählen Sie aus den aufgeführten Projekten die ID Ihres Verbraucherprojekts aus, um fortzufahren.
- Öffnen Sie Cloud Shell oben rechts in der Konsole. Achten Sie darauf, dass die Consumer-Projekt-ID in Cloud Shell angezeigt wird, und bestätigen Sie alle Aufforderungen, den Zugriff zuzulassen.
- Erstellen Sie einen Ordner mit dem Namen terraform-consumer-psc und wechseln Sie zu diesem 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 bestätigen Sie alle erforderlichen Aufforderungen, damit die Benutzeroberfläche geladen werden kann.
- Rufen Sie nach dem Laden Datei > Ordner öffnen auf, wechseln Sie zu /home/your-user-name/terraform-consumer-psc 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-heredurch Ihre tatsächliche Consumer-Projekt-ID in Anführungszeichen. Ersetzen Sie den Textyour-psc-attachment-id-heredurch die Adresse der PSC-Anhängung in Anführungszeichen. Das 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 nun Terraform-Code hinzu, um verschiedene Aktionen auszuführen, wie unten beschrieben.
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 und prüfen Sie, ob Sie sich im Verzeichnis terraform-consumer-psc
cd terraform-consumer-pscim Consumer-Projekt befinden. Führen Sie dann die folgenden Befehle aus:
terraform init
Initialisiert das Arbeitsverzeichnis. In diesem Schritt werden die für die angegebene Konfiguration erforderlichen Anbieter heruntergeladen.
terraform plan
Erstellt einen Ausführungsplan, der zeigt, welche Aktionen Terraform zum Bereitstellen Ihrer Infrastruktur ausführt.
- Führen Sie nun den Befehl
terraform applyaus und geben Sieyesein, um die Ressourcen zu erstellen.
8. Aufgabe 6: PSC-Endpunkt für SQL-DB-Anhang im Nutzerprojekt und Test-VM erstellen (Terraform)
Führen Sie diese Konfiguration im Nutzerprojekt aus.
- Wechseln Sie zurück zum Cloud Shell-Editor, öffnen Sie das Verzeichnis terraform-consumer-psc und wählen Sie die Datei
psc.tfaus. 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 MariaDB 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 und prüfen Sie, ob Sie sich im Verzeichnis terraform-consumer-psc
cd terraform-consumer-pscim Consumer-Projekt befinden. Führen Sie dann die folgenden Befehle aus:
terraform plan
Erstellt einen Ausführungsplan, der zeigt, welche Aktionen Terraform zum Bereitstellen Ihrer Infrastruktur ausführt.
- Führen Sie nun den Befehl
terraform applyaus, um die Ressourcen zu erstellen, und geben Sieyesein, um den Befehl auszuführen.
9. Aufgabe 7: Endpunktverbindung von der VM über die PSC-IP-Adresse prüfen
Im Nutzerprojekt ausführen
- Rufen Sie die Seite VM-Instanzen 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 eine Verbindung zur Datenbank über den Endpunkt her:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
- Nachdem die Verbindung hergestellt wurde, erstellen wir eine Datenbank mit dem Namen psc-sql-db.
CREATE DATABASE remotepscpsasqldb;
- Geben Sie nach Abschluss „exit“ ein, um die Verbindung zu beenden. Geben Sie noch einmal „exit“ ein, um die VM zu schließen.
10. Aufgabe 8: Datenbankeintrag prüfen
Führen Sie diese Bestätigung im Datenbankprojekt aus.
- Klicken Sie oben in der Console rechts neben dem Google Cloud-Symbol auf das Drop-down-Menü und wählen Sie dann den Tab Alle aus.


- Wählen Sie in der Liste der Projekte die Projekt-ID Ihres Datenbankprojekts 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 Databases (Datenbanken) aus. Sie sollten die gerade erstellte Datenbank mit dem Namen remotepscpsasqldb in der VM des Consumer-Projekts und localvpcsqldb in der VM des Datenbankprojekts sehen.**
.**

11. Bereinigen
Im Nutzerprojekt ausführen
- Nutzerprojekt-ID auswählen
- Rufen Sie Cloud Shell auf und prüfen Sie, ob die Projekt-ID des Consumer-Projekts angezeigt wird.
- Wechseln Sie zum Verzeichnis terraform-consumer-psc
cd terraform-consumer-pscund führen Sie den folgenden Befehl austerraform destroy. Geben Sieyesein. Alle Ressourcen, die Sie in Ihrem Consumer-Projekt mit Terraform erstellt haben, werden entfernt.
Im Datenbankprojekt ausführen
- Datenbankprojekt-ID auswählen
- Rufen Sie die Cloud Shell auf und prüfen Sie, ob die Projekt-ID der Datenbank angezeigt wird.
- Wechseln Sie zum Verzeichnis terraform-db-psc
cd terraform-db-pscund führen Sie den folgenden Befehl austerraform destroy. Geben Sieyesein. Die meisten Ressourcen, die Sie in Ihrem Datenbankprojekt mit Terraform erstellt haben, werden entfernt. Das Service Networking kann möglicherweise nicht gelöscht werden und es wird ein Fehler ausgegeben. - Löschen Sie als Nächstes die folgenden Dateien aus dem terraform-db-psc-Ordner.
rm -r terraform.tfstate terraform.tfstate.backup
- Rufen Sie in der Console VPC-Netzwerke auf.
- Wählen Sie die VPC database-net und dann ZUGRIFF AUF PRIVATE DIENSTE aus. Wählen Sie unter Zugewiesene IP-Bereiche für Dienste den Bereich psa-range-database-net und dann die Option Freigeben aus.

- Wählen Sie als Nächstes VPC-NETZWERK-PEERING und dann servicenetworking-googleapis-com aus und klicken Sie auf Löschen.

- Wählen Sie dann VPC-Netzwerk löschen
aus.
12. Glückwunsch
Sie haben eine Cloud SQL-Instanz mit PSA- und PSC-Anhang konfiguriert und einen Private Service Connect-Endpunkt in einem anderen VPC erstellt.
Weitere Informationen
Weitere Informationen zu Private Service Connect und Cloud SQL
Anderes zugehöriges Codelab: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform