בדף הזה נסביר איך לחבר מופע פרטי של Cloud Data Fusion למופע פרטי של Cloud SQL שמארח מסד נתונים של MySQL. הגדרה דומה מתאימה למופעי Postgres ו-SQL Server. אפשר ליצור קשרים עם אנשים מחוץ לארגון.
מומלץ: מטעמי אבטחה, כדאי להשתמש במכונות פרטיות של Cloud SQL ו-Cloud Data Fusion.
יצירת מכונות פרטיות ב-Cloud Data Fusion וב-Cloud SQL
כדי להתחבר למכונת Cloud SQL פרטית ממכונת Cloud Data Fusion פרטית, משתמשים במכונה וירטואלית של Compute Engine בתור שרת proxy. נדרש פרוקסי כי רשת Cloud SQL לא מקושרת ישירות לרשת Cloud Data Fusion, ורשתות שכנות לא יכולות לתקשר זו עם זו (ראו סקירה כללית על קישור בין רשתות VPC שכנות).
כדי ליצור את המופעים הפרטיים, פועלים לפי השלבים הבאים:
אם עדיין אין לכם מכונה, צרו מכונת Cloud Data Fusion פרטית. למשל:
- הגדרת רשת VPC
- הקצאת טווח כתובות IP
יוצרים מכונת Cloud SQL פרטית באותה רשת VPC שבה נמצאת מכונת Cloud Data Fusion.
אחרי שיוצרים את המכונה, עוברים לדף Instances ב-Cloud SQL ומרחיבים את Instance details. בקטע Connect to this instance, מעתיקים את כתובת ה-IP ואת שם החיבור.
יצירת מכונה וירטואלית פרטית ב-Compute Engine
כדי ליצור את המכונה הווירטואלית, אפשר להזין את הפקודות הבאות ב-Cloud Shell או בסביבה אחרת שבה מותקן Google Cloud SDK.
הפקודות יוצרות מכונה וירטואלית עם כתובות IP פנימיות וציבוריות (הפרמטר --no-address לא מצוין בפקודה לדוגמה ליצירת מכונה וירטואלית), כדי שהמכונה הווירטואלית תוכל לגשת ל-Container Registry כדי לקבל את תמונת ה-proxy. אפשר להשתמש בכתובות IP פנימיות, אבל צריך גם להפעיל גישה פרטית ל-Google עבור תת-הרשת שבה נמצאת המכונה הווירטואלית.
מייצאים את משתני הסביבה הבאים:
export PROJECT=CUSTOMER_PROJECT export REGION=VM_REGION export ZONE=`gcloud compute zones list --filter="name=${REGION}" --limit 1 --uri --project=${PROJECT}| sed 's/.*\///'` export NETWORK=CUSTOMER_VPC_NETWORK_NAME export SUBNET=CUSTOMER_VPC_SUBNET_NAME export INSTANCE_NAME=COMPUTE_ENGINE_VM_NAME export SQL_CONN=SQL_INSTANCE_CONNECTION_NAME export CDF_IP_RANGE=CLOUD_DATA_FUSION_IP_RANGE export VM_IMAGE=$(gcloud compute images list --project=$PROJECT --filter=family:cos-stable --format='value(selfLink.scope())' --limit=1) export SQL_PORT=DB_PORT # MySQL 3306 # PostgreSQL 5432 # SQLServer 1433מחליפים את מה שכתוב בשדות הבאים:
-
CUSTOMER_PROJECT: שם הפרויקט -
VM_REGION: האזור שבו נמצאת המכונה הווירטואלית של Compute Engine -
CUSTOMER_VPC_NETWORK_NAME: השם של הרשת -
CUSTOMER_VPC_SUBNET_NAME: השם של רשת המשנה -
COMPUTE_ENGINE_VM_NAME: השם של המכונה הווירטואלית ב-Compute Engine -
SQL_INSTANCE_CONNECTION_NAME: שם החיבור מהשלב הקודם -
CLOUD_DATA_FUSION_IP_RANGE: טווח כתובות ה-IP -
DB_PORT: מספר היציאה של מסד הנתונים ב-Cloud SQL
-
יוצרים כלל חומת אש שמאפשר תעבורת נתונים נכנסת של Cloud Data Fusion באמצעות הפקודה הבאה של ה-CLI של gcloud:
gcloud compute firewall-rules create allow-private-cdf \ --allow=tcp:22,tcp:${SQL_PORT} \ --source-ranges=$CDF_IP_RANGE --network=$NETWORK --project=$PROJECTיוצרים את ה-VM באמצעות הפקודה הבאה ב-CLI של gcloud:
gcloud compute --project=${PROJECT} instances create ${INSTANCE_NAME} \ --zone=${ZONE} \ --machine-type=g1-small \ --subnet=${SUBNET} \ --metadata=startup-script="docker run -d -p 0.0.0.0:${SQL_PORT}:${SQL_PORT} gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy -instances=${SQL_CONN}=tcp:0.0.0.0:${SQL_PORT}" \ --maintenance-policy=MIGRATE \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --image=${VM_IMAGE} \ --image-project=cos-cloudמריצים את הפקודה הבאה ב-CLI של gcloud כדי לקבל את כתובת ה-IP הפנימית של מכונת ה-VM:
export IP=`gcloud compute \ --project=${PROJECT} instances describe ${INSTANCE_NAME} \ --zone ${ZONE} | grep "networkIP" | awk '{print $2}'`מקדמים את כתובת ה-IP הפנימית של המכונה הווירטואלית לכתובת IP סטטית באמצעות הפקודה הבאה ב-CLI של gcloud:
gcloud compute --project=${PROJECT} addresses create mysql-proxy \ --addresses ${IP} --region ${REGION} --subnet ${SUBNET}מקבלים את כתובת ה-IP שתשמש במחרוזת החיבור של Cloud Data Fusion MySQL JDBC כשמגדירים את החיבור:
echo ${IP}
אחרי שהמכונה הווירטואלית נוצרת עם כתובת IP סטטית, משתמשים בכתובת ה-IP כמארח או מזינים אותה במחרוזת החיבור של JDBC כדי לגשת למסד הנתונים של MySQL מ-Cloud Data Fusion.
גישה ל-MySQL מתוך Cloud Data Fusion
כדי להתחבר למכונת MySQL מתוך מכונת Cloud Data Fusion, צריך להתקין את מנהל ההתקן MySQL JDBC מ-Cloud Data Fusion Hub (או ישירות מההורדות של קהילת MySQL).
מזינים את פרטי החיבור למסד הנתונים של MySQL ב-Cloud Data Fusion. אפשר להזין את הפרטים ולבדוק את החיבור בדף Wrangler.
אופציונלי: דרכים אחרות להתחבר ל-MySQL
אפשר לגשת ל-MySQL ב-Cloud Data Fusion בדרכים הבאות:
- בדף Studio, לוחצים על התוסף של מקור MySQL ומזינים את פרטי החיבור.
בדף Studio, במקום זאת, משתמשים בתוסף Database source (מקור מסד נתונים), שיש לו מאפיינים דומים (Connection string (מחרוזת חיבור), Username (שם משתמש), Password (סיסמה) ו-Connection Arguments (ארגומנטים של חיבור)).
חיבורים אחרים
מומלץ לקשר בין מופעים פרטיים, אבל אפשר גם לקשר בין:
- ממכונת Cloud Data Fusion ציבורית למכונת Cloud SQL ציבורית (באמצעות שרת proxy ציבורי של Cloud SQL או הוספה לרשימת ההיתרים של טווח
0.0.0.0/0ברשת מורשית). אפשר לעיין באפשרות הקישור דרך IP ציבורי ב-Cloud SQL. - מכונה פרטית של Cloud Data Fusion ומכונה ציבורית של Cloud SQL (באמצעות שרת proxy ציבורי של Cloud SQL ברשת מורשית).
מכונת Cloud Data Fusion ציבורית ומכונת Cloud SQL פרטית.