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

1. บทนำ

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

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

145ea4672c3a3b14.png

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

259493afd914f68b.png

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

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

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

def88091b42bfe4d.png

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

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

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

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

3. โทโพโลยี Codelab

1e7035ea608d7d23.png

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

การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง

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

fbef9caa1602edd0.pnga99b7ace416376c4.png5e3ff691252acf41.png

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

1367ec0136aa5ad6.png

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

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

2d4684d722d31e4b.png9fa909f826dec963.png

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

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

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

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

eb3ef74d3ae71f1a.png

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

29017202470ad81f.png

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

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

ไปที่การเชื่อมต่อข้อมูล ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test

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

d9729caf9a61bfc2.png

ล้างข้อมูล

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

c911c127bffdee57.jpeg

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

ลองใช้ Codelab เหล่านี้

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

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