การเข้าถึงจาก PSC ของ Looker ไปยัง PSC ของ Cloud SQL

1. บทนำ

ใน Codelab นี้ คุณจะได้ทำการเชื่อมต่อ Southbound กับ Cloud SQL ที่ใช้งานได้ด้วย Private Service Connect ในฐานะผู้ผลิตบริการ

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

145ea4672c3a3b14.png

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

259493afd914f68b.png

สิ่งที่คุณจะได้เรียนรู้

  • สร้างบริการผู้ผลิตอินสแตนซ์ Cloud SQL ของ Private Service Connect
  • สร้างปลายทาง Private Service Connect ใน Looker ในฐานะผู้บริโภคบริการ

สิ่งที่คุณต้องมี

def88091b42bfe4d.png

2. สิ่งที่คุณจะได้สร้าง

คุณจะได้สร้างอินสแตนซ์ Cloud SQL PSC ที่ใช้งานได้ในฐานะผู้ผลิตบริการ ซึ่งเชื่อมโยงกับ Looker PSC ในฐานะผู้บริโภคบริการ

การดำเนินการต่อไปนี้จะตรวจสอบสิทธิ์เข้าถึงบริการของผู้ผลิต

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

3. โทโพโลยีของ Codelab

1e7035ea608d7d23.png

4. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมแบบทำตามคำแนะนำ

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

เริ่มต้น Cloud Shell

แม้ว่าคุณจะใช้งาน Google Cloud จากแล็ปท็อปได้จากระยะไกล แต่ใน Codelab นี้ คุณจะได้ใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์

จาก คอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

เครื่องเสมือนนี้มาพร้อมกับเครื่องมือการพัฒนาทั้งหมดที่คุณจะต้องใช้ โดยมีไดเรกทอรีหลักขนาด 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

1367ec0136aa5ad6.png

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 → การเชื่อมต่อ

18940483f646ed15.png

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 → รายละเอียด

2d4684d722d31e4b.png

9fa909f826dec963.png

9. ผสานรวม Looker PSC กับ Cloud SQL PSC

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

ไปที่ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → เลือกเพิ่มการเชื่อมต่อ

กรอกรายละเอียดการเชื่อมต่อตามภาพหน้าจอด้านล่าง แล้วเลือกเชื่อมต่อ

eb3ef74d3ae71f1a.png

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

29017202470ad81f.png

10. ตรวจสอบการเชื่อมต่อ Looker

ในส่วนต่อไปนี้ คุณจะได้เรียนรู้วิธีตรวจสอบการเชื่อมต่อ Looker กับอินสแตนซ์ Cloud SQL PSC โดยใช้การดำเนินการ "ทดสอบ" ของ Looker

ไปที่การเชื่อมต่อข้อมูล ผู้ดูแลระบบ → ฐานข้อมูล → การเชื่อมต่อ → cloud-sql-psc-demo → ทดสอบ

เมื่อเลือกทดสอบแล้ว Looker จะเชื่อมต่อกับฐานข้อมูล postgres ดังที่ระบุไว้ด้านล่าง

d9729caf9a61bfc2.png

ล้างข้อมูล

ลบคอมโพเนนต์ของ 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 นั้นยอดเยี่ยม!!

c911c127bffdee57.jpeg

สิ่งต่อไปที่ควรทำ

ลองดู Codelab ต่อไปนี้

อ่านเพิ่มเติมและวิดีโอ

เอกสารอ้างอิง