יצירת מופעים

בדף הזה מוסבר איך ליצור מכונה של Cloud SQL ל-PostgreSQL.

מידע מפורט על כל הגדרות המופע זמין במאמר בנושא הגדרות המופע.

למופע שנוצר יש מסד נתונים postgres.

המספר המקסימלי של מופעים שיכולים להיות בפרויקט יחיד תלוי בארכיטקטורת הרשת של המופעים האלה:

  • ארכיטקטורת רשת חדשה של SQL: אפשר ליצור עד 1,000 מופעים לכל פרויקט.
  • ארכיטקטורת רשת ישנה של SQL: אפשר להשתמש בעד 100 מופעים לכל פרויקט.
  • שימוש בשתי הארכיטקטורות: המגבלה תהיה בין 100 ל-1,000, בהתאם לפיזור של המופעים בשתי הארכיטקטורות.

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

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. מתקינים את ה-CLI של gcloud.

  5. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  6. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. מתקינים את ה-CLI של gcloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. מוודאים שיש לכם את התפקידים הבאים בחשבון המשתמש:

    כניסה לדף IAM

    מידע נוסף על תפקידים והרשאות

יצירת מכונת PostgreSQL

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. לוחצים על Create instance.
  3. בוחרים באפשרות New instance (מופע חדש).
  4. בחלונית Choose your database engine בדף Create an instance, לוחצים על Choose PostgreSQL.
  5. בקטע Choose a Cloud SQL edition בדף Create a SQL Server instance, בוחרים את מהדורת Cloud SQL עבור המופע: Enterprise או Enterprise Plus.

    מידע נוסף על מהדורות Cloud SQL זמין במאמר מבוא למהדורות Cloud SQL.

  6. בוחרים את ההגדרה הקבועה מראש של המהדורה עבור המכונה. כדי לראות את ההגדרות הקבועות מראש שזמינות, לוחצים על התפריט הגדרות קבועות מראש של מהדורה.
  7. בקטע Instance info, בוחרים את גרסת מסד הנתונים של המכונה. כדי לראות את הגרסאות הזמינות, לוחצים על התפריט גרסת מסד הנתונים.

    אי אפשר לערוך את גרסת מסד הנתונים אחרי שיוצרים את המופע.

  8. בשדה Instance ID (מזהה המופע) בחלונית Instance info (פרטי המופע), מזינים מזהה למופע.

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

  9. מזינים סיסמה למשתמש postgres.
  10. כדי לראות את הסיסמה בטקסט רגיל, לוחצים על סמל הצגת הסיסמה.

    אפשר להזין את הסיסמה באופן ידני או ללחוץ על יצירה כדי ש-Cloud SQL ייצור סיסמה בשבילכם באופן אוטומטי.

  11. אופציונלי: מגדירים מדיניות לסיסמאות עבור המכונה באופן הבא:
    1. מסמנים את תיבת הסימון הפעלת מדיניות סיסמאות.
    2. לוחצים על הלחצן הגדרת מדיניות סיסמאות, מגדירים אחת או יותר מהאפשרויות הבאות ולוחצים על שמירה.
      • אורך מינימלי: מציינת את מספר התווים המינימלי שהסיסמה צריכה להכיל.
      • מורכבות הסיסמה: בדיקה אם הסיסמה היא שילוב של אותיות קטנות, אותיות גדולות, מספרים ותווים לא אלפאנומריים.
      • הגבלת השימוש החוזר בסיסמאות: מציינת את מספר הסיסמאות הקודמות שאסור להשתמש בהן שוב.
      • איסור שימוש בשם המשתמש: מונע את השימוש בשם המשתמש בסיסמה.
      • הגדרת מרווח הזמן לשינוי הסיסמה: מציינת את מספר השעות המינימלי שאחריו אפשר לשנות את הסיסמה.
  12. בקטע Choose region and zonal availability (בחירת אזור וזמינות אזורית), בוחרים את האזור והתחום של המופע. הזמינות באזורים עשויה להיות שונה בהתאם למהדורה של Cloud SQL ל-PostgreSQL. מידע נוסף זמין במאמר מידע על הגדרות של מופע.

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

    אם אתם מגדירים את המופע לזמינות גבוהה, אתם יכולים לבחור גם אזור ראשי וגם אזור משני.

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

    • אזורי הזמן שמוגדרים כברירת מחדל הם Any לאזור הזמן הראשי ו-Any (different from primary) לאזור הזמן המשני.
    • אם מציינים גם את האזור הראשי וגם את האזור המשני, הם צריכים להיות אזורים שונים.
  13. בקטע Customize your instance (התאמה אישית של המופע), מעדכנים את ההגדרות של המופע. לוחצים על הצגת אפשרויות ההגדרה כדי להציג את קבוצות ההגדרות. לאחר מכן, מרחיבים את הקבוצות שרוצים לבדוק ולהתאים אישית את ההגדרות שלהן. סיכום של כל האפשרויות שבחרתם מוצג בצד שמאל. התאמה אישית של הגדרות המופע האלה היא אופציונלית. ערכי ברירת מחדל מוקצים בכל מקרה שבו לא בוצעו התאמות אישיות.

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

    הגדרה הערות
    סוג מכונה
    סוג המכונה בוחרים באפשרות Shared core (ליבה משותפת) או Dedicated core (ליבה ייעודית). בליבות משותפות, כל סוג מכונה מסווג לפי מספר המעבדים (הליבות) וכמות הזיכרון של המכונה.
    ליבות מספר יחידות ה-vCPU של המופע. מידע נוסף
    זיכרון נפח הזיכרון של המופע, ב-GB. מידע נוסף
    בהתאמה אישית בסוג המכונה Dedicated core, במקום לבחור הגדרה מוגדרת מראש, לוחצים על הלחצן Custom כדי ליצור מופע עם הגדרה מותאמת אישית. כשבוחרים באפשרות הזו, צריך לבחור את מספר ליבות המעבד ואת כמות הזיכרון של המופע. מידע נוסף
    מטמון נתונים
    הפעלת מטמון נתונים כברירת מחדל, האפשרות להפעלת מטמון נתונים מסומנת באופן אוטומטי במכונות של Cloud SQL ל-PostgreSQL במהדורת Enterprise Plus. אם לא רוצים להפעיל מטמון נתונים, צריך לבטל את הסימון בתיבה הפעלת מטמון נתונים. מידע נוסף על מטמון נתונים זמין במאמר מטמון נתונים.
    אחסון
    סוג אחסון ההגדרה קובעת אם המופע שלכם משתמש באחסון SSD או HDD. מידע נוסף
    נפח אחסון נפח האחסון שהוקצה למופע. מידע נוסף
    הפעלה של הגדלת נפח האחסון באופן אוטומטי קובע אם Cloud SQL יספק אוטומטית יותר אחסון למופע כשייגמר המקום הפנוי. מידע נוסף
    הצפנה
    הצפנה בניהול Googleאפשרות ברירת המחדל.
    מפתח הצפנה בניהול הלקוח (CMEK)בוחרים באפשרות כדי להשתמש במפתח עם Google Cloud Key Management Service. מידע נוסף
    חיבורים
    כתובת IP פרטית הוספת כתובת IP פרטית למופע. כדי לאפשר חיבור למופע, צריך לקבוע הגדרות נוספות.
    אופציונלי: אתם יכולים לציין טווח כתובות IP שהוקצה למכונות לשימוש בחיבורים.
    1. מרחיבים את האפשרות הצגת טווח כתובות ה-IP שהוקצה.
    2. בוחרים טווח כתובות IP מהתפריט הנפתח.

    למופע יכולה להיות כתובת IP ציבורית וגם כתובת IP פרטית.

    כתובת IP ציבורית הוספת כתובת IP ציבורית למופע. אחר כך אפשר להוסיף רשתות מורשות כדי להתחבר למופע.

    למופע יכולה להיות כתובת IP ציבורית וגם כתובת IP פרטית.

    מידע נוסף על שימוש בכתובת IP ציבורית

    רשתות מורשות

    מוסיפים את השם של הרשת החדשה ואת כתובת הרשת. מידע נוסף

    התרת השימוש ב-Data API

    אם מסמנים את התיבה הזו, משתמשים מורשים יכולים לקרוא ל-Data API כדי להריץ הצהרות SQL במופע. למקרים שבהם יש רק כתובת IP פרטית, המדיניות הזו מאפשרת למשתמשים מורשים לקרוא ל-Data API מהאינטרנט הציבורי.

    הפעלת נתיב פרטי

    אם מסמנים את תיבת הסימון הזו, שירותים אחרים של Google Cloud , כמו BigQuery, יכולים לגשת לנתונים ב-Cloud SQL ולהריץ שאילתות על הנתונים האלה דרך חיבור פרטי.

    הפעלת ניהול מאגר חיבורים

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

    אבטחה
    מצב רשות אישורים של השרת

    בוחרים את סוג רשות האישורים (CA) שחותמת על אישור השרת עבור מופע Cloud SQL הזה. מידע נוסף

    כברירת מחדל, כשיוצרים מכונה וירטואלית במסוף Google Cloud , המכונה משתמשת ברשות אישורים פנימית בניהול Google (GOOGLE_MANAGED_INTERNAL_CA), שהיא אפשרות רשות האישורים לכל מכונה.

    רוטציה אוטומטית של אישורי שרת

    אם בוחרים באפשרות של רשות אישורים (CA) של CAS בניהול Google ‏(GOOGLE_MANAGED_CAS_CA) או באפשרות של רשות אישורים פנימית של CAS בניהול הלקוח ‏ (CUSTOMER_MANAGED_CAS_CA) כמצב ה-CA של השרת עבור המופע, אפשר לבחור אם לבצע רוטציה של אישור השרת עבור המופע באופן אוטומטי. מידע נוסף על רוטציה אוטומטית של אישורי שרת ב-Cloud SQL זמין במאמר הפעלה של רוטציה אוטומטית של אישורי שרת.

    האפשרות הזו מושבתת כברירת מחדל.
    הגנה על נתונים
    רמת הגיבוי אפשרות הגיבוי של המופע. אפשר לבחור בין גיבויים משופרים לבין גיבויים רגילים.
    גיבוי אוטומטי חלון הזמן שבו רוצים שהגיבויים יתחילו. מידע נוסף
    בחירת המיקום לאחסון הגיבוייםברוב תרחישי השימוש, כדאי לבחור באפשרות 'מספר אזורים'. אם אתם צריכים לאחסן גיבויים באזור ספציפי, למשל אם יש סיבות רגולטוריות לעשות זאת, בוחרים באפשרות 'אזור' ובוחרים את האזור הרצוי מהתפריט הנפתח 'מיקום'.
    בחירת מספר הגיבויים האוטומטיים שרוצים לשמורמספר הגיבויים האוטומטיים שרוצים לשמור (מ-1 עד 365 ימים). מידע נוסף
    הפעלת שחזור מערכת מנקודה מסוימת בזמן הפעלת שחזור מערכת מנקודה מסוימת בזמן ורישום ביומן לפני כתיבה. מידע נוסף
    הפעלת הגנה מפני מחיקה קובעת אם להגן על מופע מפני מחיקה מקרית. מידע נוסף
    הפעלת גיבויים שנשמרים אחרי מחיקת מופע קובעת אם גיבויים אוטומטיים וגיבויים על פי דרישה יישמרו אחרי מחיקת מופע. מידע נוסף
    בחירת מספר הימים לשמירת היומנים הגדרת שמירה של יומן פעולות מקדימות למשך יום אחד עד 7 ימים. הגדרת ברירת המחדל היא 7 ימים. מידע נוסף
    תחזוקה
    חלון זמן מועדף הגדרת חלון של שעה שבו Cloud SQL יכול לבצע תחזוקה שגורמת להפרעה במכונה. אם לא מגדירים את חלון הזמן, אפשר לבצע תחזוקה שעלולה לשבש את הפעילות בכל זמן. מידע נוסף
    סדר העדכונים התזמון המועדף לעדכוני מופעים, ביחס למופעים אחרים באותו פרויקט. מידע נוסף
    Flags
    הוספת סימון אפשר להשתמש בדגלים של מסד הנתונים כדי לשלוט בהגדרות ובפרמטרים של המופע. מידע נוסף
    תוויות
    הוספת תוויתמוסיפים מפתח וערך לכל תווית שמוסיפים. אתם יכולים להשתמש בתוויות כדי לארגן את המופעים.
  14. לוחצים על Create Instance.

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

gcloud

מידע על התקנה ותחילת העבודה עם ה-CLI של gcloud זמין במאמר התקנת ה-CLI של gcloud. מידע על הפעלת Cloud Shell זמין במאמרי העזרה של Cloud Shell.

  1. משתמשים בפקודה gcloud sql instances create כדי ליצור את המכונה:

  2. למופעים במהדורת Cloud SQL Enterprise Plus:
        gcloud sql instances create INSTANCE_NAME \
        --database-version=DATABASE_VERSION \
        --region=REGION \
        --tier=TIER \
        --edition=ENTERPRISE_PLUS
        

    למכונות במהדורת Cloud SQL Enterprise:
        gcloud sql instances create INSTANCE_NAME \
        --database-version=DATABASE_VERSION \
        --region=REGION \
        --cpu=NUMBER_CPUS \
        --memory=MEMORY_SIZE \
        --edition=ENTERPRISE
        
    אפשר גם להשתמש בדגל --tier אם בוחרים db-f1-micro או db-g1-small כסוג המכונה:
        gcloud sql instances create INSTANCE_NAME \
          --tier=API_TIER_STRING \
          --region=REGION
      

    יש הגבלות על הערכים של vCPU וגודל הזיכרון:

    • מספר המעבדים הווירטואליים צריך להיות 1 או מספר זוגי בין 2 ל-96.
    • הזיכרון צריך להיות:
      • ‫0.9 עד 6.5GB לכל vCPU
      • כפולה של 256MB
      • לפחות 3.75GB‏ (3,840MB)

    לדוגמה, הפקודה הבאה יוצרת מכונה במהדורת Cloud SQL Enterprise עם שני מעבדי vCPU וזיכרון בנפח 7,680MB:

      gcloud sql instances create myinstance \
      --database-version=POSTGRES_16 \
      --cpu=2 \
      --memory=7680MB \
      --region=us-central1
      

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

      gcloud sql instances create myinstance \
      --database-version=POSTGRES_16 \
      --tier=db-perf-optimized-N-4 \
      --edition=ENTERPRISE_PLUS \
      --region=us-central1
      
    מידע נוסף על קביעת הגודל של --cpu ו---memory מופיע במאמר בנושא הגדרה של מופע בהתאמה אישית.

    ערך ברירת המחדל של REGION הוא us-central1.

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

    אם אתם יוצרים מופע לזמינות גבוהה, אתם יכולים לציין את האזורים הראשי והמשני באמצעות הפרמטרים --zone ו---secondary-zone. התנאים הבאים חלים כשמשתמשים באזור המשני במהלך יצירה או עריכה של מופע:

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

    אפשר להוסיף עוד פרמטרים כדי לקבוע הגדרות נוספות של המופע:

    הגדרה פרמטר הערות
    פרמטרים נדרשים
    גרסת מסד הנתונים --database-version גרסת מסד הנתונים, שמבוססת על מהדורת Cloud SQL.
    אזור --region הצגת ערכים חוקיים
    הגדרת מדיניות סיסמאות
    הפעלת מדיניות סיסמאות --enable-password-policy היא מפעילה את המדיניות בנושא סיסמאות כשמשתמשים בה. כברירת מחדל, מדיניות הסיסמאות מושבתת. כשמשביתים את המדיניות באמצעות הפרמטר --clear-password-policy, הפרמטרים האחרים של מדיניות הסיסמאות מאופסים.
    אורך מינימלי --password-policy-min-length מציינת את מספר התווים המינימלי שהסיסמה צריכה להכיל.
    מורכבות הסיסמה --password-policy-complexity ההגדרה הזו מאפשרת לבדוק את מורכבות הסיסמה כדי לוודא שהיא מכילה כל אחד מסוגי התווים הבאים: אותיות קטנות, אותיות גדולות, ספרות ותווים שהם לא אלפאנומריים. מגדירים את הערך כ-COMPLEXITY_DEFAULT.
    הגבלת השימוש החוזר בסיסמאות --password-policy-reuse-interval קובעת כמה סיסמאות קודמות לא ניתן להגדיר מחדש.
    איסור שימוש בשם משתמש --password-policy-disallow-username-substring ההגדרה הזו מונעת שימוש בשם המשתמש בסיסמה. כדי להשבית את הבדיקה, משתמשים בפרמטר --no-password-policy-disallow-username-substring.
    הגדרת מרווח שינוי סיסמה --password-policy-password-change-interval מציינת את משך הזמן המינימלי שאחריו אפשר לשנות את הסיסמה, לדוגמה, 2m ל-2 דקות.
    קישוריות
    ניהול מאגר חיבורים --enable-connection-pooling ההגדרה הזו מפעילה את הניהול של מאגר החיבורים במופע החדש. אחרי שיוצרים את המופע, אפשר להגדיר הגדרות מתקדמות של Managed Connection Pooling.

    הערה: התכונה הזו זמינה רק במופעים של Cloud SQL במהדורת Enterprise Plus שהוגדרו בהתאם לדרישות של Managed Connection Pooling.

    כתובת IP פרטית --network

    --no-assign-ip (אופציונלי)

    --allocated-ip-range-name (אופציונלי)

    --enable-google-private-path (אופציונלי)

    --network: השם של רשת ה-VPC שרוצים להשתמש בה עבור המכונה הזו. הגישה לשירותים פרטיים צריכה להיות מוגדרת כבר ברשת. האפשרות זמינה רק לפקודת הבטא (gcloud beta sql instances create).

    --no-assign-ip: למופע תהיה רק כתובת IP פרטית.

    --allocated-ip-range-name: אם מציינים שם, הוא מגדיר שם לטווח שמוקצה לו טווח כתובות IP. לדוגמה, google-managed-services-default. שם הטווח צריך להיות בהתאם לRFC-1035 ולכלול בין 1 ל-63 תווים. (gcloud alpha sql instances create).

    --enable-google-private-path: אם משתמשים בפרמטר הזה, מאפשרים לשירותים אחרים של Google Cloud , כמו BigQuery, לגשת לנתונים ב-Cloud SQL ולבצע שאילתות לגבי הנתונים האלה דרך חיבור פרטי.

    הפרמטר הזה תקף רק אם:

    • משתמשים בפרמטר --no-assign-ip.
    • משתמשים בפרמטר --network כדי לציין את השם של רשת ה-VPC שרוצים להשתמש בה כדי ליצור חיבור פרטי.
    גישה ל-Data API --data-api-access שליטה בקישוריות למופע באמצעות Data API. היא מושבתת כברירת מחדל. מגדירים את הערך ל-ALLOW_DATA_API כדי לאפשר למשתמשים להשתמש ב-Data API כדי להתחבר למופע. במכונות וירטואליות שהוגדרה להן כתובת IP פרטית בלבד, משתמשים מורשים יכולים לשלוח קריאה ל-Data API במכונה הווירטואלית מהאינטרנט הציבורי. מגדירים את הערך ל-DISALLOW_DATA_API כדי לא לאפשר שימוש ב-Data API.
    כתובת IP ציבורית --authorized-networks בחיבורים עם כתובת IP ציבורית, רק חיבורים מרשתות מורשות יכולים להתחבר למופע. מידע נוסף
    אכיפת SSL

    --ssl-mode

    --require-ssl

    הפרמטר ssl-mode אוכף את האכיפה של SSL/TLS עבור החיבורים. מידע נוסף מופיע במאמר בנושא הגדרות של Cloud SQL ל-PostgreSQL.

    הפרמטר require-ssl קובע אם חיבורי SSL דרך IP נאכפים או לא. ‫require-ssl הוא פרמטר מדור קודם. במקום זאת, אתם צריכים להשתמש ב-ssl-mode. מידע נוסף זמין במאמר בנושא IpConfiguration.

    מצב CA של השרת --server-ca-mode

    הדגל --server-ca-mode מגדיר את הסוג של רשות אישורים (CA) של שרת למכונה. אפשר לבחור באחת מהאפשרויות הבאות:

    • GOOGLE_MANAGED_INTERNAL_CA: זהו ערך ברירת המחדל. באמצעות האפשרות הזו, רשות אישורים פנימית שמוקדשת לכל מופע של Cloud SQL חותמת על אישור השרת של אותו מופע.
    • GOOGLE_MANAGED_CAS_CA: באפשרות הזו נעשה שימוש בהיררכיית CA שכוללת CA בסיסי ו-CA של שרתים משניים שמנוהלים על ידי Cloud SQL ומאוחסנים ב- Google Cloud Certificate Authority Service (CA Service). רשויות אישורים (CA) של שרתים משניים באזור חותמות על אישורי השרתים ומשותפות בין מופעים באזור.
    • CUSTOMER_MANAGED_CAS_CA: באמצעות האפשרות הזו מגדירים את ההיררכיה של רשויות האישורים ומנהלים את הרוטציה של אישורי ה-CA. יוצרים מאגר CA ב-CA Service באותו אזור של המכונה. אחת מרשויות האישורים במאגר משמשת לחתימה על אישור השרת. מידע נוסף זמין במאמר בנושא שימוש ב-CA בניהול הלקוח.
    רוטציה אוטומטית של אישורי שרת --server-certificate-rotation-mode

    הדגל --server-certificate-rotation-mode מגדיר את סוג מצב הרוטציה של אישור השרת של המכונה. אפשר לבחור באחת מהאפשרויות הבאות:

    • NO_AUTOMATIC_ROTATION: זהו ערך ברירת המחדל. באפשרות הזו, לא יתבצע סבב אוטומטי של אישורי השרת. צריך לבצע רוטציה של אישורי השרת באופן ידני.
    • AUTOMATIC_ROTATION_DURING_MAINTENANCE: באמצעות האפשרות הזו, מופעל סיבוב אוטומטי של אישורי שרת במהלך תחזוקה מתוזמנת של Cloud SQL או עדכוני תחזוקה בשירות עצמי. הערך של server_ca_mode צריך להיות GOOGLE_MANAGED_CAS_CA או CUSTOMER_MANAGED_CAS_CA.
    ארכיטקטורת רשת --enforce-new-sql-network-architecture אפשר לאכוף את השימוש בארכיטקטורת הרשת החדשה עבור המופע בזמן היצירה. שימוש בדגל הזה כשיוצרים מכונה לפני שהפרויקט שודרג באופן מלא לארכיטקטורת הרשת החדשה עלול לגרום לצריכת יתר של כתובות IP או לכשל ביצירת מכונות אם לא נשארו מספיק כתובות IP בטווח כתובות ה-IP שהוקצה. מידע נוסף זמין במאמרים שדרוג מכונה לארכיטקטורת הרשת החדשה והקצאת טווח כתובות IP.
    סוג המכונה והאחסון
    סוג המכונה --tier משמש לציון מופע עם ליבת מעבד משותפת (db-f1-micro או db-g1-small). כדי להגדיר מופע בהתאמה אישית, משתמשים בפרמטרים --cpu או --memory. מידע נוסף זמין במאמר בנושא הגדרת מופע בהתאמה אישית.
    סוג אחסון --storage-type ההגדרה קובעת אם המופע שלכם משתמש באחסון SSD או HDD. מידע נוסף
    נפח אחסון --storage-size נפח האחסון שהוקצה למופע, ב-GB. מידע נוסף
    הגדלת נפח האחסון באופן אוטומטי --storage-auto-increase קובע אם Cloud SQL יספק אוטומטית יותר אחסון למופע כשייגמר המקום הפנוי. מידע נוסף
    מגבלת הגדלה אוטומטית של נפח האחסון --storage-auto-increase-limit ההגדרה הזו קובעת עד כמה גדול יכול להיות האחסון ב-Cloud SQL. האפשרות זמינה רק לפקודת הבטא (gcloud beta sql instances create). מידע נוסף
    מטמון נתונים (אופציונלי) --enable-data-cache הגדרה שמאפשרת או משביתה את מטמון הנתונים למופעים. מידע נוסף זמין במאמר בנושא מטמון נתונים.
    גיבויים אוטומטיים וזמינות גבוהה
    זמינות גבוהה --availability-type כדי להגדיר מופע עם זמינות גבוהה, מגדירים את הערך REGIONAL. מידע נוסף
    אזור משני --secondary-zone אם אתם יוצרים מכונה וירטואלית לזמינות גבוהה, אתם יכולים לציין גם את האזור הראשי וגם את האזור המשני באמצעות האפשרויות --zone ו---secondary-zone parameters. ההגבלות הבאות חלות כשמשתמשים באזור המשני במהלך יצירה או עריכה של מופע:
    • האזורים חייבים להיות אזורים תקינים.
    • אם מציינים את אזור המשנה, צריך לציין גם את האזור הראשי.
    • אם מציינים את האזורים הראשיים והמשניים, הם צריכים להיות אזורים נפרדים.

      אם מציינים אזור ראשי ואזור משני, הם חייבים להיות באותו אזור.

    גיבויים אוטומטיים --backup-start-time חלון הזמן שבו רוצים שהגיבויים יתחילו. מידע נוסף
    הגדרות שימור לגיבויים אוטומטיים --retained-backups-count מספר הגיבויים האוטומטיים שיישארו. מידע נוסף
    הגדרות שמירה של רישום בינארי --retained-transaction-log-days מספר הימים לשמירת יומני כתיבה מראש לצורך שחזור מערכת מנקודה מסוימת בזמן (PITR). מידע נוסף
    שחזור מערכת מנקודה מסוימת בזמן (PITR) --enable-point-in-time-recovery הפעלת שחזור מערכת מנקודה מסוימת בזמן ורישום ביומן לפני כתיבה. מידע נוסף
    הוספת דגלים למסד נתונים
    דגלים של מסדי נתונים --database-flags אפשר להשתמש בדגלים של מסד הנתונים כדי לשלוט בהגדרות ובפרמטרים של המופע. מידע נוסף על דגלים של מסדי נתונים
    לוח זמנים לתחזוקה
    חלון זמן לתחזוקה --maintenance-window-day,
    --maintenance-window-hour
    הגדרת חלון של שעה שבו Cloud SQL יכול לבצע תחזוקה שגורמת להפרעה במכונה. אם לא מגדירים חלון זמן לתחזוקה, יכול להיות שיתבצעו שיבושים בתחזוקה בכל שלב. מידע נוסף
    תזמון התחזוקה --maintenance-release-channel התזמון המועדף לעדכוני מופעים, ביחס למופעים אחרים באותו פרויקט. אפשר להשתמש ב-preview כדי לראות עדכונים קודמים וב-production כדי לראות עדכונים מאוחרים יותר. מידע נוסף
    שילוב עם Vertex AI
    --enable-google-ml-integration מאפשר למכונות Cloud SQL להתחבר ל-Vertex AI כדי להעביר בקשות לתחזיות בזמן אמת ותובנות ל-AI.
    --database-flags cloudsql.enable_google_ml_integration=on הפעלת הדגל הזה מאפשרת לשלב את Cloud SQL עם Vertex AI.
    SAN בהתאמה אישית
    הוספת שם חלופי של בעלים (subject) מותאם אישית (SAN) --custom-subject-alternative-names=DNS_NAMES

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

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

  3. שימו לב לכתובת ה-IP שהוקצתה באופן אוטומטי.

    אם אתם לא משתמשים בשרת proxy ל-Cloud SQL Auth, תשתמשו בכתובת הזו ככתובת המארח שהאפליקציות או הכלים שלכם משתמשים בה כדי להתחבר למכונה.

  4. מגדירים את הסיסמה למשתמש postgres:
          gcloud sql users set-password postgres \
          --instance=INSTANCE_NAME \
          --password=PASSWORD
          

Terraform

כדי ליצור מכונה, משתמשים במשאב של Terraform.

resource "google_sql_database_instance" "postgres_pvp_instance_name" {
  name             = "postgres-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "POSTGRES_14"
  root_password    = "abcABC123!"
  settings {
    tier = "db-custom-2-7680"
    password_validation_policy {
      min_length                  = 6
      reuse_interval              = 2
      complexity                  = "COMPLEXITY_DEFAULT"
      disallow_username_substring = true
      password_change_interval    = "30s"
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

החלה של השינויים

כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

מחיקת השינויים

כדי למחוק את השינויים:

  1. כדי להשבית את ההגנה מפני מחיקה, מגדירים בקובץ התצורה של Terraform את הארגומנט deletion_protection לערך false.
    deletion_protection =  "false"
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:
    terraform apply
  1. כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

    terraform destroy

REST v1

יצירת המופע

בדוגמה הזו נוצרת מכונה. נכללים גם פרמטרים אופציונליים מסוימים, כמו backups ו-binary logging. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף Instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר הגדרות של מופעים.

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • REGION: האזור
  • DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים (לדוגמה, POSTGRES_18)
  • PASSWORD: הסיסמה של משתמש ה-Root
  • MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), באופן הבא: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: מהדורת Cloud SQL שלכם

  • DATA_CACHE_ENABLED: (אופציונלי) מגדירים את הערך true כדי להפעיל מטמון נתונים עבור המופע
  • PRIVATE_NETWORK: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המופע הזה. צריך להגדיר מראש את הגישה לשירותים פרטיים ברשת.
  • AUTHORIZED_NETWORKS: לחיבורי IP ציבורי, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.
  • CA_MODE: מציינים היררכיית רשויות אישורים למופע, GOOGLE_MANAGED_INTERNAL_CA או GOOGLE_MANAGED_CAS_CA. אם לא מציינים את serverCaMode, הגדרת ברירת המחדל היא GOOGLE_MANAGED_INTERNAL_CA. התכונה הזו נמצאת בגרסת טרום-השקה.
  • SERVER_CERTIFICATE_ROTATION_MODE: כדי להגדיר רוטציה אוטומטית של אישור השרת עבור המופע, מציינים AUTOMATIC_ROTATION_DURING_MAINTENANCE. אם לא מציינים את serverCertificateRotationMode, הגדרת ברירת המחדל היא NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: מוסיפים רשימה מופרדת בפסיקים של עד שלושה שמות DNS לאישור השרת של מופע Cloud SQL. אפשר לאבטח כמה שמות DNS באמצעות אישור אחד. התכונה הזו זמינה בגרסת טרום-השקה ורק במופעים של CUSTOMER_MANAGED_CAS_CA.

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

  • enablePasswordPolicy: הפעלת מדיניות הסיסמאות כשההגדרה היא true.

    כדי להסיר את מדיניות הסיסמאות, אפשר להשתמש בבקשת PATCH עם null כערך של enablePasswordPolicy. במקרה כזה, הפרמטרים האחרים של מדיניות הסיסמאות מאופסים.

  • minLength: מציינת את מספר התווים המינימלי שהסיסמה צריכה להכיל.
  • complexity: בודקת אם הסיסמה היא שילוב של אותיות קטנות, אותיות גדולות, ספרות ותווים לא אלפאנומריים. ערך ברירת המחדל הוא COMPLEXITY_DEFAULT.
  • reuseInterval: מציינת את מספר הסיסמאות הקודמות שאסור להשתמש בהן שוב.
  • disallowUsernameSubstring: אם הערך הוא true, אי אפשר להשתמש בשם המשתמש בסיסמה.
  • passwordChangeInterval: מציינת את משך הזמן המינימלי שאחריו אפשר לשנות את הסיסמה. הערך מופיע בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, ומסתיים ב-s. לדוגמה, 3.5s.

כדי ליצור את המופע כך שניתן יהיה לשלב אותו עם Vertex AI, צריך לכלול את האובייקט enableGoogleMlIntegration בבקשה. השילוב הזה מאפשר להחיל מודלים גדולים של שפה (LLM), שמתארחים ב-Vertex AI, על מסד נתונים של Cloud SQL ל-PostgreSQL.

מגדירים את הפרמטרים הבאים, לפי הצורך:

  • enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות ל-תחזיות בזמן אמת ולתובנות ל-AI
  • cloudsql.enable_google_ml_integration: כשהפרמטר הזה מוגדר ל-on, ‏ Cloud SQL יכול להשתלב עם Vertex AI

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

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

תוכן בקשת JSON:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig": {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API"
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

התשובה היא פעולה ארוכת טווח, שיכולה להימשך כמה דקות.

אחזור כתובת ה-IPv4

מאחזרים את כתובת ה-IPv4 שהוקצתה באופן אוטומטי למכונה החדשה:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המופע שנוצר בשלב הקודם

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

מחפשים את השדה ipAddress בתשובה.

REST v1beta4

יצירת המופע

בדוגמה הזו נוצרת מכונה. נכללים גם פרמטרים אופציונליים מסוימים, כמו backups ו-binary logging. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים של אזור, זמין במאמר הגדרות של מופעים

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • REGION: האזור
  • DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים (לדוגמה, POSTGRES_18)
  • PASSWORD: הסיסמה של משתמש ה-Root
  • MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), באופן הבא: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: מהדורת Cloud SQL שלכם

  • DATA_CACHE_ENABLED: (אופציונלי) מגדירים את הערך true כדי להפעיל מטמון נתונים עבור המופע
  • PRIVATE_NETWORK: מציינים את השם של רשת הענן הווירטואלי הפרטי (VPC) שרוצים להשתמש בה עבור המופע הזה. צריך להגדיר מראש את הגישה לשירותים פרטיים ברשת.
  • AUTHORIZED_NETWORKS: לחיבורי IP ציבוריים, מציינים את החיבורים מרשתות מורשות שיכולות להתחבר למופע.
  • CA_MODE: מציינים היררכיית רשויות אישורים למופע, GOOGLE_MANAGED_INTERNAL_CA או GOOGLE_MANAGED_CAS_CA. אם לא מציינים את serverCaMode, הגדרת ברירת המחדל היא GOOGLE_MANAGED_INTERNAL_CA. התכונה הזו נמצאת בגרסת טרום-השקה.
  • SERVER_CERTIFICATE_ROTATION_MODE: כדי להגדיר רוטציה אוטומטית של אישור השרת עבור המופע, מציינים AUTOMATIC_ROTATION_DURING_MAINTENANCE. אם לא מציינים את serverCertificateRotationMode, אז הגדרת ברירת המחדל היא NO_AUTOMATIC_ROTATION.
  • DNS_NAMES: מוסיפים רשימה מופרדת בפסיקים של עד שלושה שמות DNS לאישור השרת של מופע Cloud SQL. אפשר לאבטח כמה שמות DNS באמצעות אישור אחד. התכונה הזו זמינה בגרסת טרום-השקה ורק במופעים של CUSTOMER_MANAGED_CAS_CA.

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

  • enablePasswordPolicy: הפעלת מדיניות הסיסמאות כשההגדרה היא true.

    כדי להסיר את מדיניות הסיסמאות, אפשר להשתמש בבקשת PATCH עם null כערך של enablePasswordPolicy. במקרה כזה, הפרמטרים האחרים של מדיניות הסיסמאות מאופסים.

  • minLength: מציינת את מספר התווים המינימלי שהסיסמה צריכה להכיל.
  • complexity: בודקת אם הסיסמה היא שילוב של אותיות קטנות, אותיות גדולות, ספרות ותווים לא אלפאנומריים. ערך ברירת המחדל הוא COMPLEXITY_DEFAULT.
  • reuseInterval: מציינת את מספר הסיסמאות הקודמות שאסור להשתמש בהן שוב.
  • disallowUsernameSubstring: אם הערך הוא true, אי אפשר להשתמש בשם המשתמש בסיסמה.
  • passwordChangeInterval: מציינת את משך הזמן המינימלי שאחריו אפשר לשנות את הסיסמה. הערך מופיע בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, ומסתיים ב-s. לדוגמה, 3.5s.

כדי ליצור את המופע כך שניתן יהיה לשלב אותו עם Vertex AI, צריך לכלול את האובייקט enableGoogleMlIntegration בבקשה. השילוב הזה מאפשר להחיל מודלים גדולים של שפה (LLM), שמתארחים ב-Vertex AI, על מסד נתונים של Cloud SQL ל-PostgreSQL.

מגדירים את הפרמטרים הבאים, לפי הצורך:

  • enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות ל-תחזיות בזמן אמת ולתובנות ל-AI
  • cloudsql.enable_google_ml_integration: כשהפרמטר הזה מוגדר ל-on, ‏ Cloud SQL יכול להשתלב עם Vertex AI

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

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

תוכן בקשת JSON:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig": {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true,
      "serverCaMode": "CA_MODE",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API"
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

התשובה היא פעולה ארוכת טווח, שעשויה להימשך כמה דקות.

אחזור כתובת ה-IPv4

מאחזרים את כתובת ה-IPv4 שהוקצתה באופן אוטומטי למכונה החדשה:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המופע שנוצר בשלב הקודם

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

מחפשים את השדה ipAddress בתשובה.

כדי לראות איך בקשת API בארכיטקטורת REST הבסיסית בנויה למשימה הזו, אפשר לעיין ב-APIs Explorer בדף instances:insert.

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

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

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

הגדרות מותאמות אישית של מופעים

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

במכונות במהדורת Cloud SQL Enterprise Plus, ‏ Cloud SQL מציע סוגי מכונות מוגדרים מראש למכונות שלכם בסדרות המכונות N2 ו-C4A.

למכונות במהדורת Cloud SQL Enterprise,‏ Cloud SQL מציע את סדרות המכונות general purpose shared core, general purpose dedicated core ו-N4.

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

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

מידע נוסף על סוגי המכונות וסדרות המכונות שזמינים למכונת Cloud SQL שלכם זמין במאמר סקירה כללית על סדרות מכונות.

פתרון בעיות

שגיאה פתרון בעיות
הודעת שגיאה: The zone or region does not have sufficient resources to handle the request at the moment.

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

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

הודעת שגיאה: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. אין יותר כתובות זמינות בטווח כתובות ה-IP שהוקצה. יכולים להיות כמה תרחישים אפשריים:
  • הגודל של טווח כתובות ה-IP שהוקצה לחיבור הפרטי לשירות קטן מ-‎ /24.
  • הגודל של טווח כתובות ה-IP שהוקצה לחיבור הפרטי לשירות קטן מדי ביחס למספר המכונות של Cloud SQL.
  • הדרישה לגבי הגודל של טווח כתובות ה-IP שהוקצה תהיה גדולה יותר אם המכונות הווירטואליות נוצרות בכמה אזורים. הצגת גודל הטווח שהוקצה

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

אם השתמשתם בדגל --allocated-ip-range-name כשיצרתם את מופע Cloud SQL, תוכלו להרחיב רק את טווח כתובות ה-IP שצוין.

אם מקצים טווח חדש, צריך לוודא שההקצאה לא חופפת להקצאות קיימות.

אחרי שיוצרים טווח IP חדש, מעדכנים את הקישור בין רשתות ה-VPC באמצעות הפקודה הבאה:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

אם מרחיבים הקצאה קיימת, חשוב להגדיל רק את טווח ההקצאה ולא להקטין אותו. לדוגמה, אם ההקצאה המקורית הייתה 10.0.10.0/24, ההקצאה החדשה צריכה להיות לפחות 10.0.10.0/23.

באופן כללי, אם מתחילים מהקצאה של ‎ /24, מומלץ להקטין את ‎ /mask ב-1 לכל תנאי (קבוצת סוגי מופעים נוספת, אזור נוסף). לדוגמה, אם מנסים ליצור שתי קבוצות של סוגי מופעים באותו הקצאה, מעבר מ-‎ /24 ל-‎ /23 מספיק.

אחרי שמרחיבים טווח IP קיים, מעדכנים את ה-VPC Peering באמצעות הפקודה הבאה:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
הודעת שגיאה: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. נסו ליצור שוב את המכונה של Cloud SQL.
הודעת שגיאה: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

מפעילים את Service Networking API באמצעות הפקודה הבאה ומנסים שוב ליצור את מכונת Cloud SQL.

gcloud services enable servicenetworking.googleapis.com \
--project=PROJECT_ID
    
הודעת שגיאה: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. כשיוצרים מופע באמצעות כתובת IP פרטית, נוצר חשבון שירות בדיוק בזמן באמצעות Service Networking API. אם הפעלתם את Service Networking API רק לאחרונה, יכול להיות שחשבון השירות לא ייווצר ויצירת המופע תיכשל. במקרה כזה, צריך לחכות עד שחשבון השירות יתעדכן בכל המערכת או להוסיף אותו ידנית עם ההרשאות הנדרשות.
הודעת שגיאה: More than 3 subject alternative names are not allowed. אתם מנסים להשתמש ב-SAN בהתאמה אישית כדי להוסיף יותר משלושה שמות DNS לאישור השרת של מופע Cloud SQL. אי אפשר להוסיף למופע יותר משלושה שמות DNS.
הודעת שגיאה: Subject alternative names %s is too long. The maximum length is 253 characters. מוודאים ששמות ה-DNS שרוצים להוסיף לאישור השרת של מופע Cloud SQL לא מכילים יותר מ-253 תווים.
הודעת שגיאה: Subject alternative name %s is invalid.

מוודאים ששמות ה-DNS שרוצים להוסיף לאישור השרת של מופע Cloud SQL עומדים בקריטריונים הבאים:

  • הם לא כוללים תווים כלליים לחיפוש.
  • הם לא מסתיימים בנקודות.
  • הם עומדים בדרישות של RFC 1034.

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

  1. יצירת מסד נתונים של PostgreSQL במכונה.
  2. יוצרים משתמשי PostgreSQL במכונה.
  3. גישה מאובטחת למופע ושליטה בו.
  4. מתחברים למופע באמצעות לקוח PostgreSQL.
  5. ייבוא נתונים למסד הנתונים.
  6. מידע על הגדרות של מופע