1. סקירה כללית
יש כמה אפשרויות להתחבר למכונה פרטית של Cloud SQL מפרויקט אחר או מרשת VPC אחרת. אפשר להשתמש בגישה לשירותים פרטיים (PSA) כדי להגיע לכתובות ה-IP הפנימיות של Google ושל שירותי צד שלישי דרך חיבורים פרטיים. כדי להרחיב את הגישה למסד הנתונים, מעכשיו אפשר גם להפעיל את Private Service Connect (PSC).
Private Service Connect (PSC) מאפשר ליוצרים של שירותים לחשוף את השירותים שלהם באמצעות קבצים מצורפים לשירות. צרכנים יכולים להשתמש בקבצים האלה כדי ליצור נקודות קצה (endpoints) של PSC ו/או קצוות עורפיים (back-ends) של PSC בסביבה שלהם. דרך נקודות הקצה האלה של PSC, הם יכולים להתחבר לשירותי הבעלים באמצעות כתובת IP פרטית שצוינה על ידי המשתמש.
בשיעור ה-Lab הזה תוכלו להגדיר ולבדוק את האפשרות הזו.
במעבדה הזו תלמדו איך ליצור ארכיטקטורה פשוטה שממחישה את השימוש בגישה לנקודות קצה מסוג PSA ו-PSC באמצעות CloudSQL.
איור 1.
בשיעור ה-Lab הזה תצטרכו שני פרויקטים או רשתות VPC נפרדות באותו פרויקט.
מטרות
בשיעור ה-Lab הזה תלמדו איך לבצע את המשימה הבאה:
- הפעלת Service Networking
- הגדרת PSA
- יצירת מכונה של CloudSQL באמצעות PSA
- מפעילים את הצירוף של השירות ל-PSC.
- יצירת נקודת קצה מסוג PSC ב-VPC של הצרכן כדי להתחבר למסד הנתונים של CloudSQL
- אימות הגישה למסד הנתונים של SQL ממכונות וירטואליות לבדיקה, גם ב-VPC של היצרן וגם ב-VPC של הצרכן
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או משתמשים מחדש בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
- שם הפרויקט הוא השם המוצג של המשתתפים בפרויקט. זוהי מחרוזת תווים שלא משמשת את Google APIs. תמיד אפשר לעדכן אותו.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שמגדירים אותו. מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי. בדרך כלל לא משנה מה המחרוזת הזו. ברוב ה-codelabs תצטרכו להפנות למזהה הפרויקט (בדרך כלל מזהים אותו בתור
PROJECT_ID
). אם המזהה שנוצר לא מוצא חן בעיניכם, תוכלו ליצור מזהה אקראי אחר. לחלופין, אפשר לנסות כתובת משלכם ולבדוק אם היא זמינה. לא ניתן לשנות את השם אחרי השלב הזה, והוא יישאר למשך כל תקופת הפרויקט. - לידיעתך, יש ערך שלישי, מספר פרויקט, שמשתמשים בו בחלק מממשקי ה-API. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי העזרה.
- בשלב הבא, כדי להשתמש במשאבים או ב-API של Cloud, תצטרכו להפעיל את החיוב במסוף Cloud. השלמת הקודלאב הזה לא תעלה הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים אחרי סיום המדריך, אפשר למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים להשתתף בתוכנית תקופת ניסיון בחינם בסך 300$.
הפעלת Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל בסדנת הקוד הזו נשתמש ב-Google Cloud Shell, סביבת שורת פקודה שפועלת ב-Cloud.
במסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:
תהליך ההקצאה והחיבור לסביבת העבודה אמור להימשך רק כמה רגעים. בסיום, אמור להופיע משהו כזה:
המכונה הווירטואלית הזו כוללת את כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, משפרת מאוד את ביצועי הרשת ואת האימות. אתם יכולים לבצע את כל העבודה בקודלאב הזה בדפדפן. אין צורך להתקין שום דבר.
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. בוחרים באפשרות 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 |
|
יצירת קישור שכנות |
|
- מעתיקים ומדביקים את הקוד הבא בקובץ 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, מוודאים שנמצאים בספרייה
cd terraform-db-psc
terraform-db-psc ומריצים את הפקודות הבאות:
terraform init
אתחול ספריית העבודה. בשלב הזה מתבצעת הורדה של הספקים הנדרשים להגדרה הנתונה.
terraform plan
יצירת תוכנית ביצוע שמציגה את הפעולות ש-Terraform תבצע כדי לפרוס את התשתית.
- עכשיו, כדי ליצור את המשאבים, מריצים את הפקודה
terraform apply
ומקלידיםyes
כדי להריץ אותה.
4. משימה 2: יצירת מכונה של CloudSQL באמצעות 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
כדי להריץ אותה. יצירת המכונה של CloudSQL באמצעות 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.
- מחליפים את Ensure
YOUR_DB_PROJECT_HERE
במזהה הפרויקט של מסד הנתונים. - מחליפים את Ensure
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 ושומרים אותה במקום כלשהו במערכת.
- תצטרך את זה כדי להשלים את המשימה הבאה, שלב 8 במטלה 5.
7. משימה 5: הגדרת הסביבה לפרויקט הצרכן (Terraform)
בפרויקט של הצרכן,נוצר VPC מותאם אישית עם כללי חומת אש ותת-רשת. פותחים את מסוף Cloud ובוחרים את הפרויקט שבו רוצים להשתמש.
- בחלק העליון של המסוף, בצד שמאל ליד הסמל של 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 עבור מזהה הפרויקט של הצרכן. בוחרים באפשרות editor (עריכה) ומוודאים שמאשרים את כל ההנחיות הנדרשות כדי שהממשק יוכל לטעון.
- אחרי הטעינה, עוברים אל קובץ > פתיחת תיקייה, עוברים אל /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, מוודאים שנמצאים בספרייה
cd terraform-consumer-psc
terraform-consumer-psc בפרויקט של הצרכן ומריצים את הפקודות הבאות:
terraform init
אתחול ספריית העבודה. בשלב הזה מתבצעת הורדה של הספקים הנדרשים להגדרה הנתונה.
terraform plan
יצירת תוכנית ביצוע שמציגה את הפעולות ש-Terraform תבצע כדי לפרוס את התשתית.
- עכשיו, כדי ליצור את המשאבים, מריצים את הפקודה
terraform apply
ומקלידיםyes
כדי להריץ אותה.
8. משימה 6: יצירת נקודת הקצה של PSC לקובץ המצורף של מסד הנתונים של SQL בפרויקט של הצרכן ובמכונה הווירטואלית לבדיקה (Terraform)
משלימים את ההגדרה הזו בפרויקט של הצרכן.
- חוזרים לעורך של Cloud Shell, פותחים את הספרייה terraform-consumer-psc ובוחרים את הקובץ
psc.tf
. מוסיפים לקובץ את הקוד הבא של Terraform. כך נוצרת כתובת IP פנימית סטטית, נקודת קצה מסוג PSC ומכונה וירטואלית לבדיקה עם MariaDB מותקן.
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, מוודאים שנמצאים בספרייה
cd terraform-consumer-psc
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 יוסרו.
מבצעים את הפעולה הזו בפרויקט Database
- בוחרים את מזהה הפרויקט של מסד הנתונים.
- נכנסים ל-Cloud Shell ומוודאים שמופיע מזהה הפרויקט של מסד הנתונים.
- עוברים לספרייה terraform-db-psc
cd terraform-db-psc
ומריצים את הפקודה הבאהterraform destroy
ומקלידיםyes
. רוב המשאבים שיצרתם בפרויקט ה-DB באמצעות Terraform יוסרו. יכול להיות שהרשת של השירות לא תימחק ותופיע שגיאה. - לאחר מכן, מוחקים את הקבצים הבאים מהתיקייה terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
- לאחר מכן, עוברים למסוף אל VPC networks.
- בוחרים את VPC של database-net, בוחרים באפשרות PRIVATE SERVICES ACCESS, בקטע Allocated IP Ranges for Services בוחרים את psa-range-database-net ובוחרים באפשרות Release.
- לאחר מכן בוחרים באפשרות VPC NETWORK PEERING,בוחרים ב-servicenetworking-googleapis-com ובוחרים באפשרות Delete.
- לאחר מכן בוחרים באפשרות Delete VPC network (מחיקת רשת ה-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