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

1. מבוא

עדכון אחרון:4 במאי 2020

חשיבה על החיבור

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

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

מה תפַתחו

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

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

השלבים הנפרדים הם:

  • יצירת מכונה של Cloud SQL (המדריך הזה משתמש ב-Postgres, אבל הוא פועל באופן דומה ב-MySQL או בשרת SQL) ואישור כתובות 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. צריך להזין סיסמה למשתמש שמוגדר כברירת המחדל (שם המשתמש יוגדר כברירת מחדל ל-DB שנבחר, למשל 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 שקיבלתם מהדפדפן או מהחיפוש האתר עצמו, ובכתובת <REGION> שבכתובת הקרובה אליכם, ובסיסמה עבור משתמש השורש '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 הועתק מהשלב הקודם> Port=5432 sslmode=disable user=postgres"

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

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

מה השלב הבא?

כדאי לנסות כמה מ-Codelabs האלה...

מסמכי עזר