גישה מ-Looker PSC ל-Cloud SQL PSC בכיוון דרום

1. מבוא

בשיעור Codelab הזה תבצעו חיבור דרומה ל-Cloud SQL שנפרס באמצעות Private Service Connect בתור ספק שירותים.

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

145ea4672c3a3b14.png

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

מפעילים את Cloud Shell

אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה נשתמש ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.

ב-מסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 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

1367ec0136aa5ad6.png

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

18940483f646ed15.png

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 → פרטים

2d4684d722d31e4b.png9fa909f826dec963.png

9. שילוב של Looker PSC עם Cloud SQL PSC

בקטע הבא תשתמשו במסוף Looker כדי ליצור חיבור למסד נתונים למופע PSC של Cloud SQL.

עוברים אל ADMIN → DATABASE → CONNECTIONS → בוחרים באפשרות ADD CONNECTION (הוספת חיבור).

ממלאים את פרטי החיבור לפי צילום המסך שלמטה ולוחצים על CONNECT (חיבור).

eb3ef74d3ae71f1a.png

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

29017202470ad81f.png

10. אימות החיבוריות של Looker

בקטע הבא מוסבר איך לאמת את הקישוריות של Looker למופע Cloud SQL PSC באמצעות הפעולה 'test' של Looker.

עוברים אל Data Connection (חיבור נתונים) ADMIN (ניהול) → DATABASE (מסד נתונים) → CONNECTIONS (חיבורים) → cloud-sql-psc-demo → Test (בדיקה)

אחרי שבוחרים באפשרות Test,‏ Looker מתחבר למסד הנתונים של postgres כמו שמוצג בהמשך:

d9729caf9a61bfc2.png

הסרת המשאבים

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

c911c127bffdee57.jpeg

מה השלב הבא?

כדאי לעיין ב-Codelabs הבאים…

קריאה נוספת וסרטונים

מסמכי עזר