התחברות למופע באמצעות נקודת קצה לכתיבה

סקירה כללית

בדף הזה מוסבר איך להשתמש בנקודת קצה לכתיבה כדי להתחבר מלקוחות ברשת של הענן הווירטואלי הפרטי (VPC) למופע Cloud SQL באמצעות גישה לשירותים פרטיים (PSA).

נקודת קצה לכתיבה היא שם גלובלי של Domain Name Service‏ (DNS) שמקבל באופן אוטומטי את כתובת ה-IP של המופע הראשי הנוכחי. במקרה של פעולת יתירות כשל או מעבר לשרת חלופי של רפליקה, נקודת הקצה הזו של הכתיבה מפנה אוטומטית את החיבורים הנכנסים למופע הראשי החדש. אפשר להשתמש בנקודת הקצה לכתיבה במחרוזת חיבור SQL למופע Cloud SQL במקום להשתמש בכתובת IP. שימוש בנקודת קצה לכתיבה מאפשר לכם להימנע משינויים בחיבור האפליקציה כשאתם מבצעים יתירות כשל של רפליקה או פעולת מעבר לגיבוי אוטומטי לצורך שחזור של הפסקה זמנית בשירות באזור או תרגיל תוכנית התאוששות מאסון (DR).

לכל מופע שעומד בדרישות של Cloud SQL יש נקודת קצה מובנית אחת לכתיבה, שהשם, היצירה והעדכון שלה מנוהלים על ידי Cloud SQL. הדוגמה הבאה ממחישה את הפורמט:

  primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

נקודת הקצה לכתיבה תמיד מסתיימת בסיומת .global.sql-psa.goog.. אי אפשר לשנות את השם או הפורמט של נקודת הקצה הזו לכתיבה שמנוהלת על ידי Cloud SQL.

אפשר להשתמש בנקודת הקצה לכתיבה לכל פעולות הכתיבה במופע הראשי, כולל הוספות, עדכונים, מחיקות ושינויים ב-DDL. אפשר להשתמש בנקודת הקצה write גם לפעולות קריאה, כמו שאילתות. כתובת ה-IP הפרטית שאליה מצביע נקודת הקצה של הכתיבה משתנה באופן אוטומטי על ידי Cloud SQL כשמבצעים יתירות כשל או מעבר לגיבוי כדי להעלות בדרגה מופע רפליקה למופע ראשי חדש.

יצירת נקודת הקצה לכתיבה

אם יוצרים מכונה חדשה של Cloud SQL, ‏ Cloud SQL יוצר באופן אוטומטי את נקודת הקצה לכתיבה כשמתקיימים התנאים המוקדמים הבאים:

  • צריך להפעיל את ממשקי ה-API הבאים בפרויקט Google Cloud שבו נמצאת מכונת Cloud SQL:

    אם לא מפעילים את Cloud DNS API בפרויקט, אי אפשר ליצור את תחום ה-DNS של ה-peering, ולכן אי אפשר להשתמש בשמות ה-DNS.

    אחרי שיוצרים בהצלחה את תחום ה-DNS של הקישור בין רשתות שכנות (peering), חשוב לא לשנות אותו בשום צורה. כל שינוי, כולל מחיקה, יגרום לכך שלא יהיה אפשר להשתמש ב-DNS לחיבור למסד הנתונים.

  • המכונה של Cloud SQL צריכה להיות מהדורות Cloud SQL Enterprise Plus.
  • צריך להגדיר את מכונת Cloud SQL כך שתשתמש בכתובת IP פרטית עם גישה לשירותים פרטיים (PSA).
  • כדי להשתמש בתכונה הזו, צריך להשתמש במופעים בארכיטקטורת הרשת החדשה. ברוב המקרים, מופעים חדשים נוצרים עם הארכיטקטורה החדשה. כדי לוודא זאת, צריך לבדוק את ארכיטקטורת הרשת של המופע.

כשמשדרגים מכונה קיימת במהדורת Cloud SQL Enterprise למכונה במהדורת Cloud SQL Enterprise Plus, מערכת Cloud SQL יוצרת באופן אוטומטי את נקודת הקצה לכתיבה אם מתקיימות הדרישות המוקדמות שצוינו קודם. אם המכונה הקיימת שלכם נמצאת בארכיטקטורת הרשת הישנה, אתם צריכים קודם לשדרג את המכונה לארכיטקטורת הרשת החדשה כדי לקבל את נקודת הקצה לכתיבה.

אם כבר יש לכם מופע של Cloud SQL במהדורת Enterprise Plus ללא נקודת קצה לכתיבה ואתם רוצים ש-Cloud SQL ייצור נקודת קצה לכתיבה באופן אוטומטי, אתם צריכים ליצור רפליקה שמופעלת בה תוכנית התאוששות מתקדמת מאסון.

הצגת נקודת הקצה של הכתיבה

gcloud

כדי למצוא את נקודת הקצה לכתיבה, משתמשים בפקודה הבאה ב-CLI של gcloud:

      gcloud sql instances describe INSTANCE_NAME \
      | grep writeEndpoint
    

מחליפים את הפרטים הבאים:

INSTANCE_NAME: השם של מכונת Cloud SQL.

נקודות קצה של כתיבה תמיד מסתיימות בסיומת .global.sql-psa.goog., כמו בדוגמה הבאה:

  primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

אם לא מופיעה נקודת הקצה לכתיבה עבור מופע שעומד בדרישות, אפשר לעיין במאמר פתרון בעיות.

התחברות למכונה של Cloud SQL באמצעות נקודת קצה לכתיבה

sqlcmd

כדי לחבר לקוח sqlcmd למכונת Cloud SQL באמצעות נקודת הקצה לכתיבה, מריצים את הפקודה הבאה:

    sqlcmd -S WRITE_ENDPOINT -U USERNAME -d DATABASE_NAME -P
  

מחליפים את הפרטים הבאים:

  • DATABASE_NAME: שם מסד הנתונים. לדוגמה: main.
  • USERNAME: שם המשתמש. לדוגמה, sqlserver.
  • WRITE_ENDPOINT: שם ה-DNS או נקודת הקצה לכתיבה הערך האלפאנומרי הזה תמיד מסתיים בסיומת .global.sql-psa.goog.. לדוגמה, primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog..

מגבלות

  • נקודות קצה לכתיבה לא זמינות ליצירת מופעים במהדורת Cloud SQL Enterprise.
  • נקודות קצה לכתיבה לא זמינות במקרים הבאים: מכונות וירטואליות עם כתובת IP ציבורית בלבד או מכונות וירטואליות עם Private Service Connect בלבד.

פתרון בעיות

בקטעים הבאים מתוארת הארכיטקטורה של נקודות קצה לכתיבה, ומוסבר איך לפתור בעיות נפוצות.

ארכיטקטורה של נקודת קצה לכתיבה

כשיוצרים מופע שעומד בדרישות, נוצרת כברירת מחדל נקודת קצה לכתיבה.

כדי ליצור נקודת קצה לכתיבה, Cloud SQL מבצע את ההגדרה הבאה:

התרשים הבא ממחיש איך התהליך הזה עובד:

דיאגרמה שמראה איך קישור בין רשתות שכנות (peering) של VPC תומך בקישור בין רשתות שכנות (peering) של תחום DNS בפרויקטים.
איור 1. תרשים שמראה איך קישור בין רשתות VPC שכנות תומך בקישור בין תחום DNS בין רשת של בעלים של שירות מנוהל לבין רשת של לקוח.

בעיות בפענוח DNS

אם פתרון ה-DNS לא פועל, כדאי לבדוק כל אחד מהפריטים הבאים:

  1. חשוב לוודא שכל הדרישות המוקדמות מתקיימות.
  2. מוודאים שהלקוחות שבהם אמורה להתבצע ההחלטה נמצאים באותה רשת שאליה מצורפת מכונת Cloud SQL. כדי לבדוק את זה, משתמשים בפקודה gcloud compute instances list:
    gcloud compute instances list \
       --format="table( name, zone.basename(), networkInterfaces[].network )" \
       --project=PROJECT_NAME

    מחליפים את PROJECT_NAME בשם הפרויקט שבו נמצאת רשת צרכני ה-DNS.

  3. מוודאים שאזור הפירינג קיים. כדי לעשות זאת, משתמשים בפקודה gcloud dns managed-zones list:
    gcloud dns managed-zones list \
        --project=PROJECT_NAME

    מחליפים את PROJECT_NAME בשם הפרויקט שבו נמצאת רשת צרכני ה-DNS.

למופע החדש אין נקודת קצה לכתיבה

אם מופע שנוצר לאחרונה לא מכיל נקודת קצה לכתיבה, צריך לבדוק כל אחד מהפריטים הבאים:

  1. חשוב לוודא שכל הדרישות המוקדמות מולאו.
  2. מוודאים שאין תחום DNS של קישור בין רשתות שכנות (peering) עם שם ה-DNS sql-psa.goog..

    תחום DNS מקושר הוא תחום DNS שנשאר אם לרשת שמשויכת לתחום ה-DNS אין קישור בין רשתות שכנות (peering) עם מזהה פרויקט עמית של תחום ה-DNS המקושר.

    אם נשארה רשומת DNS של אזור peering עם הסיומת sql-psa.goog., צריך למחוק אותה.

    כדי לבדוק אם נשארו אזורי DNS של שירותי Peering, משתמשים בפקודה gcloud dns managed-zones list:

    gcloud dns managed-zones list \
       --project=PROJECT_NAME

    מחליפים את PROJECT_NAME בשם הפרויקט שבו נמצאת רשת הצרכן של ה-DNS.

    אם קיים תחום DNS עם הסיומת sql-psa.goog., צריך למחוק את תחום ה-DNS אחרי שמוודאים שתחום ה-DNS של הפירינג הוא תחום DNS מיותר.

    כדי למחוק תחום DNS, משתמשים בפקודה gcloud dns managed-zones delete:

    gcloud dns managed-zones delete ZONE_NAME

    מחליפים את ZONE_NAME בשם תחום ה-DNS שמשויך לנקודות הקצה של הכתיבה. הערכים הם אלפאנומריים ובפורמט הבא: cloud-sql-psa-dns-1234567890.

המאמרים הבאים