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

בדף הזה מוסבר איך להשתמש בנקודות קצה (endpoints) לכתיבה ב-AlloyDB ל-PostgreSQL כדי לפשט את ניהול החיבורים למסד הנתונים באפליקציות שלכם.

נקודת קצה היא משאב AlloyDB שמספק שם יציב של שירות שמות דומיין (DNS) שהאפליקציות יכולות להשתמש בו כדי להתחבר למופע AlloyDB. שימוש בנקודת קצה מאפשר להפריד את האפליקציה מכתובת ה-IP הספציפית או ממזהה Uniform Resource Identifier‏ (URI) של מופע. ההפשטה הזו מפשטת את ניהול החיבורים במהלך אירועים תפעוליים – לדוגמה, תוכנית התאוששות מאסון (DR), שחזורי גיבוי או העברות – כי אפשר להפנות מחדש את שם ה-DNS של נקודת הקצה למופע אחר בלי לשנות את ההגדרה של האפליקציה.

נקודות קצה של AlloyDB תומכות בסוג WRITE_ENDPOINT. נקודת קצה לכתיבה מפנה תעבורה למופע ראשי יחיד של AlloyDB ומשרתת תעבורה של קריאה וכתיבה.

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

יתרונות השימוש בנקודות קצה

השימוש בנקודת קצה לכתיבה מספק את היתרונות הבאים:

  • תוכנית התאוששות מאסון (DR) פשוטה יותר: אם מבצעים מעבר פעיל לגיבוי או יתירות כשל בין אזורים לאשכול משני, AlloyDB מעדכן אוטומטית את נקודת הקצה כך שתצביע על המופע הראשי החדש. אחרי השחזור, האפליקציות יכולות להתחבר מחדש באמצעות אותו שם DNS של נקודת הקצה, וכך לקצר את היעד לשחזור (RTO).
  • שחזור גיבוי חלק: כשמשחזרים מכונה מגיבוי, AlloyDB יוצר מכונה חדשה עם כתובת IP חדשה. אפשר לעדכן את נקודת הקצה כך שתצביע על המופע החדש ששוחזר. כך האפליקציות יכולות להמשיך לפעול בלי שינויים בהגדרות.
  • העברות קלות יותר: במהלך העברות, אפשר להעביר נקודת קצה ממסד נתונים של מקור למופע AlloyDB עם שיבוש מינימלי של האפליקציה.

מגבלות

  • נקודות קצה תומכות רק במכונות וירטואליות שהוגדרו לשימוש בגישה לשירותים פרטיים (PSA). נקודות קצה לא תומכות במופעים שהוגדרו לשימוש ב-Private Service Connect ‏ (PSC).
  • אין תמיכה בנקודת הקצה לכתיבה ב-AlloyDB Language Connectors וב-AlloyDB Auth Proxy.
  • לא ניתן לבצע פעולות שינוי בו-זמנית (כמו עדכונים בו-זמניים, או עדכון ומחיקה) בנקודות קצה שמפנות לאותו מופע יעד, והן עלולות לגרום לכשל.

לפני שמתחילים

  1. מתקינים ומפעילים את Google Cloud CLI.
  2. מפעילים את Cloud DNS API.
  3. מוודאים שיש לכם מופע AlloyDB קיים שישמש כיעד לנקודת הקצה.
  4. כדי לקבל את ההרשאות שנדרשות לניהול נקודות קצה, צריך לבקש מהאדמין להקצות לכם את התפקיד AlloyDB Admin (roles/alloydb.admin) ב-IAM בפרויקט. התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות לניהול נקודות קצה.

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

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

מידע נוסף זמין במאמר תפקידים והרשאות ב-IAM של AlloyDB.

אפשר ליצור ולנהל נקודות קצה לכתיבה באמצעות Google Cloud CLI.

יצירת נקודת קצה

כדי ליצור נקודת קצה לכתיבה, משתמשים ב-Google Cloud CLI. סוג נקודת הקצה (endpoint) חייב להיות WRITE_ENDPOINT, והיא חייבת לטרגט מופע ראשי יחיד.

המסוף

  1. נכנסים לדף Endpoints במסוף Google Cloud .

    לדף Endpoints

  2. לוחצים על Create endpoint.

  3. בשדה Endpoint name (שם נקודת הקצה), מזינים מזהה לנקודת הקצה. השם צריך לכלול רק אותיות קטנות באנגלית (a-z), ספרות ומקפים, להתחיל באות קטנה ולהסתיים באות קטנה או בספרה.

  4. בוחרים Region.

  5. בשדה Endpoint type, בוחרים באפשרות Write.

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

  7. לוחצים על יצירה.

gcloud

gcloud beta alloydb endpoints create ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --endpoint-type=ENDPOINT_TYPE \
    --target-instances=TARGET_INSTANCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_ID: מזהה ייחודי של נקודת הקצה. המזהה הזה חייב להיות ייחודי בתוך הפרויקט והמיקום שצוינו.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • REGION_ID: המזהה של האזור שבו רוצים ליצור את נקודת הקצה, לדוגמה: us-central1.
  • ENDPOINT_TYPE: סוג משאב נקודת הקצה. יש תמיכה רק ב-WRITE_ENDPOINT.
  • TARGET_INSTANCE_NAME: שם המשאב המלא של מכונת AlloyDB ל-PostgreSQL שאליה נקודת הקצה מפנה. הפורמט של נתיב המשאב המלא של מופע הוא: projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.

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

כדי להתחבר למופע AlloyDB באמצעות נקודת קצה, קודם צריך לקבל את שם ה-DNS שנוצר באופן אוטומטי ומשויך לנקודת הקצה.

קבלת שם ה-DNS

אפשר לראות את שם ה-DNS של נקודת קצה באמצעות Google Cloud CLI.

המסוף

  1. נכנסים לדף Endpoints במסוף Google Cloud .

    לדף Endpoints

  2. מוצאים את נקודת הקצה שאליה רוצים להתחבר ומעתיקים את הערך בעמודה DNS name (שם DNS).

gcloud

  1. משתמשים בפקודה gcloud beta alloydb endpoints describe:

    gcloud beta alloydb endpoints describe ENDPOINT_ID \
        --project=PROJECT_ID \
        --region=REGION_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENDPOINT_ID: המזהה של נקודת הקצה
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • REGION_ID: המזהה של האזור שבו נמצאת נקודת הקצה
  2. בפלט פקודה, מחפשים את השדה dnsName ומעתיקים את הערך שלו.

התחברות באמצעות psql

אחרי שיש לכם את שם ה-DNS, אתם יכולים להשתמש בו כמארח במחרוזת החיבור או בכלי הלקוח. לדוגמה, כדי להתחבר באמצעות לקוח psql, מריצים את הפקודה הבאה:

psql -h DNS_NAME -U USERNAME -d DATABASE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • DNS_NAME: שם ה-DNS של נקודת הקצה
  • USERNAME: משתמש מסד הנתונים להתחברות
  • DATABASE_NAME: השם של מסד הנתונים שאליו רוצים להתחבר

מידע נוסף על השימוש ב-psql זמין במאמר בנושא חיבור באמצעות לקוח psql.

עדכון נקודת קצה

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

המסוף

  1. נכנסים לדף Endpoints במסוף Google Cloud .

    לדף Endpoints

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

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

  4. לוחצים על עדכון.

gcloud

gcloud beta alloydb endpoints update ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --target-instances=NEW_TARGET_INSTANCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_ID: המזהה של נקודת הקצה שרוצים לעדכן
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • REGION_ID: המזהה של האזור שבו נמצאת נקודת הקצה
  • NEW_TARGET_INSTANCE_NAME: שם המשאב המלא של מכונות היעד החדשות

הצגת רשימה של נקודות קצה

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

המסוף

  1. נכנסים לדף Endpoints במסוף Google Cloud .

    לדף Endpoints

    בדף מפורטות כל נקודות הקצה בפרויקט הנוכחי.

gcloud

gcloud beta alloydb endpoints list --project=PROJECT_ID \
    --region=REGION_ID

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • REGION_ID: המזהה של האזור שבו נמצאת נקודת הקצה

הצגת הפרטים של נקודת הקצה

כדי לראות את הפרטים של נקודת קצה ספציפית, משתמשים בפקודה הבאה של Google Cloud CLI:

gcloud

gcloud beta alloydb endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_ID: המזהה של נקודת הקצה שרוצים לתאר
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • REGION_ID: המזהה של האזור שבו נמצאת נקודת הקצה

במסוף Google Cloud , אפשר לראות את פרטי נקודת הקצה בדף Endpoints.

מחיקת נקודת קצה

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

המסוף

  1. נכנסים לדף Endpoints במסוף Google Cloud .

    לדף Endpoints

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

  3. כדי לאשר, מקלידים את מזהה נקודת הקצה ולוחצים על מחיקה.

gcloud

gcloud beta alloydb endpoints delete ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_ID: המזהה של נקודת הקצה למחיקה
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • REGION_ID: המזהה של האזור שבו נמצאת נקודת הקצה

כתיבת התנהגות נקודת הקצה במהלך מעבר אוטומטי או מעבר לגיבוי באזור אחר

למרות ששם ה-DNS של נקודת קצה מסוימת מומר לכתובת ה-IP של מופע ספציפי בזמן היצירה, נקודות הקצה האלה הן דינמיות. במקרה של פעילויות שכפול בין אזורים, כמו מעבר לגיבוי בעת כשל או יתירות כשל בין אזורים (גרסת טרום-השקה (Preview)), נקודות הקצה לכתיבה ב-AlloyDB מבטיחות קישוריות רציפה ללא התערבות ידנית. כשמקודם אשכול משני כדי להפוך לאשכול הראשי החדש, נקודת הקצה מעדכנת באופן אוטומטי את רשומת ה-DNS שלה כך שתצביע על המופע הראשי החדש. ההתנהגות הזו מבטלת את הצורך בהגדרה מחדש ידנית של מחרוזות חיבור לאפליקציות, ומפחיתה באופן משמעותי את המורכבות התפעולית ואת זמן ההשבתה, כדי לעמוד ביעד זמן ההתאוששות (RTO).

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

מניעת כתיבות סותרות במהלך מעבר לגיבוי

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

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