1. บทนำ
ใน Codelab นี้ คุณจะได้ทำการเชื่อมต่อ Southbound กับ Cloud SQL ที่ใช้งานได้ด้วย Private Service Connect ในฐานะผู้ผลิตบริการ
Private Service Connect เป็นความสามารถของระบบเครือข่าย Google Cloud ที่ช่วยให้ผู้บริโภคเข้าถึงบริการที่มีการจัดการแบบส่วนตัวจากภายในเครือข่าย VPC ของตนเองได้ ในทำนองเดียวกัน ผู้ผลิตบริการที่มีการจัดการสามารถโฮสต์บริการเหล่านี้ในเครือข่าย VPC แยกต่างหากของตนเอง และเสนอการเชื่อมต่อส่วนตัวให้กับผู้บริโภคได้ ตัวอย่างเช่น เมื่อคุณใช้ Private Service Connect เพื่อเข้าถึง Looker คุณจะเป็นผู้บริโภคบริการ และ Google จะเป็นผู้ผลิตบริการ ดังที่ไฮไลต์ไว้ในรูปที่ 1

การเข้าถึง Southbound หรือที่เรียกว่า PSC แบบย้อนกลับ ช่วยให้ผู้บริโภคสร้างบริการที่เผยแพร่เป็นผู้ผลิตเพื่อให้ Looker เข้าถึงปลายทางภายในองค์กร ใน VPC, บริการที่มีการจัดการ และอินเทอร์เน็ตได้ การเชื่อมต่อ Southbound สามารถใช้งานได้ในทุกภูมิภาค ไม่ว่า Looker PSC จะใช้งานได้ที่ใด ดังที่ไฮไลต์ไว้ในรูปที่ 2

สิ่งที่คุณจะได้เรียนรู้
- สร้างบริการผู้ผลิตอินสแตนซ์ Cloud SQL ของ Private Service Connect
- สร้างปลายทาง Private Service Connect ใน Looker ในฐานะผู้บริโภคบริการ
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เจ้าของ
- อินสแตนซ์ Looker PSC ที่มีอยู่

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

4. การตั้งค่าและข้อกำหนด
การตั้งค่าสภาพแวดล้อมแบบทำตามคำแนะนำ
- ลงชื่อเข้าใช้ คอนโซล Google Cloud แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้อง สร้างบัญชี



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

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

เครื่องเสมือนนี้มาพร้อมกับเครื่องมือการพัฒนาทั้งหมดที่คุณจะต้องใช้ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่คงอยู่ และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ โดยไม่จำเป็นต้องติดตั้งสิ่งใด
5. ก่อนเริ่มต้น
เปิดใช้ API
ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์ไว้ใน Cloud Shell แล้ว
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
เปิดใช้บริการทั้งหมดที่จำเป็น
gcloud services enable compute.googleapis.com
6. ระบุโปรเจ็กต์ Looker PSC
การสร้างอินสแตนซ์ Cloud SQL PSC ต้องมีการระบุโปรเจ็กต์ psc ที่ได้รับอนุญาต ดังนั้นคุณต้องระบุโปรเจ็กต์ผู้เช่า Looker PSC ในขณะที่สร้างอินสแตนซ์ Cloud SQL หรืออัปเดตหากใช้โปรเจ็กต์ที่มีอยู่
กำหนดโปรเจ็กต์ Looker PSC โดยใช้ gcloud
ใน Cloud Shell ให้อัปเดต [INSTANCE_NAME] ด้วยชื่ออินสแตนซ์ Looker PSC เพื่อรับรหัสโปรเจ็กต์ Looker PSC
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
ในเอาต์พุตตัวอย่าง t7ec792caf2a609d1-tp คือโปรเจ็กต์ Looker PSC
gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
กำหนดโปรเจ็กต์ Looker PSC โดยใช้ Cloud Console
ใน Cloud Console ให้ไปที่
Looker → อินสแตนซ์ Looker PSC

7. สร้างอินสแตนซ์ Cloud SQL ของผู้ผลิต
ในส่วนต่อไปนี้ คุณจะได้สร้าง อินสแตนซ์ Cloud SQL PSC ที่ใช้เพื่อวัตถุประสงค์ในการทดสอบ ซึ่งใช้งานได้ด้วยรหัสผ่านที่กำหนดไว้ล่วงหน้า โดยระบุโปรเจ็กต์ Looker PSC ในรายการโปรเจ็กต์ psc ที่ได้รับอนุญาต
การสร้าง Cloud SQL PSC
ใน Cloud Shell ให้สร้างอินสแตนซ์และเปิดใช้ Private Service Connect โดยอัปเดต [INSTANCE_PROJECT] ด้วยรหัสโปรเจ็กต์ Looker PSC
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
ตัวอย่าง
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
รับไฟล์แนบบริการ Cloud SQL
หลังจากสร้างอินสแตนซ์ Cloud SQL ที่เปิดใช้ Private Service Connect แล้ว ให้รับ URI ของไฟล์แนบบริการที่ใช้ในขั้นตอนต่อๆ ไปเพื่อสร้างปลายทาง Private Service Connect ใน Looker
ใน Cloud Shell ให้ทำดังนี้
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
เอาต์พุตตัวอย่างจะสร้าง URI ของไฟล์แนบบริการ
projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
คุณสามารถรับไฟล์แนบบริการ Cloud SQL PSC ได้จาก Cloud Console โดยทำดังนี้
ใน Cloud Console ให้ไปที่
SQL → อินสแตนซ์ SQL → การเชื่อมต่อ

8. สร้างการเชื่อมต่อปลายทาง PSC ใน Looker
ในส่วนต่อไปนี้ คุณจะได้เชื่อมโยงไฟล์แนบบริการของผู้ผลิต Cloud SQL กับ Looker Core PSC โดยใช้แฟล็ก --psc-service-attachment ใน Cloud Shell สำหรับโดเมนเดียว
ใน Cloud Shell ให้สร้างการเชื่อมโยง psc โดยอัปเดตพารามิเตอร์ต่อไปนี้ให้ตรงกับสภาพแวดล้อมของคุณ
- INSTANCE_NAME: ชื่ออินสแตนซ์ Looker (Google Cloud Core)
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: URI ที่บันทึกไว้เมื่ออธิบายอินสแตนซ์ Cloud SQL PSC
- REGION: ภูมิภาคที่โฮสต์อินสแตนซ์ Looker (Google Cloud Core)
ใน Cloud Shell ให้ทำดังนี้
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
ตัวอย่าง
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1
ใน Cloud Shell ให้ตรวจสอบว่า connectionStatus ของ serviceAttachments เป็น "ACCEPTED" และอย่าลืมอัปเดตด้วย INSTANCE_NAME ของ Looker PSC
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
ตัวอย่าง
gcloud looker instances describe looker-psc-instance --region=$region --format=json
ตัวอย่าง
user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/project/locations/us-central1/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/project/global/networks/looker-psc-demo",
"projects/project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "sql.database1.com",
"targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-04T14:40:05.613026012Z"
}
ตรวจสอบปลายทาง PSC ใน Cloud Console
คุณสามารถตรวจสอบการเชื่อมต่อ PSC ได้จาก Cloud Console โดยทำดังนี้
ใน Cloud Console ให้ไปที่
Looker → อินสแตนซ์ Looker → รายละเอียด


9. ผสานรวม Looker PSC กับ Cloud SQL PSC
ในส่วนต่อไปนี้ คุณจะได้ใช้ Looker Console เพื่อสร้างการเชื่อมต่อฐานข้อมูลกับอินสแตนซ์ Cloud SQL PSC
ไปที่ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → เลือกเพิ่มการเชื่อมต่อ
กรอกรายละเอียดการเชื่อมต่อตามภาพหน้าจอด้านล่าง แล้วเลือกเชื่อมต่อ

ตอนนี้การเชื่อมต่อได้รับการกำหนดค่าแล้ว

10. ตรวจสอบการเชื่อมต่อ Looker
ในส่วนต่อไปนี้ คุณจะได้เรียนรู้วิธีตรวจสอบการเชื่อมต่อ Looker กับอินสแตนซ์ Cloud SQL PSC โดยใช้การดำเนินการ "ทดสอบ" ของ Looker
ไปที่การเชื่อมต่อข้อมูล ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → cloud-sql-psc-demo → ทดสอบ
เมื่อเลือกทดสอบแล้ว Looker จะเชื่อมต่อกับฐานข้อมูล postgres ดังที่ระบุไว้ด้านล่าง

ล้างข้อมูล
ลบคอมโพเนนต์ของ Lab จากเทอร์มินัล Cloud Shell เดียว
gcloud sql instances delete cloud-sql-psc-demo -q
11. ขอแสดงความยินดี
ขอแสดงความยินดี คุณกำหนดค่าและตรวจสอบการเชื่อมต่อกับ Cloud SQL PSC โดยใช้ Looker Console ที่ขับเคลื่อนโดย Private Service Connect ได้สำเร็จ
คุณได้สร้างอินสแตนซ์ Cloud SQL PSC เป็นบริการของผู้ผลิตและปลายทาง Looker PSC ที่อนุญาตการเชื่อมต่อกับบริการของผู้ผลิต
Cosmopup คิดว่า Codelab นั้นยอดเยี่ยม!!

สิ่งต่อไปที่ควรทำ
ลองดู Codelab ต่อไปนี้
- การใช้ Private Service Connect เพื่อเผยแพร่และใช้บริการ
- เชื่อมต่อกับบริการภายในองค์กรผ่านระบบเครือข่ายแบบไฮบริดโดยใช้ Private Service Connect และตัวจัดสรรภาระงาน TCP Proxy ภายใน
- การเข้าถึง Codelab Private Service Connect ที่เผยแพร่ทั้งหมด