בדף הזה נסביר איך להתחבר לאפליקציות מסוג תוכנה כשירות (SaaS) כמו Salesforce, ולשירותי ענן של צד שלישי כמו Amazon S3, ממופע פרטי של Cloud Data Fusion כשמפתחים צינור נתונים.
במדריך הזה אנחנו משתמשים במונחים תעבורת נתונים יוצאת (egress) ושליטה בתעבורת נתונים יוצאת:
תעבורת נתונים יוצאת (egress) היא תעבורת הנתונים ברשת שיוצאת מ- Google Cloud דרך האינטרנט הציבורי. בדרך כלל, יציאה מתרחשת כשיוצרים צינור שקורא משירות SaaS כמו Salesforce או כותב אליו, או משירות ענן ציבורי כמו Amazon S3.
שליטה בתעבורת נתונים יוצאת (egress) מגדירה אמצעי הגנה לתעבורת נתונים יוצאת באמצעות מכונה וירטואלית של proxy. היא מאפשרת לתעבורת נתונים יוצאת להגיע לקבוצה של דומיינים שהוגדרו מראש, ומונעת ממנה להגיע לכל שאר הדומיינים. הוא מאפשר ליצור היקף אבטחה רחב יותר לתעבורת נתונים יוצאת, ויכול למנוע יציאה לא רצויה ממופע פרטי.
בתרשים הבא של ארכיטקטורת המערכת מוצג איך מופע פרטי של Cloud Data Fusion מתחבר לאינטרנט הציבורי כשמפתחים צינור עיבוד נתונים:

כשמעצבים את הפייפליין בתרחיש הזה, Cloud Data Fusion מעביר את תעבורת הנתונים היוצאת (egress) דרך פרויקט הלקוח בתצוגה המקדימה של Cloud Data Fusion או ב-Wrangler. בתהליך הזה נעזרים במקורות המידע הבאים:
מסלול מותאם אישית ברשת VPC: מסלול מותאם אישית ברשת VPC מעביר תנועה דרך מסלול מותאם אישית שיובא למכונות וירטואליות של שערים, שמייצאות לרשת VPC של פרויקט דייר באמצעות VPC Peering.
מכונה וירטואלית של שער: מכונה וירטואלית של שער מנתבת תעבורת נתונים יוצאת מ- Google Cloud מפרויקט הדייר של Cloud Data Fusion אל SaaS או אל ענן של צד שלישי דרך האינטרנט הציבורי. אתם מנהלים את המכונה הווירטואלית הזו בפרויקט הלקוח שלכם. אפשר להגדיר אותו בסביבת זמינות גבוהה (HA) באמצעות מאזן עומסים פנימי (ILB). מומלץ להשתמש מחדש ב-VM לכמה מופעים פרטיים של Cloud Data Fusion באותו VPC.
מידע על הגדרת בקרת יציאה בסביבות התכנון והביצוע זמין במאמר שליטה ביציאה במופע פרטי.
לפני שמתחילים
אפשר להתחבר למקור ציבורי ממופע פרטי ב-Cloud Data Fusion בגרסה 6.4 ואילך. כדי להשתמש באחת מהגרסאות האלה, אתם יכולים ליצור מכונת Cloud Data Fusion פרטית חדשה או לשדרג מכונה קיימת לגרסה 6.4.0.
כשיוצרים חיבור VPC Network Peering עבור המכונה, בוחרים באפשרות Export routes.
הגדרת חיבור לאינטרנט
בשלבים הבאים מוסבר איך לגשת לקטגוריה של Amazon S3 ממופע פרטי של Cloud Data Fusion ב-Wrangler. אותם השלבים חלים על גישה לכל מקור נתונים באינטרנט הציבורי כשמעצבים צינור ב-Preview או ב-Wrangler.
במדריך הזה נעשה שימוש רק במכונה וירטואלית אחת, אבל לאפליקציות קריטיות מומלץ ליצור מכונות וירטואליות עם איזון עומסים. מידע נוסף זמין במאמר הגדרת מכונה וירטואלית עם זמינות גבוהה.
יצירת שער NAT
יוצרים שער Cloud NAT באותו אזור ורשת VPC כמו המכונה הפרטית של Cloud Data Fusion.
יצירת מופע של מכונה וירטואלית של שער וכללים לחומת האש
המסוף
נכנסים לדף VM instances.
לוחצים על Create instance. מומלץ להשתמש במכונה וירטואלית ללא כתובת IP חיצונית.
משתמשים באותו VPC שמוגדר בו קישור בין רשתות שכנות (peering) עם מכונת Cloud Data Fusion פרטית. מידע נוסף על רשת VPC Network Peering בתרחיש הזה זמין במאמר לפני שמתחילים.
מפעילים העברת IP עבור המכונה באותה רשת שבה נמצאת מכונת Cloud Data Fusion.
בשדה סקריפט לטעינה בזמן ההפעלה, מזינים את הסקריפט הבא:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-saveמידע נוסף זמין במאמר בנושא הרצת סקריפטים להפעלה.
כדי לקבל את טווח כתובות ה-IP שהוקצה למכונת Cloud Data Fusion, עוברים לדף פרטי המכונה ב-Cloud Data Fusion.

gcloud
כדי ליצור את מכונת השער הווירטואלית ואת כללי חומת האש, מריצים את הסקריפט הבא ב-Google Cloud CLI:
export CDF_PROJECT=CDF_PROJECT export GATEWAY_VM=GATEWAY_VM_NAME export ZONE=VM_ZONE export SUBNET=SUBNET export VPC_NETWORK=VPC_NETWORK export COMPUTE_ENGINE_SA=COMPUTE_ENGINE_SA gcloud beta compute --project=$CDF_PROJECT instances create $GATEWAY_VM --zone=$ZONE --machine-type=e2-medium --subnet=$SUBNET --network-tier=PREMIUM --metadata=startup-script=\#\!\ /bin/bash$'\n'echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward$'\n'iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf$'\n'iptables-save --can-ip-forward --no-address --maintenance-policy=MIGRATE --service-account=$COMPUTE_ENGINE_SA --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --tags=http-server,https-server --image=debian-10-buster-v20210316 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=$GATEWAY_VM --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-http --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:80 --source-ranges=CDF_IP_RANGE --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-https --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE --target-tags=https-server
מחליפים את מה שכתוב בשדות הבאים:
- CDF_PROJECT: המזהה הייחודי של הפרויקט שאפשר להתאים אישית
- GATEWAY_VM: השם של המכונה הווירטואלית שרוצים להגדיר
- ZONE: האזור של המכונה הווירטואלית
- SUBNET: תת-הרשת
- VPC_NETWORK: השם של מכונת ה-VM
- COMPUTE_ENGINE_SA: השם של חשבון השירות של Compute Engine
- CDF_IP_RANGE: טווח כתובות ה-IP שהוקצה למופע של Cloud Data Fusion
שימוש ב-VPC משותף
אם אתם משתמשים ב-VPC משותף כדי לחבר את מופע Cloud Data Fusion הפרטי שלכם למקורות באינטרנט הציבורי, אתם צריכים ליצור מכונת שער וירטואלית בפרויקט המארח שבו מוגדר קישור בין רשתות שכנות של VPC עם פרויקט הדייר.
יצירת מסלול בהתאמה אישית
יוצרים מסלול מותאם אישית כדי להתחבר למופע של מכונה וירטואלית של שער שיצרתם.
המסוף
כדי ליצור מסלול במסוף Google Cloud , אפשר לעיין במאמר בנושא הוספת מסלול סטטי.
כשמגדירים את המסלול:
- מגדירים את העדיפות לערך שגדול מ-
1001או שווה לו. מגדירים את היעד לטווח כתובות ה-IP שהוקצה למופע Cloud Data Fusion. - משתמשים באותו פרויקט ובאותו VPC כמו במכונת Cloud Data Fusion הפרטית.
- חשוב לוודא שההגדרה של הקישור בין רשתות שכנות ב-VPC מאפשרת ייצוא של נתיבים, כדי שפרויקט הדייר של Cloud Data Fusion יוכל לייבא את הנתיב המותאם אישית הזה דרך הקישור בין רשתות שכנות ב-VPC.
gcloud
כדי ליצור את המסלול ב-CLI של gcloud:
export ROUTE=ROUTE gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-instance=$GATEWAY_VM \ --next-hop-instance-zone=$ZONE
מחליפים את מה שכתוב בשדות הבאים:
- ROUTE: השם של המסלול המותאם אישית.
אימות ההגדרה
אחרי שמבצעים את השלבים הקודמים, צריך לוודא שאפשר לגשת לשירותי S3 bucket (או לשירות SaaS אחר או לשירות ענן ציבורי) בתצוגה המקדימה וב-Wrangler.
הגדרת שער עם זמינות גבוהה
מומלץ: לאפליקציות קריטיות, מומלץ ליצור מכונות וירטואליות עם איזון עומסים.
יצירת כללים לחומת האש לבדיקות תקינות
יוצרים כללים לחומת האש כדי לאפשר:
- יציאה 80 (HTTP) ויציאה 443 (HTTPS) מכל טווחי המקור.
תנועת TCP, UDP ו-ICMP מכתובות ה-IP של בדיקת התקינות. לדוגמה:
130.211.0.0/22,35.191.0.0/16.
המסוף
יוצרים כללים של חומת אש שמאפשרים יציאות מכל טווחי המקור, וכללים של חומת אש שמאפשרים תעבורת נתונים מסוג TCP, UDP ו-ICMP מכתובות ה-IP של כלי הבדיקה של בדיקת התקינות, כמו 130.211.0.0/22,35.191.0.0/16.
gcloud
יוצרים כלל לחומת האש לבדיקות תקינות:
export CDF_PROJECT=PROJECT_ID export VPC_NETWORK=VPC_NETWORK gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-http \ --direction=INGRESS --priority=1000 \ --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:80 \ --source-ranges=CDF_IP_RANGE \ --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-https \ --direction=INGRESS --priority=1000 --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE \ --target-tags=https-server gcloud compute --project=$CDF_PROJECT firewall-rules create allow-health-checks \ --network=$VPC_NETWORK \ --action=allow --direction=ingress \ --target-tags=allow-health-checks \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: המזהה הייחודי של הפרויקט, שאפשר להתאים אותו.
- VPC_NETWORK: השם של רשת ה-VPC
- CDF_IP_RANGE: טווח כתובות ה-IP שהוקצה ל-Cloud Data Fusion.
יצירת תבנית של הגדרות מכונה וירטואלית לשער
המסוף
כשיוצרים תבנית של הגדרות מכונה במסוף:
- יוצרים אותו באותו VPC שבו נמצאת מכונת Cloud Data Fusion.
- מומלץ: שימוש במכונה וירטואלית עם כתובת IP פרטית.
- מפעילים יציאות HTTP/HTTPS.
- הפעלת העברת IP
בשדה סקריפט לטעינה בזמן ההפעלה, מזינים את הסקריפט הבא:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-saveמידע נוסף זמין במאמר בנושא הרצת סקריפטים להפעלה.
כדי לראות את טווח כתובות ה-IP שהוקצה למופע של Cloud Data Fusion, עוברים לדף פרטי המופע ב-Cloud Data Fusion.
gcloud
יוצרים תבנית של הגדרות מכונה:
export TEMPLATE_NAME=TEMPLATE_NAME export REGION=REGION export SUBNET=SUBNET export SERVICE_ACCOUNT=SERVICE_ACCOUNT gcloud beta compute --project=$CDF_PROJECT instance-templates create $TEMPLATE_NAME \ --machine-type=e2-medium \ --subnet=projects/$CDF_PROJECT/regions/$REGION/subnetworks/$SUBNET \ --network-tier=PREMIUM --metadata=startup-script=sudo\ bash\ -c\ \"echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward\"$'\n'sudo\ iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'sudo\ bash\ -c\ \"echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf\"$'\n'sudo\ iptables-save \ --can-ip-forward --no-address --maintenance-policy=MIGRATE \ --service-account=$SERVICE_ACCOUNT \ --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ --region=$REGION --tags=http-server,https-server,allow-health-checks \ --image=debian-10-buster-v20210316 \ --image-project=debian-cloud --boot-disk-size=10GB \ --boot-disk-type=pd-balanced \ --boot-disk-device-name=$TEMPLATE_NAME \ --no-shielded-secure-boot --no-shielded-vtpm \ --no-shielded-integrity-monitoring \ --reservation-affinity=any
יצירת בדיקת תקינות
אף שירות לא פועל במכונה הווירטואלית של שער הכניסה, כך שאפשר להשתמש ביציאה 22 לבדיקת תקינות.
המסוף
gcloud
יוצרים בדיקת תקינות:
export HEATH_CHECK=HEALTH_CHECK_NAME gcloud beta compute health-checks create tcp $HEATH_CHECK --project=$CDF_PROJECT \ --port=22 --proxy-header=NONE --no-enable-logging \ --check-interval=5 --timeout=5 \ --unhealthy-threshold=2 --healthy-threshold=2
יצירת קבוצה של מופעי מכונה
בעזרת בדיקת תקינות שנוצרה בשלב הקודם, יוצרים קבוצת מופעים:
המסוף
gcloud
יוצרים קבוצה של מופעי מכונה:
export INSTANCE_GROUP=INSTANCE_GROUP gcloud beta compute --project=$CDF_PROJECT instance-groups managed create $INSTANCE_GROUP \ --base-instance-name=$INSTANCE_GROUP \ --template=$TEMPLATE_NAME --size=1 --zone=$ZONE \ --health-check=test --initial-delay=300 gcloud beta compute --project "$CDF_PROJECT" instance-groups managed set-autoscaling "$INSTANCE_GROUP" \ --zone "$ZONE" --cool-down-period "60" \ --max-num-replicas "10" --min-num-replicas "1" \ --target-cpu-utilization "0.6" --mode "on"
יצירת מאזן עומסים
יוצרים מאזן עומסים מסוג TCP (ILB) מקבוצת המופעים שנוצרה בשלב הקודם.
הוספת המסלול המותאם אישית למאזן העומסים
מוסיפים את המסלול המותאם אישית למאזן העומסים הפנימי (ILB) באותו VPC כמו מכונת Cloud Data Fusion.
המסוף
עוברים לדף רשת VPC.
בכרטיסייה נתיבים, לוחצים על יצירת נתיב.

gcloud
מוסיפים את המסלול המותאם אישית למאזן העומסים הפנימי:
export ROUTE=ROUTE_NAME export ILB_FRONTEND=<ip_of_ilb_frontend> gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-ilb=$ILB_FRONTEND \ --next-hop-ilb-region=$REGION
פתרון בעיות
מקבלים שגיאות של פסק זמן לחיבור בתצוגה מקדימה או ב-Wrangler
יכול להיות שתקבלו שגיאה Connection Timeout כשאתם מגדירים אמצעי בקרה ליציאה.
כדי לפתור את הבעיה, צריך לוודא שההגדרות הבאות מוגדרות:
- קיים קישור בין רשת ה-VPC של פרויקט הדייר לבין רשת ה-VPC של פרויקט הלקוח.
- הקישור בין רשתות VPC שכנות (peering) כולל נתיבי ייצוא שמופעלים.
- המסלול המותאם אישית למכונת ה-VM של השער או ל-ILB לא חסר.
- כללי חומת האש שמאפשרים תעבורה של
HTTPושלHTTPSלא חסרים.
בדיקות תקינות של קבוצת מופעים נכשלות
בודקים אם קיימים כללי חומת אש שמאפשרים תעבורת נתונים מסוג TCP, UDP ו-ICMP מטווח המקור 130.211.0.0/22,35.191.0.0/16.
צינור נכשל במהלך ההפעלה ב-Managed Service for Apache Spark
כדי לגשת לאינטרנט הציבורי בזמן ההפעלה, צריך להפעיל את Cloud NAT באותו אזור ובאותה רשת כמו אשכול Managed Service for Apache Spark.
המאמרים הבאים
- כך שולטים ביציאה (egress) במכונת Cloud Data Fusion פרטית כדי לאפשר אותה רק לקבוצה ספציפית של דומיינים.
- מידע נוסף על רשתות ב-Cloud Data Fusion