1. מבוא
בשיעור Codelab הזה תבצעו חיבור דרומה ל-Cloud SQL שנפרס באמצעות Private Service Connect בתור ספק שירותים.
Private Service Connect הוא יכולת של רשת Google Cloud שמאפשרת לצרכנים לגשת לשירותים מנוהלים באופן פרטי מתוך רשת ה-VPC שלהם. באופן דומה, הוא מאפשר ליצרני שירותים מנוהלים לארח את השירותים האלה ברשתות VPC נפרדות משלהם ולהציע חיבור פרטי לצרכנים שלהם. לדוגמה, כשמשתמשים ב-Private Service Connect כדי לגשת ל-Looker, המשתמש הוא צרכן השירות ו-Google היא בעלת השירות המנוהל, כפי שמודגש באיור 1.

גישה מדרום לצפון, שנקראת גם PSC הפוך, מאפשרת לצרכן ליצור שירות שפורסם בתור יצרן כדי לאפשר ל-Looker גישה לנקודות קצה (endpoints) מקומיות, ב-VPC, לשירותים מנוהלים ולאינטרנט. אפשר לפרוס חיבורים מדרום לצפון בכל אזור, בלי קשר למיקום הפריסה של Looker PSC, כפי שמודגש באיור 2.

מה תלמדו
- יצירת שירות הפקה של מכונת Cloud SQL ב-Private Service Connect
- יצירת נקודת קצה של Private Service Connect ב-Looker כצרכן שירות
מה תצטרכו
- פרויקט ב-Google Cloud עם הרשאות בעלים
- מופע קיים של Looker PSC

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 יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא נשארת לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על שלושת הערכים האלה מופיע במאמרי העזרה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה נשתמש ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-מסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

הקצאת המשאבים והחיבור לסביבה יימשכו רק כמה רגעים. בסיום התהליך, אמור להופיע משהו כזה:

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-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 ב-Producer
בקטע הבא, תיצרו מופע PSC של Cloud SQL שמשמש למטרות בדיקה, שנפרס עם סיסמה מוגדרת מראש שמציינת את פרויקט ה-PSC של Looker ברשימת פרויקטי ה-PSC המותרים.
יצירת Cloud SQL PSC
ב-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 של הקובץ המצורף לשירות שבו משתמשים בשלב מאוחר יותר כדי ליצור את נקודת הקצה (endpoint) של 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 אפשר לקבל את Cloud SQL PSC Service Attachment:
ב-Cloud Console, עוברים אל:
SQL → SQL Instance → Connections

8. יצירת חיבור לנקודת קצה של PSC ב-Looker
בקטע הבא, תשייכו את קובץ ה-Service Attachment של Cloud SQL Producers ל-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
- אזור: האזור שבו מתארחת המכונה של 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. חשוב לעדכן את שם המופע של 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
ב-Cloud Console, עוברים אל:
Looker → מכונת Looker → פרטים


9. שילוב של Looker PSC עם Cloud SQL PSC
בקטע הבא תשתמשו במסוף Looker כדי ליצור חיבור למסד נתונים למופע PSC של Cloud SQL.
עוברים אל ADMIN → DATABASE → CONNECTIONS → בוחרים באפשרות ADD CONNECTION (הוספת חיבור).
ממלאים את פרטי החיבור לפי צילום המסך שלמטה ולוחצים על CONNECT (חיבור).

החיבור מוגדר עכשיו

10. אימות החיבוריות של Looker
בקטע הבא מוסבר איך לאמת את הקישוריות של Looker למופע Cloud SQL PSC באמצעות הפעולה 'test' של Looker.
עוברים אל Data Connection (חיבור נתונים) ADMIN (ניהול) → DATABASE (מסד נתונים) → CONNECTIONS (חיבורים) → cloud-sql-psc-demo → Test (בדיקה)
אחרי שבוחרים באפשרות Test, Looker מתחבר למסד הנתונים של postgres כמו שמוצג בהמשך:

הסרת המשאבים
מחיקת רכיבי מעבדה ממסוף 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 חושב ש-codelabs הם מדהימים!!

מה השלב הבא?
כדאי לעיין ב-Codelabs הבאים…
- שימוש ב-Private Service Connect כדי לפרסם ולצרוך שירותים
- התחברות לשירותים בארגון דרך Hybrid Networking באמצעות Private Service Connect ומאזן עומסים (LB) פנימי מסוג TCP Proxy
- גישה לכל ה-codelab שפורסמו בנושא Private Service Connect