התחברות ל-Cloud SQL: כתובת IP ציבורית ורשתות מורשות

1. מבוא

עדכון אחרון: 2020-05-04

מידע על החיבור

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

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

מה תפַתחו

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

ההוראות יכללו גם הסבר מפורט על ביצוע פעולות במסוף GCP, וגם את הפקודות המקבילות של gcloud לשימוש ב-CLI או באוטומציה.

אלה השלבים:

  • יוצרים מכונת Cloud SQL (במדריך הזה נעשה שימוש ב-Postgres, אבל התהליך דומה גם ל-MySQL או ל-SQL Server) ומאשרים כתובות IP ספציפיות שמורשות להתחבר אליה.

מה תצטרכו

  • חשבון GCP שיש לכם הרשאות להפעלת ממשקי API וליצירת שירותים בו
  • לקוח Postgres שמותקן כדי לאמת את הקישוריות (או לקוח MySQL אם רוצים להשתמש ב-MySQL במקום ב-Postgres)

‫2. יצירת מכונה של Cloud SQL

‫Cloud SQL הוא שירות מסדי נתונים רלציוניים מנוהל. הוא תומך ב-MySQL, ‏ PostgreSQL ושרת SQL. ב-codelab הזה ניצור מסד נתונים של Postgres, אבל ההוראות דומות לכל שלושת מסדי הנתונים.

במסוף

עוברים לדף Cloud SQL ולוחצים על הלחצן 241836b315e11bf5.png.

כמו שציינתי, רוב התוכן של ה-codelab הזה רלוונטי לכל סוג של SQL, אבל לצורך ה-codelab הזה, צריך לבחור ב-PostgreSQL.

  1. הקצאת מזהה למכונה
  2. בוחרים אזור שקרוב למקום שבו נמצאים
  3. מזינים סיסמה למשתמש שמוגדר כברירת מחדל (שם המשתמש יהיה ברירת המחדל של מסד הנתונים שנבחר, למשל root ל-MySQL או postgres ל-PostgreSQL)
  4. גוללים למטה ולוחצים על show configuration options
  5. הרחבת הקטע Connectivity
  6. מוודאים שהתיבה Public IP מסומנת ושהתיבה Private IP לא מסומנת.
  7. לוחצים על הלחצן 883b32ec2734de01.png.
  8. בודקים מהי כתובת ה-IP שממנה מתבצע החיבור. הדרך הכי קלה היא פשוט לחפש ב-Google את המחרוזת 'מהי כתובת ה-IP שלי'. כתובת ה-IP הציבורית שלכם תופיע בתוצאות החיפוש.
  1. מזינים את הגדרת ה-IP בשדה הרשת, נותנים לו שם אם רוצים ולוחצים על סיום בתיבה New Network.
  2. גוללים למטה ולוחצים על סמל היצירה

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

אחרי שהמופע נוצר, לוחצים עליו ברשימה ובדף הסקירה הכללית, בקטע Connect to this instance, מעתיקים את public IP address שמופיע שם. הוא לא יופיע שם עד שהמופע ייווצר באופן מלא, גם אם אפשר ללחוץ על הפרטים לפני שהמופע נוצר באופן מלא.

שימוש ב-gcloud

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

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

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

gcloud sql tiers list

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

gcloud sql tiers list | grep db-f1-micro

הפקודה ליצירת המופע עצמו תיראה כך (אל תשכחו להחליף את <AUTHORIZED_IP> בכתובת ה-IP שקיבלתם מהדפדפן או מהפקודה dig, את <REGION> באזור שקרוב אליכם ואת הסיסמה של משתמש Root postgres):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

הפעולה הזו תימשך כמה דקות.

אחרי שהפעולה תסתיים, הפלט ב-CLI יכלול את PRIMARY_ADDRESS של המופע. מעתיקים את הערך הזה לשלב הבא.

‫3. בדיקת החיבור וסיום התהליך

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

psql "host=<IP copied from previous step> port=5432 sslmode=disable user=postgres"

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

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

מה השלב הבא?

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

מאמרי עזרה