1. บทนำ
ในโค้ดแล็บนี้ คุณจะทำการเชื่อมต่อไปทางใต้กับ Cloud SQL ที่ติดตั้งใช้งานด้วย Private Service Connect ในฐานะผู้ผลิตบริการ
Private Service Connect เป็นความสามารถของเครือข่าย Google Cloud ที่ช่วยให้ผู้บริโภคเข้าถึงบริการที่มีการจัดการแบบส่วนตัวได้จากภายในเครือข่าย VPC ในทำนองเดียวกัน ฟีเจอร์นี้ยังช่วยให้ผู้ผลิตบริการที่มีการจัดการโฮสต์บริการเหล่านี้ในเครือข่าย VPC แยกต่างหากของตนเองและมอบการเชื่อมต่อส่วนตัวแก่ผู้บริโภคได้ ตัวอย่างเช่น เมื่อคุณใช้ Private Service Connect เพื่อเข้าถึง Looker แสดงว่าคุณเป็นผู้บริโภคบริการ และ Google เป็นผู้ให้บริการ ดังที่ไฮไลต์ในรูปที่ 1
การเข้าถึงจากฝั่งเซาท์หรือที่เรียกว่า PSC แบบย้อนกลับช่วยให้ผู้บริโภคสร้างบริการที่เผยแพร่ในฐานะผู้ผลิตได้ เพื่ออนุญาตให้ Looker เข้าถึงอุปกรณ์ปลายทางในองค์กร ใน VPC, บริการที่มีการจัดการ และอินเทอร์เน็ต การเชื่อมต่อขาลงสามารถใช้งานได้ในทุกภูมิภาค ไม่ว่าจะติดตั้งใช้งาน Looker PSC ไว้ที่ใดก็ตาม ดังที่ไฮไลต์ไว้ในรูปที่ 2
สิ่งที่จะได้เรียนรู้
- สร้างบริการผู้ผลิตอินสแตนซ์ Cloud SQL ของ Private Service Connect
- สร้างปลายทาง Private Service Connect ใน Looker ในฐานะผู้บริโภคบริการ
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์ระดับเจ้าของ
- อินสแตนซ์ PSC ของ Looker ที่มีอยู่
2. สิ่งที่คุณจะสร้าง
คุณจะต้องสร้างอินสแตนซ์ PSC ของ Cloud SQL ที่ทํางานเป็น Service Producer ซึ่งเชื่อมโยงกับ PSC ของ Looker ในฐานะ Service Consumer
การดำเนินการต่อไปนี้จะตรวจสอบสิทธิ์เข้าถึงบริการของผู้ผลิต
- สร้างปลายทาง PSC ใน Looker ที่เชื่อมโยงกับไฟล์แนบบริการของผู้ผลิต
- ใช้คอนโซล Looker เพื่อสร้างการเชื่อมต่อฐานข้อมูลกับ PSC ของ Cloud SQL
- ทดสอบการเชื่อมต่อกับ PSC ของ Cloud SQL โดยการตรวจสอบสิทธิ์และเข้าถึงรูปแบบที่กำหนดไว้ล่วงหน้า
3. โทโพโลยีของ Codelab
4. การตั้งค่าและข้อกําหนด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะต้องไม่ซ้ำกันสำหรับโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงชื่อหลังจากขั้นตอนนี้ไม่ได้ และชื่อนี้จะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่ม Cloud Shell
แม้ว่า Google Cloud จะทำงานจากระยะไกลจากแล็ปท็อปได้ แต่ในโค้ดแล็บนี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จากคอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน
การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อดำเนินการเสร็จแล้ว คุณควรเห็นข้อมูลดังต่อไปนี้
เครื่องเสมือนนี้โหลดเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ ซึ่งจะมีไดเรกทอรีหลักขนาด 5 GB ถาวรและทำงานบน Google Cloud ซึ่งจะช่วยเพิ่มประสิทธิภาพเครือข่ายและการรับรองได้อย่างมีประสิทธิภาพ คุณทํางานทั้งหมดในโค้ดแล็บนี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไรเลย
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] ด้วยชื่ออินสแตนซ์ PSC ของ Looker เพื่อรับรหัสโปรเจ็กต์ PSC ของ Looker
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
ในตัวอย่างเอาต์พุต t7ec792caf2a609d1-tp คือโปรเจ็กต์ PSC ของ Looker
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",
ระบุโปรเจ็กต์ PSC ของ Looker โดยใช้ Cloud Console
ใน Cloud Console ให้ไปที่
Looker → อินสแตนซ์ PSC ของ Looker
7. สร้างอินสแตนซ์ Cloud SQL ของผู้ผลิต
ในส่วนต่อไปนี้ คุณจะต้องสร้างอินสแตนซ์ PSC ของ Cloud SQL ที่ใช้เพื่อวัตถุประสงค์ในการทดสอบซึ่งติดตั้งใช้งานด้วยรหัสผ่านที่กำหนดไว้ล่วงหน้าซึ่งระบุโปรเจ็กต์ PSC ของ Looker ในรายการโปรเจ็กต์ PSC ที่อนุญาต
การสร้าง PSC ของ Cloud SQL
ใน Cloud Shell ให้สร้างอินสแตนซ์และเปิดใช้ Private Service Connect จากนั้นอัปเดต [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
รับไฟล์แนบบริการ 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
คุณดูไฟล์แนบบริการ PSC ของ Cloud SQL ได้จาก Cloud Console โดยทำดังนี้
ใน Cloud Console ให้ไปที่
SQL → อินสแตนซ์ SQL → การเชื่อมต่อ
8. สร้างการเชื่อมต่อปลายทาง PSC ใน Looker
ในส่วนต่อไปนี้ คุณจะเชื่อมโยงไฟล์แนบบริการของ Cloud SQL Producer กับ PSC ของ Looker Core ผ่านการใช้ Flag –psc-service-attachment ใน Cloud Shell สำหรับโดเมนเดียว
ใน Cloud Shell ให้สร้างการเชื่อมโยง psc โดยการอัปเดตพารามิเตอร์ต่อไปนี้ให้ตรงกับสภาพแวดล้อมของคุณ
- INSTANCE_NAME: ชื่ออินสแตนซ์ Looker (Google Cloud Core)
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: URI ที่บันทึกไว้เมื่ออธิบายอินสแตนซ์ PSC ของ Cloud SQL
- ภูมิภาค: ภูมิภาคที่โฮสต์อินสแตนซ์ 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. ผสานรวม PSC ของ Looker กับ PSC ของ Cloud SQL
ในส่วนต่อไปนี้ คุณจะใช้ Looker Console เพื่อสร้างการเชื่อมต่อฐานข้อมูลกับอินสแตนซ์ PSC ของ Cloud SQL
ไปที่ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → เลือกเพิ่มการเชื่อมต่อ
กรอกรายละเอียดการเชื่อมต่อตามภาพหน้าจอด้านล่าง แล้วเลือกเชื่อมต่อ
กำหนดค่าการเชื่อมต่อแล้ว
10. ตรวจสอบการเชื่อมต่อ Looker
ในส่วนต่อไปนี้ คุณจะได้เรียนรู้วิธีตรวจสอบการเชื่อมต่อ Looker กับอินสแตนซ์ PSC ของ Cloud SQL โดยใช้การดำเนินการ "ทดสอบ" ของ Looker
ไปที่การเชื่อมต่อข้อมูล ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → cloud-sql-psc-demo → ทดสอบ
เมื่อเลือก "ทดสอบ" แล้ว Looker จะเชื่อมต่อกับฐานข้อมูล postgres ตามที่ระบุไว้ด้านล่าง
ล้างข้อมูล
ลบคอมโพเนนต์ของห้องทดลองจากเทอร์มินัล Cloud Shell เครื่องเดียว
gcloud sql instances delete cloud-sql-psc-demo -q
11. ขอแสดงความยินดี
ยินดีด้วย คุณได้กําหนดค่าและตรวจสอบการเชื่อมต่อกับ PSC ของ Cloud SQL โดยใช้ Looker Console ที่ทำงานด้วย Private Service Connect เรียบร้อยแล้ว
คุณสร้างอินสแตนซ์ PSC ของ Cloud SQL เป็นบริการของผู้ผลิตและปลายทาง PSC ของ Looker ที่อนุญาตให้เชื่อมต่อกับบริการของผู้ผลิต
Cosmopup คิดว่า Codelab เจ๋งสุดๆ
ขั้นตอนถัดไป
ลองดู Codelab เหล่านี้...
- การใช้ Private Service Connect เพื่อเผยแพร่และใช้บริการ
- เชื่อมต่อกับบริการในองค์กรผ่านเครือข่ายแบบผสมโดยใช้ Private Service Connect และตัวจัดสรรภาระงานพร็อกซี TCP ภายใน
- เข้าถึง Codelab ของ Private Service Connect ที่เผยแพร่ทั้งหมด