1. סקירה כללית
יש כמה אפשרויות להתחבר למופע פרטי של Cloud SQL מפרויקט אחר או מרשת VPC אחרת. אתם יכולים להשתמש בגישה לשירותים פרטיים (PSA) כדי להגיע לכתובות ה-IP הפנימיות של Google ושירותי צד שלישי דרך חיבורים פרטיים. כדי להרחיב את הגישה למסד הנתונים, אפשר גם להפעיל Private Service Connect (PSC).
Private Service Connect (PSC) מאפשר לבעלי שירותים מנוהלים לחשוף את השירותים שלהם באמצעות קבצים מצורפים של שירותים, שצרכנים יכולים להשתמש בהם כדי ליצור נקודות קצה (endpoints) של PSC או קצוות עורפיים (backends) של PSC בסביבה שלהם. באמצעות נקודות הקצה האלה של PSC, הם יכולים להתחבר לשירותים של הבעלים דרך כתובת IP פרטית שהמשתמש מציין.
בשיעור ה-Lab הזה תוכלו להגדיר את האפשרות ולבדוק אותה.
בשיעור ה-Lab הזה תבנו ארכיטקטורה פשוטה שממחישה את השימוש ב-PSA ובגישה לנקודת קצה (endpoint) של PSC עם CloudSQL.
איור 1.

לשיעור ה-Lab הזה תצטרכו שני פרויקטים או שתי רשתות VPC נפרדות באותו פרויקט.
מטרות
בשיעור ה-Lab הזה תלמדו איך לבצע את המשימה הבאה:
- הפעלת Service Networking
- הגדרת PSA
- יצירת מכונה של Cloud SQL עם PSA
- מפעילים את PSC service attachment.
- יצירת נקודת קצה (endpoint) מסוג PSC ב-VPC של הלקוח כדי להתחבר למסד הנתונים של CloudSQL
- אימות הגישה למסד הנתונים של SQL ממכונות וירטואליות לבדיקה, גם ב-VPC של היצרן וגם ב-VPC של הצרכן
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות כתובת משלכם ולבדוק אם היא זמינה. אי אפשר לשנות את הערך הזה אחרי השלב הזה, והוא יישאר כזה למשך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-מסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. בסיום התהליך, אמור להופיע משהו כזה:

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את כל העבודה ב-codelab הזה בדפדפן. לא צריך להתקין שום דבר.
3. משימה 1: הגדרת סביבה לפרויקט מסד נתונים באמצעות Terraform
בפרויקט מסד הנתונים, נפעיל את Service Networking, ניצור VPC, ניצור טווח PSA, ניצור קישור בין רשתות שכנות של Service Networking וניצור כללי חומת אש. פותחים את מסוף Cloud ובוחרים את הפרויקט שבו ישמש מסד הנתונים.
- פותחים את Cloud Shell בפינה הימנית העליונה של המסוף, מוודאים שמוצג מזהה הפרויקט של מסד הנתונים ב-Cloud Shell ומאשרים את ההנחיות שמופיעות כדי לאפשר גישה.

- יוצרים תיקייה בשם terraform-db-psc ועוברים לתיקייה
mkdir terraform-db-psc && cd terraform-db-psc
- יוצרים קובץ main.tf, variable.tf, nat-vm.tf וקובץ database.tf.
touch main.tf variable.tf nat-vm.tf database.tf
- עוברים לתצוגה של Cloud Shell Editor. בוחרים באפשרות עורך ומוודאים שמאשרים את כל ההנחיות הנדרשות כדי שהממשק ייטען.
- אחרי הטעינה, עוברים אל File > Open Folder (קובץ > פתיחת תיקייה), אל /home/your-user-name/terraform-db-psc ולוחצים על Ok (אישור) כדי לפתוח את התיקייה בעורך.

- בוחרים את הקובץ variable.tf ומוסיפים את הקוד הבא. מחליפים את הטקסט
your-database-project-id-hereבמזהה פרויקט מסד הנתונים בפועל, בתוך מרכאות. מחליפים את הטקסטyour-consumer-project-id-hereבמזהה פרויקט הצרכן בפועל שלכם בתוך מרכאות.
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"
}
- לאחר מכן, פותחים את הקובץ main.tf. אנחנו נוסיף קוד Terraform כדי לבצע פעולות שונות, כמו שמוסבר בהמשך.
הפעלת ממשקי API |
|
יצירת VPC |
|
הוספת כללים לחומת האש |
|
יצירת טווח PSA |
|
יצירת שירות Peering |
|
- מעתיקים את הקוד הבא ומדביקים אותו בקובץ 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
}
- חוזרים אל הטרמינל של Cloud Shell, מוודאים שאתם בספרייה terraform-db-psc
cd terraform-db-pscומריצים את הפקודות הבאות:
terraform init
מאתחלת את ספריית העבודה. בשלב הזה מתבצעת הורדה של הספקים שנדרשים להגדרה הנתונה.
terraform plan
יוצרת תוכנית ביצוע שמראה אילו פעולות Terraform תבצע כדי לפרוס את התשתית.
- כדי ליצור את המשאבים, מריצים את הפקודה
terraform applyומקלידיםyesכדי להריץ.
4. משימה 2: יצירת מכונה של Cloud SQL עם PSA (Terraform)
נשתמש ב-Terraform כדי ליצור מופע CloudSQL עם אפשרות PSA כדי לאפשר קישוריות. משלימים את ההגדרה בפרויקט מסד הנתונים.
- עוברים לתצוגה של Cloud Shell Editor. מוודאים שאתם נמצאים בתיקייה
terraform-db-psc. בוחרים את הקובץdatabase.tfומוסיפים את השורות הבאות.
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
}
- חוזרים אל הטרמינל של Cloud Shell ומוודאים שאתם נמצאים בספרייה terraform-db-psc. כדי ליצור את המשאבים, מריצים את הפקודה
terraform applyומקלידיםyesכדי להריץ. יצירת מכונה של Cloud SQL עם PSA עשויה להימשך יותר מ-15 דקות.
אימות מסד הנתונים
- אחרי שהתהליך מסתיים, עוברים אל SQL במסוף ובוחרים את מופע מסד הנתונים psc-psa-sql-db שנוצר.
- בצד ימין, מרחיבים את האפשרויות של SQL ובוחרים באפשרות Connections (חיבורים).
- בכרטיסיית הסיכום אפשר לראות מידע על החיבור.
- מעתיקים את כתובת ה-IP הפנימית ושומרים אותה במקום כלשהו במערכת. כפי שאפשר לראות, היא הוקצתה מהטווח ששמרנו.
- תצטרכו את כתובת ה-IP הזו כדי להשלים את שלב 5 במשימה 3.

- בצד ימין, מרחיבים את החלונית הנפתחת של אפשרויות SQL ובוחרים באפשרות משתמשים.
- אמור להופיע משתמש בשם testsql עם הסיסמה cloudsql24 (הסיסמה הזו תשמש לגישה למסד הנתונים בהמשך)
5. משימה 3: יצירת מכונה וירטואלית לבדיקה וחיבור למכונת SQL מתוך פרויקט מסד הנתונים (Terraform)
נשתמש ב-Terraform כדי ליצור מכונה וירטואלית לבדיקה ושער NAT. משלימים את ההגדרה בפרויקט מסד הנתונים.
- עוברים לתצוגה של Cloud Shell Editor. מוודאים שאתם נמצאים בתיקייה
terraform-db-psc. בוחרים את הקובץnat-vm.tfומוסיפים את השורות הבאות.
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
}
- חוזרים אל הטרמינל של Cloud Shell ומוודאים שאתם בספרייה terraform-db-psc. כדי ליצור את המשאבים, מריצים את הפקודה
terraform plan, then terraform applyומקלידיםyesכדי להריץ. הפעולה הזו תיצור שער NAT ומכונה וירטואלית עם MariaDB מותקן.
אימות מסד הנתונים
משלימים את הפעולה הזו בפרויקט של הצרכן
- עוברים אל VM Instance. בוחרים באפשרות db-vm-test.
- בוחרים באפשרות SSH כדי להתחבר למכונה הווירטואלית.
- מתחברים למסד הנתונים באמצעות כתובת ה-IP המקומית שהעתקתם קודם, באמצעות הפקודה הבאה:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24
נ.ב. כדי להתחבר, צריך לשנות את כתובת ה-IP לכתובת ה-IP האמיתית שלכם.
- אחרי שיוצרים את החיבור, יוצרים מסד נתונים עם השם localvpcsqldb.
CREATE DATABASE localvpcsqldb;
- בסיום, מקלידים exit כדי לצאת מהחיבור. מקלידים exit שוב כדי לסגור את המכונה הווירטואלית.
6. משימה 4: הפעלת PSC במכונת CloudSQL
נשתמש בפקודות gcloud כדי להפעיל את האפשרות PSC ולאפשר קישוריות. משלימים את ההגדרה בפרויקט מסד הנתונים.
- עוברים לתצוגה של Cloud Shell.
- מריצים את הפקודה הבאה ב-Cloud Shell.
- מחליפים את
YOUR_DB_PROJECT_HEREבמזהה פרויקט מסד הנתונים. - מחליפים את
YOUR_CONSUMER_PROJECT_HEREבמזהה פרויקט הצרכן.
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
- הפעולה הזו תעדכן את מסד הנתונים הקיים עם חיבור PSC. התהליך יימשך זמן מה, יותר מ-10 דקות.
אם מופיעה שגיאת זמן קצוב לתפוגה בהמתנה, אמורה להופיע גם הפקודה להמשך הצגת ההתקדמות. לדוגמה: "You can continue waiting for the operation by running `gcloud beta sql operations wait –project "
שימו לב שאפשר לפרוס מסד נתונים חדש עם PSA ו-PSC מופעלים מההתחלה.
אימות מסד הנתונים
- אחרי שהתהליך מסתיים, עוברים אל SQL במסוף ובוחרים את מופע מסד הנתונים psc-psa-sql-db.
- בצד ימין, מרחיבים את האפשרויות של SQL ובוחרים באפשרות Connections (חיבורים).
- בכרטיסיית הסיכום אפשר לראות מידע על החיבור.
- מעתיקים את הכתובת של Service attachment ושומרים אותה במקום כלשהו במערכת.
- תצטרכו את זה כדי להשלים את המשימה הבאה 5 שלב 8.

7. משימה 5: הגדרת סביבה לפרויקט צרכן (Terraform)
בפרויקט הצרכן ניצור VPC מותאם אישית עם כללי חומת אש ותת-רשת. פותחים את Cloud Console ובוחרים את הפרויקט שבו רוצים להשתמש.
- בחלק העליון של המסוף, בצד שמאל של סמל Google Cloud, לוחצים על התפריט הנפתח ואז בוחרים בכרטיסייה all (הכול).


- מהרשימה של הפרויקטים, בוחרים את מזהה הפרויקט לצרכן כדי להמשיך.
- פותחים את Cloud Shell בפינה הימנית העליונה של המסוף, מוודאים שמופיע מזהה פרויקט הצרכן ב-Cloud Shell ומאשרים את כל ההנחיות למתן גישה.
- יוצרים תיקייה בשם terraform-consumer-psc ועוברים לתיקייה
mkdir terraform-consumer-psc && cd terraform-consumer-psc
- יוצרים קובץ main.tf, variable.tf וקובץ psc.tf.
touch main.tf variable.tf psc.tf
- עוברים לתצוגה של העורך של Cloud Shell בשביל מזהה פרויקט הצרכן. בוחרים באפשרות עורך ומוודאים שמאשרים את כל ההנחיות הנדרשות כדי שהממשק ייטען.
- אחרי שהקובץ נטען, עוברים אל File > Open Folder (קובץ > פתיחת תיקייה), עוברים אל /home/your-user-name/terraform-consumer-psc ולוחצים על Ok (אישור) כדי לפתוח את התיקייה בעורך.

- בוחרים את הקובץ variable.tf ומוסיפים את הקוד הבא. מחליפים את הטקסט
your-consumer-project-id-hereבמזהה הפרויקט בפועל של הלקוח בתוך מרכאות. מחליפים את הטקסטyour-psc-attachment-id-hereבכתובת של קובץ ה-PSC המצורף בתוך מרכאות. זה המזהה שהעתקתם במשימה 4, קטע 5-7
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"
}
- לאחר מכן, פותחים את הקובץ main.tf. אנחנו נוסיף קוד Terraform כדי לבצע פעולות שונות, כמו שמוסבר בהמשך.
הפעלת ממשקי API |
|
יצירת VPC |
|
יצירת שער NAT |
|
הוספת כללים לחומת האש |
|
- מעתיקים את הקוד הבא ומדביקים אותו בקובץ 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"]
}
- חוזרים אל הטרמינל של Cloud Shell, מוודאים שאתם בספרייה terraform-consumer-psc
cd terraform-consumer-pscבפרויקט הצרכן ומריצים את הפקודות הבאות:
terraform init
מאתחלת את ספריית העבודה. בשלב הזה מתבצעת הורדה של הספקים שנדרשים להגדרה הנתונה.
terraform plan
יוצרת תוכנית ביצוע שמראה אילו פעולות Terraform תבצע כדי לפרוס את התשתית.
- כדי ליצור את המשאבים, מריצים את הפקודה
terraform applyומקלידיםyesכדי להריץ.
8. משימה 6: יצירת נקודת הקצה של PSC לצירוף למסד נתונים של SQL בפרויקט הצרכן ובמכונה הווירטואלית לבדיקה (Terraform)
משלימים את ההגדרה בפרויקט הצרכן.
- חוזרים אל Cloud Shell Editor, פותחים את הספרייה terraform-consumer-psc ובוחרים את הקובץ
psc.tf. מוסיפים את קוד Terraform הבא לקובץ. הפעולה הזו יוצרת כתובת IP פנימית סטטית, נקודת קצה של PSC ומכונה וירטואלית לבדיקה עם Maria DB מותקן.
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
}
- חוזרים אל הטרמינל של Cloud Shell, מוודאים שאתם בספרייה terraform-consumer-psc
cd terraform-consumer-pscבפרויקט הצרכן ומריצים את הפקודות הבאות:
terraform plan
יוצרת תוכנית ביצוע שמראה אילו פעולות Terraform תבצע כדי לפרוס את התשתית.
- כדי ליצור את המשאבים, מריצים את הפקודה
terraform applyומקלידיםyesכדי להריץ
9. משימה 7: אימות הקישוריות של נקודת הקצה מ-VM באמצעות כתובת ה-IP של PSC
משלימים את הפעולה הזו בפרויקט של הצרכן
- עוברים אל VM Instance. בוחרים באפשרות remote-sql-test-vm.
- בוחרים באפשרות SSH כדי להתחבר למכונה הווירטואלית.
- מתחברים למסד הנתונים דרך נקודת הקצה באמצעות הפקודה הבאה:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
- אחרי שנוצר החיבור, יוצרים מסד נתונים עם שם psc-sql-db.
CREATE DATABASE remotepscpsasqldb;
- בסיום, מקלידים exit כדי לצאת מהחיבור. מקלידים exit שוב כדי לסגור את המכונה הווירטואלית.
10. משימה 8: אימות של רשומה במסד נתונים
צריך להשלים את האימות הזה בפרויקט מסד הנתונים
- בחלק העליון של המסוף, בצד שמאל של סמל Google Cloud, לוחצים על התפריט הנפתח ואז בוחרים בכרטיסייה all (הכול).


- מהרשימה של הפרויקטים, בוחרים את מזהה הפרויקט של מסד הנתונים כדי להמשיך.
- עוברים אל SQL, בוחרים במסד הנתונים psc-psa-sql-db, מרחיבים את האפשרויות של SQL ובוחרים באפשרות Databases (מסדי נתונים). אמור להופיע מסד הנתונים שיצרתם בשם remotepscpsasqldb מהמכונה הווירטואלית של פרויקט הצרכן וגם localvpcsqldb מהמכונה הווירטואלית של פרויקט מסד הנתונים**
.**

11. הסרת המשאבים
משלימים את הפעולה הזו בפרויקט של הצרכן
- בחירת מזהה פרויקט הצרכן
- עוברים אל Cloud Shell ומוודאים שמזהה פרויקט הלקוח מופיע.
- עוברים לספרייה terraform-consumer-psc
cd terraform-consumer-psc, מריצים את הפקודה הבאהterraform destroyומקלידיםyes. כל המשאבים שיצרתם בפרויקט הצרכן באמצעות Terraform יוסרו.
צריך להשלים את הפעולה הזו בפרויקט של מסד הנתונים
- בחירת מזהה פרויקט מסד הנתונים
- עוברים אל Cloud Shell ומוודאים שמזהה פרויקט מסד הנתונים מופיע.
- עוברים לספרייה terraform-db-psc
cd terraform-db-psc, מריצים את הפקודה הבאהterraform destroyומקלידיםyes. רוב המשאבים שיצרתם בפרויקט מסד הנתונים באמצעות Terraform יוסרו. יכול להיות שלא תהיה אפשרות למחוק את רשת השירות ותוצג שגיאה. - לאחר מכן מוחקים את הקבצים הבאים מהתיקייה terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
- במסוף, עוברים אל רשתות VPC.
- בוחרים את רשת ה-VPC database-net, בוחרים באפשרות גישה לשירותים פרטיים, בקטע Allocated IP Ranges for Services, בוחרים באפשרות psa-range-database-net ובוחרים באפשרות Release.

- לאחר מכן בוחרים באפשרות VPC NETWORK PEERING (קישור בין רשתות VPC), בוחרים באפשרות servicenetworking-googleapis-com ולוחצים על Delete (מחיקה).

- לאחר מכן בוחרים באפשרות מחיקת רשת VPC

12. מזל טוב
סיימתם להגדיר בהצלחה מופע Cloud SQL עם PSA וצירוף PSC, ויצרתם נקודת קצה של Private Service Connect בענן וירטואלי פרטי (VPC) אחר.
מידע נוסף
מידע נוסף על Private Service Connect ו-Cloud SQL
Codelab קשור נוסף: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform