1. ภาพรวม
มีหลายตัวเลือกในการเชื่อมต่อกับอินสแตนซ์ Cloud SQL แบบส่วนตัวจากโปรเจ็กต์หรือ VPC อื่น Private Service Connect (PSC) ช่วยให้ผู้ผลิตบริการสามารถแสดงบริการของตนผ่านไฟล์แนบเกี่ยวกับบริการ ผู้ใช้สามารถใช้การเชื่อมต่อบริการเหล่านี้เพื่อสร้างปลายทาง PSC และ/หรือแบ็กเอนด์ PSC ในสภาพแวดล้อมของตนเอง และเชื่อมต่อกับบริการของผู้ผลิตเหล่านี้ผ่าน IP ส่วนตัวที่ระบุ
Cloud SQL มีความสามารถในการใช้ไฟล์แนบบริการ PSC เพื่ออนุญาตการเชื่อมต่อส่วนตัว ในแล็บนี้ คุณสามารถกำหนดค่าและทดสอบตัวเลือกได้
ในแล็บนี้ คุณจะได้สร้างสถาปัตยกรรมอย่างง่ายที่แสดงให้เห็นการใช้การเข้าถึงปลายทาง PSC กับ Cloud SQL
รูปที่ 1

สำหรับแล็บนี้ คุณจะต้องมี 2 โปรเจ็กต์หรือ VPC แยกกันในโปรเจ็กต์เดียวกัน
วัตถุประสงค์
ในแล็บนี้ คุณจะได้เรียนรู้วิธีทำงานต่อไปนี้
- สร้างอินสแตนซ์ CloudSQL ที่มีการแนบบริการ PSC
- สร้างที่อยู่ IP แบบคงที่
- สร้างปลายทาง PSC ใน VPC ของผู้ใช้เพื่อเชื่อมต่อกับฐานข้อมูล CloudSQL
- ยืนยันการเข้าถึงฐานข้อมูล SQL จาก VM ทดสอบในเครือข่ายของผู้บริโภคผ่าน IP ของปลายทาง PSC
2. การตั้งค่าและข้อกำหนด
การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก Google Cloud Console ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อเสร็จแล้ว คุณควรเห็นข้อความคล้ายกับตัวอย่างต่อไปนี้

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร
3. งานที่ 1 ตั้งค่าสภาพแวดล้อมสำหรับโปรเจ็กต์ฐานข้อมูลด้วย (Terraform)
ในโปรเจ็กต์ฐานข้อมูล เราจะสร้าง VPC ที่กำหนดเองพร้อมกฎไฟร์วอลล์และซับเน็ต เปิด Cloud Console แล้วเลือกโปรเจ็กต์ที่จะใช้สำหรับฐานข้อมูล
- เปิด Cloud Shell ที่ด้านบนของคอนโซลทางด้านขวา ตรวจสอบว่าคุณเห็นรหัสโปรเจ็กต์ของฐานข้อมูลสำหรับโปรเจ็กต์ฐานข้อมูลใน Cloud Shell ยืนยันข้อความแจ้งเพื่ออนุญาตการเข้าถึง

- สร้างโฟลเดอร์ชื่อ terraform-db แล้วย้ายไปที่โฟลเดอร์
mkdir terraform-db && cd terraform-db
- สร้างไฟล์ main.tf, variable.tf และ database.tf
touch main.tf variable.tf database.tf
- เปลี่ยนไปใช้มุมมองเครื่องมือแก้ไข Cloud Shell เลือกเอดิเตอร์ และตรวจสอบว่าคุณอนุญาตพรอมต์ที่จำเป็นเพื่อให้โหลดอินเทอร์เฟซได้
- เมื่อโหลดแล้ว ให้ไปที่ไฟล์ > เปิดโฟลเดอร์ แล้วไปที่ /home/your-user-name/terraform-db แล้วเลือกตกลงเพื่อเปิดโฟลเดอร์ในโปรแกรมแก้ไข

- เลือกไฟล์ 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 |
|
เพิ่มกฎไฟร์วอลล์ |
|
- คัดลอกและวางข้อมูลต่อไปนี้ลงในไฟล์ main .tf
resource "google_project_service" "default" {
for_each = toset([
"compute.googleapis.com",
"sqladmin.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_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"]
}
- กลับไปที่เทอร์มินัล Cloud Shell ตรวจสอบว่าคุณอยู่ในไดเรกทอรี terraform-db
cd terraform-dbแล้วเรียกใช้คำสั่งต่อไปนี้
terraform init
เริ่มต้นไดเรกทอรีการทำงาน ขั้นตอนนี้จะดาวน์โหลดผู้ให้บริการที่จำเป็นสำหรับการกำหนดค่าที่ระบุ
terraform plan
สร้างแผนการดำเนินการ ซึ่งแสดงการดำเนินการที่ Terraform จะใช้เพื่อทำให้โครงสร้างพื้นฐานใช้งานได้
- ตอนนี้หากต้องการสร้างทรัพยากร ให้เรียกใช้
terraform applyคำสั่งแล้วพิมพ์yesเพื่อเรียกใช้
4. งานที่ 2 สร้างอินสแตนซ์ Cloud SQL ด้วยการแนบ PSC (Terraform)
มาใช้ Terraform เพื่อสร้างอินสแตนซ์ Cloud SQL โดยใช้ตัวเลือก PSC เพื่ออนุญาตการเชื่อมต่อกัน ทำการกำหนดค่านี้ในโปรเจ็กต์ฐานข้อมูลให้เสร็จสมบูรณ์
- เปลี่ยนไปใช้มุมมองเครื่องมือแก้ไข Cloud Shell ตรวจสอบว่าคุณอยู่ในโฟลเดอร์
terraform-dbเลือกไฟล์database.tfแล้วเพิ่มข้อมูลต่อไปนี้
resource "google_sql_database_instance" "default" {
name = "psc-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 {
psc_config {
psc_enabled = true
allowed_consumer_projects = var.project_id_consumer
}
ipv4_enabled = false
}
}
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 ตอนนี้หากต้องการสร้างทรัพยากร ให้เรียกใช้
terraform applyคำสั่งแล้วพิมพ์yesเพื่อเรียกใช้ การสร้างอินสแตนซ์ CloudSQL ที่มีการแนบ PSC อาจใช้เวลาถึง 5 นาทีขึ้นไป
ยืนยันฐานข้อมูล
- หลังจากเสร็จสิ้น ให้ไปที่ SQL ในคอนโซล แล้วเลือกอินสแตนซ์ฐานข้อมูล psc-sql-db ที่สร้างขึ้นใหม่
- ทางด้านซ้าย ให้ขยายแถบเลื่อนตัวเลือก SQL และเลือกการเชื่อมต่อ
- คุณดูข้อมูลเกี่ยวกับการเชื่อมต่อได้ในแท็บสรุป
- คัดลอกที่อยู่ของ Service Attachment แล้วบันทึกไว้ที่ใดที่หนึ่งในระบบ
- คุณจะต้องใช้ข้อมูลนี้เพื่อทํางานที่ 3 ขั้นตอนที่ 8 ให้เสร็จสมบูรณ์

- ทางด้านซ้าย ให้ขยายแถบเลื่อนตัวเลือก SQL และเลือกผู้ใช้
- คุณควรเห็นผู้ใช้ชื่อ testsql ที่มีรหัสผ่าน cloudsql24 (ระบบจะใช้รหัสผ่านนี้เพื่อเข้าถึง db ในภายหลัง)
5. งานที่ 3 ตั้งค่าสภาพแวดล้อมสำหรับโปรเจ็กต์ของผู้บริโภค (Terraform)
ในโปรเจ็กต์ผู้ใช้ เราจะสร้าง VPC ที่กำหนดเองพร้อมกฎไฟร์วอลล์และซับเน็ต เปิด Cloud Console แล้วเลือกโปรเจ็กต์ที่จะใช้
- ที่ด้านบนของคอนโซลทางด้านขวาข้างไอคอน Google Cloud ให้คลิกเมนูแบบเลื่อนลง แล้วเลือกแท็บทั้งหมด


- เลือกรหัสโปรเจ็กต์ผู้ใช้จากโปรเจ็กต์ที่แสดงเพื่อดำเนินการต่อ
- เปิด Cloud Shell ที่ด้านบนของคอนโซลทางด้านขวา ตรวจสอบว่าคุณเห็นรหัสโปรเจ็กต์ผู้ใช้ใน Cloud Shell และยืนยันข้อความแจ้งเพื่ออนุญาตการเข้าถึง
- สร้างโฟลเดอร์ชื่อ terraform-consumer แล้วย้ายไปที่โฟลเดอร์
mkdir terraform-consumer && cd terraform-consumer
- สร้างไฟล์ main.tf, variable.tf และ psc.tf
touch main.tf variable.tf psc.tf
- เปลี่ยนไปใช้มุมมองโปรแกรมแก้ไข Cloud Shell สำหรับรหัสโปรเจ็กต์ของผู้ใช้ทั่วไป เลือกเอดิเตอร์ และตรวจสอบว่าคุณอนุญาตพรอมต์ที่จำเป็นเพื่อให้โหลดอินเทอร์เฟซได้
- เมื่อโหลดแล้ว ให้ไปที่ไฟล์ > เปิดโฟลเดอร์ แล้วไปที่ /home/your-user-name/terraform-consumer แล้วเลือกตกลงเพื่อเปิดโฟลเดอร์ในโปรแกรมแก้ไข

- เลือกไฟล์ variable.tf แล้วเพิ่มข้อมูลต่อไปนี้ แทนที่ข้อความ
your-consumer-project-id-hereด้วยรหัสโปรเจ็กต์ของผู้ใช้จริงในเครื่องหมายคำพูด แทนที่ข้อความyour-psc-attachment-id-hereด้วยที่อยู่การเชื่อมต่อ PSC ในเครื่องหมายคำพูด นี่คือรหัสที่คุณคัดลอกไว้ในส่วนงานที่ 2 ข้อ 2-5
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-net"
}
variable "region_id" {
type = string
default = "us-east1"
}
variable "region_id2" {
type = string
default = "us-central1"
}
- จากนั้นเปิดไฟล์ 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" {
name = "vm-subnet"
ip_cidr_range = "192.168.50.0/24"
region = var.region_id2
network = google_compute_network.default.name
project = var.project_id
}
resource "google_compute_subnetwork" "psc_subnet" {
name = "psc-subnet"
ip_cidr_range = "192.168.90.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_id2
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
cd terraform-consumerในโปรเจ็กต์ผู้บริโภค แล้วเรียกใช้คำสั่งต่อไปนี้
terraform init
เริ่มต้นไดเรกทอรีการทำงาน ขั้นตอนนี้จะดาวน์โหลดผู้ให้บริการที่จำเป็นสำหรับการกำหนดค่าที่ระบุ
terraform plan
สร้างแผนการดำเนินการ ซึ่งแสดงการดำเนินการที่ Terraform จะใช้เพื่อทำให้โครงสร้างพื้นฐานใช้งานได้
- ตอนนี้หากต้องการสร้างทรัพยากร ให้เรียกใช้
terraform applyคำสั่งแล้วพิมพ์yesเพื่อเรียกใช้
6. งานที่ 4 สร้างปลายทาง PSC เพื่อแนบกับ SQL DB ในโปรเจ็กต์ผู้บริโภคและ VM ทดสอบ (Terraform)
กำหนดค่านี้ให้เสร็จสมบูรณ์ในโปรเจ็กต์ของผู้บริโภค
- กลับไปที่โปรแกรมแก้ไข Cloud Shell เปิดไดเรกทอรี terraform-consumer แล้วเลือกไฟล์
psc.tfเพิ่มโค้ด Terraform ต่อไปนี้ลงในไฟล์ ซึ่งจะสร้าง IP ภายในแบบคงที่, ปลายทาง PSC และ VM ทดสอบที่ติดตั้ง Maria DB
resource "google_compute_address" "default" {
name = "psc-ip"
region = var.region_id
address_type = "INTERNAL"
subnetwork = google_compute_subnetwork.psc_subnet.name
address = "192.168.90.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 = "sql-test-vm"
machine_type = "e2-medium"
zone = "${var.region_id2}-b"
project = var.project_id
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
subnetwork = google_compute_subnetwork.vm_subnet.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
cd terraform-consumerในโปรเจ็กต์ผู้บริโภค แล้วเรียกใช้คำสั่งต่อไปนี้
terraform plan
สร้างแผนการดำเนินการ ซึ่งแสดงการดำเนินการที่ Terraform จะใช้เพื่อทำให้โครงสร้างพื้นฐานใช้งานได้
- ตอนนี้หากต้องการสร้างทรัพยากร ให้เรียกใช้คำสั่ง
terraform applyแล้วพิมพ์yesเพื่อเรียกใช้ - เนื่องจาก VM และปลายทางของเราอยู่ในภูมิภาคที่แตกต่างกัน เราจึงต้องเปิดใช้ การเข้าถึงทั่วโลกในปลายทาง PSC เราจะดำเนินการผ่านคอนโซล
- ในคอนโซลโปรเจ็กต์ของผู้บริโภค ให้ไปที่ Private Service Connect ในแท็บปลายทางที่เชื่อมต่อ ให้ดูในส่วนปลายทาง แล้วเลือก psc-sql-endpoint
- ตอนนี้ให้เลือกแก้ไข แล้วคลิกช่องทําเครื่องหมายข้างตัวเลือกเปิดใช้การเข้าถึงส่วนกลางและบันทึก

- ไปยังขั้นตอนถัดไปเพื่อยืนยันการเชื่อมต่อ
7. งานที่ 5 ยืนยันการเชื่อมต่อปลายทางจาก VM ผ่านที่อยู่ IP ของ PSC
ดำเนินการนี้ในโปรเจ็กต์ของผู้บริโภค
- ไปที่อินสแตนซ์ VM เลือก sql-test-vm
- เลือกตัวเลือก SSH เพื่อเชื่อมต่อกับ VM
- เชื่อมต่อกับ DB ผ่านปลายทางด้วยข้อมูลต่อไปนี้
mysql --host=192.168.90.100 --user=testsql --password=cloudsql24
- เมื่อสร้างการเชื่อมต่อแล้ว ให้สร้างฐานข้อมูลด้วย psc-sql-db ต่อไปนี้
CREATE DATABASE remotesqldb;
- เมื่อเสร็จแล้ว ให้พิมพ์ exit เพื่อออกจากการเชื่อมต่อ
8. งานที่ 6 ยืนยันรายการฐานข้อมูล
ทำการยืนยันนี้ให้เสร็จสมบูรณ์ในโปรเจ็กต์ฐานข้อมูล
- ที่ด้านบนของคอนโซลทางด้านขวาข้างไอคอน Google Cloud ให้คลิกเมนูแบบเลื่อนลง แล้วเลือกแท็บทั้งหมด


- จากโปรเจ็กต์ที่แสดง ให้เลือกรหัสโปรเจ็กต์ฐานข้อมูลเพื่อดำเนินการต่อ
- ไปที่ SQL เลือกฐานข้อมูล psc-sql-db ขยายตัวเลือก SQL แล้วเลือกฐานข้อมูล คุณควรเห็นฐานข้อมูลที่เพิ่งสร้างชื่อ remotesqldb จาก VM ของโปรเจ็กต์ผู้ใช้**
.**

9. ล้าง
ทําขั้นตอนนี้ในโปรเจ็กต์ฐานข้อมูล
- เลือกรหัสโปรเจ็กต์ฐานข้อมูล
- ไปที่ Cloud Shell และตรวจสอบว่าคุณเห็นรหัสโปรเจ็กต์ฐานข้อมูล
- ไปที่ไดเรกทอรี terraform-db
cd terraform-dbแล้วเรียกใช้คำสั่งต่อไปนี้terraform destroyและพิมพ์yesระบบจะนำทรัพยากรทั้งหมดที่คุณสร้างในโปรเจ็กต์ db ด้วย Terraform ออก
ดำเนินการนี้ในโปรเจ็กต์ของผู้บริโภค
- เลือกรหัสโปรเจ็กต์ผู้บริโภค
- ไปที่ Cloud Shell และตรวจสอบว่าคุณเห็นรหัสโปรเจ็กต์ผู้ใช้
- ไปที่ไดเรกทอรี terraform-consumer
cd terraform-consumerแล้วเรียกใช้คำสั่งต่อไปนี้terraform destroyและพิมพ์yesระบบจะนำทรัพยากรทั้งหมดที่คุณสร้างในโปรเจ็กต์ db ด้วย Terraform ออก
10. ขอแสดงความยินดี
ยินดีด้วย คุณกำหนดค่าอินสแตนซ์ Cloud SQL ด้วยการแนบ PSC และสร้างปลายทาง Private Service Connect ใน VPC อื่นเรียบร้อยแล้ว คุณเชื่อมต่อจาก VM ระยะไกลผ่านปลายทาง PSC ไปยังฐานข้อมูลได้สำเร็จ
ดูข้อมูลเพิ่มเติม
อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Private Service Connect และ Cloud SQL