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

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

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

2. สิ่งที่คุณจะสร้าง
คุณจะสร้างอินสแตนซ์ Cloud SQL PSC ที่ติดตั้งใช้งานเป็นผู้ให้บริการที่เชื่อมโยงกับ Looker PSC ในฐานะผู้ใช้บริการ
การดำเนินการต่อไปนี้จะตรวจสอบสิทธิ์เข้าถึงบริการ Producer
- สร้างปลายทาง 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 ของ Cloud การทำตาม 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. ระบุโปรเจ็กต์ PSC ของ Looker
การสร้างอินสแตนซ์ PSC ของ Cloud SQL ต้องระบุโปรเจ็กต์ PSC ที่อนุญาต ดังนั้นจึงต้องระบุโปรเจ็กต์ผู้เช่า PSC ของ Looker ในขณะที่สร้างอินสแตนซ์ Cloud SQL หรืออัปเดตหากใช้อินสแตนซ์ที่มีอยู่
ระบุโปรเจ็กต์ PSC ของ Looker โดยใช้ 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 ของผู้ผลิต
ในส่วนต่อไปนี้ คุณจะสร้างอินสแตนซ์ PSC ของ Cloud SQL ที่ใช้เพื่อวัตถุประสงค์ในการทดสอบซึ่งติดตั้งใช้งานด้วยรหัสผ่านที่กำหนดไว้ล่วงหน้าโดยระบุโปรเจ็กต์ PSC ของ Looker ในรายการโปรเจ็กต์ PSC ที่อนุญาต
การสร้าง PSC ของ Cloud SQL
สร้างอินสแตนซ์และเปิดใช้ Private Service Connect ภายใน Cloud Shell จากนั้นอัปเดต [INSTANCE_PROJECT] ด้วยรหัสโปรเจ็กต์ PSC ของ Looker
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
รับ Service Attachment ของ Cloud SQL
หลังจากสร้างอินสแตนซ์ Cloud SQL ที่เปิดใช้ Private Service Connect แล้ว ให้รับ URI ของ Service Attachment ที่ใช้ในขั้นตอนต่อๆ ไปเพื่อสร้างปลายทาง 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
คุณรับไฟล์แนบบริการ PSC ของ Cloud SQL ได้จาก 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 ของ PSC ของ Looker
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
ไปที่การเชื่อมต่อข้อมูล ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test
เมื่อเลือก "ทดสอบ" แล้ว Looker จะเชื่อมต่อกับฐานข้อมูล Postgres ตามที่ระบุไว้ด้านล่าง

ล้างข้อมูล
ลบคอมโพเนนต์ของ Lab จากเทอร์มินัล Cloud Shell เดียว
gcloud sql instances delete cloud-sql-psc-demo -q
11. ขอแสดงความยินดี
ยินดีด้วย คุณกำหนดค่าและตรวจสอบการเชื่อมต่อกับ PSC ของ Cloud SQL โดยใช้ 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 ที่เผยแพร่ทั้งหมด