במאמר הזה נסביר איך ליצור מאזן עומסים גלובלי-חיצוני של אפליקציות עם שירות קצה עורפי וקטגוריה של קצה עורפי שנמצאים בפרויקט שונה מזה שבו נמצאים הקצה הקדמי של מאזן העומסים ומפת כתובות ה-URL. מודל הפריסה הזה נקרא הפניה לשירותים בפרויקטים שונים.
בדוגמה שמופיעה במסמך הזה לא נעשה שימוש בסביבת VPC משותף כדי להגדיר הפניה לשירותים בין פרויקטים. מידע נוסף על הגדרת הפניה לשירותים בין פרויקטים בסביבת VPC משותף זמין במאמר הגדרת מאזן עומסים חיצוני גלובלי של אפליקציות (ALB) עם VPC משותף.
לפני שמתחילים
חשוב לוודא שההגדרה עומדת בדרישות המוקדמות הבאות.
תפקידים והרשאות נדרשים ב-IAM
כדי לפעול לפי המדריך הזה, אתם צריכים את תפקידי ה-IAM הבאים:
| משימה | התפקיד הנדרש |
|---|---|
| יצירת פרויקט | תפקיד Project Creator (roles/resourcemanager.projectCreator)
|
| יצירת משאבי מחשוב | התפקיד Compute Network Admin (roles/compute.networkAdmin)
|
| יצירת קטגוריות ב-Cloud Storage | התפקיד 'אדמין של אובייקטים באחסון' (roles/storage.objectAdmin)
|
|
שימוש במשאב מפרויקט אחר (בדוגמה הזו, פרויקט א מפנה לשירות לקצה העורפי ולקטגוריית קצה עורפי שנמצאים בפרויקט ב). |
בדוגמה הזו, אדמין של פרויקט ב' צריך להעניק לאדמין של פרויקט א' את התפקיד 'משתמש בשירותים של מאזן עומסים של Compute' ( מידע נוסף על הקצאת התפקיד הזה זמין במאמר הענקת הרשאות לאדמין של מאזן העומסים ב-Compute לשימוש בשירות ה-Backend. |
יצירת Google Cloud פרויקטים
בדוגמה שבמסמך הזה, צריך לפעול לפי ההוראות פעמיים כדי ליצור שני Google Cloud פרויקטים.
המסוף
כדי ליצור פרויקט חדש:
-
נכנסים לדף Manage resources במסוף Google Cloud .
שאר השלבים יופיעו במסוף Google Cloud .
- ברשימה הנפתחת Select organization (בחירת ארגון) בחלק העליון של הדף, בוחרים את המשאב הארגוני שבו רוצים ליצור פרויקט. אם אתם משתמשים בתקופת ניסיון בחינם, דלגו על השלב הזה כי הרשימה הזו לא מופיעה.
- לוחצים על Create Project.
- בחלון New Project שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב, לפי הצורך. שם הפרויקט יכול להכיל רק אותיות, מספרים, מירכאות בודדות, מקפים, רווחים או סימני קריאה, והוא צריך להיות באורך של 4 עד 30 תווים.
- מזינים את תיקיית האב או את משאב הארגון בתיבה מיקום. המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. אם האפשרות No organization (ללא ארגון) זמינה, אפשר לבחור בה כדי ליצור את הפרויקט החדש כרמה העליונה בהיררכיית משאבים משלו.
- כשמסיימים להזין את פרטי הפרויקט החדש, לוחצים על יצירה.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי ליצור פרויקט חדש, משתמשים בפקודה
gcloud projects create:gcloud projects create PROJECT_IDכאשר PROJECT_ID הוא המזהה של הפרויקט שרוצים ליצור. מזהה הפרויקט צריך להתחיל באות קטנה, והוא יכול להכיל רק אותיות ASCII, ספרות ומקפים, והוא צריך להיות באורך של 6 עד 30 תווים.
סקירה כללית של ההגדרה
כפי שמוצג בתרשים הבא, חזית האתר ומפת כתובות ה-URL של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) נוצרים בפרויקט ששונה משירות ה-Backend ומהקטגוריה של ה-Backend של מאזן העומסים. בפריסה מהסוג הזה בין פרויקטים לא נעשה שימוש בסביבת VPC משותפת.
בהגדרה הזו, מפת ה-URL מעבירה בקשות לתוכן סטטי (/images/*) לקטגוריית קצה עורפי, בעוד שכל הבקשות האחרות מועברות לשירות לקצה העורפי של ברירת המחדל.
בטבלה הבאה מופיעה סקירה כללית של המשאבים שנוצרו בפרויקט א' ובפרויקט ב'. חלק הקצה הקדמי ומפת URL של מאזן העומסים נוצרים בפרויקט א', ואילו רכיבי הקצה העורפי נוצרים בפרויקט ב'.
| משאבים שנוצרו בפרויקט א' | משאבים שנוצרו בפרויקט ב' |
|---|---|
|
|
בקטעים הבאים נגדיר את המשאבים השונים שמפורטים בטבלה הקודמת. נתחיל בהגדרת רשת VPC ותת-רשת למכונות הווירטואליות של הבק-אנד של מאזן העומסים בפרויקט ב'.
הגדרת רשת ורשת משנה למכונות הווירטואליות בקצה העורפי של מאזן העומסים בפרויקט ב'
לצורך הדוגמה הזו, המכונות הווירטואליות של ה-Backend נוצרות ברשת ובתת-הרשת הבאות:
רשת הרשת היא רשת VPC במצב מותאם אישית בשם
lb-network.רשת משנה למכונות וירטואליות של בק-אנד של מאזן עומסים רשת משנה בשם
lb-backend-subnetבאזורus-west1משתמשת ב-10.1.2.0/24לטווח כתובות ה-IP הראשי שלה. טווח כתובות ה-IPv4 הראשי והמשני של תת-רשת הם כתובות IPv4 פנימיות אזוריות. מידע נוסף זמין במאמר בנושא טווחים חוקיים של כתובות IPv4.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים
lb-network.בקטע רשתות משנה, מגדירים את מצב יצירת רשתות משנה למותאם אישית.
בקטע New subnet, מזינים את הפרטים הבאים:
- Name (שם):
lb-backend-subnet - בוחרים אזור:
us-west1 - טווח כתובות IP:
10.1.2.0/24
- Name (שם):
לוחצים על סיום.
לוחצים על יצירה.
gcloud
יוצרים רשת VPC מותאמת אישית בשם
lb-networkבאמצעות הפקודהgcloud compute networks create.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_IDיוצרים תת-רשת ברשת ה-VPC
lb-networkבאזורus-west1באמצעות הפקודהgcloud compute networks subnets create.gcloud compute networks subnets create lb-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --project=PROJECT_B_ID
הגדרת שירות קצה עורפי בפרויקט ב'
כדי להגדיר שירות קצה עורפי, צריך לבצע את הפעולות הבאות:
- יוצרים תבנית של הגדרות מכונה.
- יוצרים קבוצת מופעים.
- יצירת בדיקת תקינות.
- יוצרים כלל לחומת האש.
- יוצרים שירות לקצה העורפי.
יצירת תבנית מכונה
השלב המקדים ליצירת קבוצת מופעי מכונה מנוהלים הוא יצירת תבנית של הגדרות מכונה, שהיא משאב שאפשר להשתמש בו כדי ליצור מופעים של מכונות וירטואליות (VM). התנועה מלקוחות מאוזנת בעומס למכונות וירטואליות בקבוצת מכונות. קבוצת מופעי מכונה מנוהלים מספקת מכונות וירטואליות שמריצות את שרתי הבק-אנד של מאזן עומסים חיצוני של אפליקציות (ALB). בדוגמה הזו, השרתים העורפיים משרתים את שמות המארחים שלהם.
המסוף
במסוף Google Cloud , נכנסים לדף Instance templates של Compute Engine.
לוחצים על Create instance template.
בשדה Name (שם), מזינים
backend-template.בקטע Boot disk מוודאים שדיסק האתחול מוגדר לתמונת Debian, כמו Debian GNU/Linux 12 (bookworm). אם רוצים לשנות את התמונה, לוחצים על שינוי.
מרחיבים את הקטע אפשרויות מתקדמות.
מרחיבים את האפשרות Networking ומגדירים את השדות הבאים:
- בשדה Network tags (תגי רשת), מזינים
load-balanced-backend. - בקטע Network interfaces (ממשקי רשת), מגדירים את השדות הבאים:
- רשת:
lb-network - Subnet (רשת משנה):
lb-backend-subnet - סוג מחסנית ה-IP: IPv4
- רשת:
- לוחצים על סיום
- בשדה Network tags (תגי רשת), מזינים
מרחיבים את האפשרות Management. בשדה סקריפט לטעינה בזמן ההפעלה, מזינים את הסקריפט הבא:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \
לוחצים על יצירה.
gcloud
יוצרים תבנית של הגדרות מכונה.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=us-west1 \ --network=projects/PROJECT_B_ID/global/networks/lb-network \ --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \ --project=PROJECT_B_ID
יצירת קבוצות של מופעי מכונה מנוהלים
יוצרים קבוצת מופעי מכונה מנוהלים כדי לספק את שרתי הבק-אנד שמטפלים בבקשות שמפוזרות על ידי שירות הבק-אנד של מאזן העומסים הגלובלי החיצוני של האפליקציות.
המסוף
במסוף Google Cloud , נכנסים לדף Instance groups של Compute Engine.
לוחצים על Create Instance Group (יצירת קבוצת מופעים).
באפשרויות, בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)).
בשדה של שם קבוצת המופעים, מזינים
lb-backend.ברשימה Instance template בוחרים את תבנית של הגדרות מכונה
backend-templateשיצרתם בשלב הקודם.בקטע מיקום, בוחרים באפשרות אזור יחיד ומזינים את הערכים הבאים:
בשדה אזור, בוחרים באפשרות
us-west1.בשדה Zone, בוחרים באפשרות
us-west1-a.
בקטע Autoscaling (שינוי גודל אוטומטי), מזינים את הערכים הבאים:
בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות מופעל: הוספה והסרה של מופעים לקבוצה.
בקטע מספר מינימלי של מופעים, בוחרים באפשרות
2.בקטע מספר מופעים מקסימלי, בוחרים באפשרות
3.
בקטע Port mapping (מיפוי יציאות), לוחצים על Add port (הוספת יציאה) ומזינים את הערכים הבאים:
בשדה שם הניוד, מזינים
http.בשדה מספר יציאה, מזינים
80.
לוחצים על יצירה.
gcloud
יוצרים קבוצה של מופעי מכונה מנוהלים ובוחרים את תבנית המופע שיצרתם בשלב הקודם:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --zone=us-west1-a \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME \ --project=PROJECT_B_IDמוסיפים יציאה עם שם לקבוצת המופעים:
gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \ --named-ports=http:80 \ --zone=us-west1-a \ --project=PROJECT_B_ID
יצירת בדיקת תקינות
בדיקות תקינות הן בדיקות שמאשרות את הזמינות של שרתי קצה עורפיים. יוצרים בדיקת תקינות שמשתמשת בפרוטוקול HTTP ובודקת ביציאה 80. בהמשך, תצרפו את בדיקת תקינות המערכת הזו לשירות הקצה העורפי שאליו מתייחס מאזן העומסים.
המסוף
במסוף Google Cloud , נכנסים לדף Health checks של Compute Engine.
בשדה של שם בדיקת התקינות, מזינים
lb-health-check.מגדירים את הפרוטוקול ל-HTTP.
לוחצים על יצירה.
gcloud
יצירת בדיקת תקינות HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=PROJECT_B_ID
יצירת כלל לחומת האש
לגבי בדיקות התקינות, צריך ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) ברמת הרשת, שבמקרה של הדוגמה הזו היא lb-network. כלל חומת האש הזה מאפשר לבדיקות תקינות להגיע לשרתים העורפיים (backend instance). בדוגמה הזו השתמשנו בכלל חומת האש הבא:
fw-allow-health-check. כלל תעבורה נכנסת (ingress) שחל על המופעים שמתבצע בהם איזון עומסים, שמאפשר את כל תעבורת ה-TCP מGoogle Cloudמערכות בדיקת התקינות. בדוגמה הזו, תג היעדload-balanced-backendמשמש לזיהוי המקרים שבהם צריך להחיל את הכלל.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל שיאפשר חיבורי SSH נכנסים במכונה הווירטואלית של הלקוח:
- Name (שם):
fw-allow-health-check - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור:
35.191.0.0/16 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את תיבת הסימון TCP ומזינים
80כמספר היציאה. מומלץ להגביל את הכלל הזה רק לפרוטוקולים ולפורטים שתואמים לאלה שמשמשים בבדיקת תקינות. אם משתמשים ב-tcp:80 לפרוטוקול וליציאה, Google Cloud אפשר להשתמש ב-HTTP ביציאה 80 כדי ליצור קשר עם המכונות הווירטואליות, אבל אי אפשר להשתמש ב-HTTPS ביציאה 443 כדי ליצור איתן קשר.
- Name (שם):
לוחצים על יצירה.
gcloud
יוצרים את כלל חומת האש
fw-allow-health-checkכדי לאפשרGoogle Cloud בדיקות תקינות. בדוגמה הזו, כל תנועת ה-TCP מבודקי בדיקת תקינות מורשית. עם זאת, אפשר להגדיר קבוצה מצומצמת יותר של יציאות בהתאם לצרכים שלכם.gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=
35.191.0.0/16\ --target-tags=load-balanced-backend \ --rules=tcp \ --project=PROJECT_B_ID
יצירת שירות לקצה העורפי
יוצרים שירות לקצה עורפי גלובלי כדי להפיץ את תעבורת הנתונים בין הקצוות העורפיים. במסגרת השלב הזה, צריך להקצות את בדיקת תקינות השרת שיצרתם לשירות הקצה העורפי, ולהוסיף את קבוצת המכונות כקצה עורפי לשירות הקצה העורפי.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
עוברים לקטע Backends.
לוחצים על Create backend service.
בקטע שירות לקצה העורפי גלובלי, לוחצים על הלחצן Create שלידו.
בשדה של שם שירות הקצה העורפי, מזינים
cross-ref-backend-service.בקטע Backend type, בוחרים באפשרות Instance group.
מגדירים את Protocol ל-HTTP.
בשדה Named port, מזינים
http. זהו אותו שם יציאה שהזנתם כשייצרתם את קבוצת מופעי מכונה מנוהלים.כדי להוסיף שרתים עורפיים לשירות לקצה העורפי:
בקטע Backends, מגדירים את Instance group לערך
lb-backend, שהיא קבוצת מופעי מכונה מנוהלים שיצרתם בשלב קודם.בשדה מספרי יציאה, מזינים
80.כדי להוסיף את ה-backend, לוחצים על סיום.
כדי להוסיף בדיקת תקינות, ברשימה Health check בוחרים באפשרות
lb-health-check, שהיא בדיקת התקינות שיצרתם קודם.כדי ליצור את שירות לקצה העורפי, לוחצים על Create.
gcloud
יוצרים שירות לקצה עורפי גלובלי כדי להפיץ את התנועה בין הקצוות העורפיים:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=HEALTH_CHECK_NAME \ --global \ --project=PROJECT_B_IDמוסיפים את קבוצת המכונות בתור הקצה העורפי לשירות הקצה העורפי:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=us-west1-a \ --global \ --project=PROJECT_B_ID
הגדרת קטגוריית קצה עורפי בפרויקט ב'
כדי ליצור קטגוריית קצה עורפי, צריך לבצע את הפעולות הבאות:
- יוצרים את הקטגוריה של Cloud Storage.
- מעתיקים את התוכן לקטגוריה.
- הופכים את הקטגוריה לנגישה באופן ציבורי.
- יוצרים קטגוריה של קצה עורפי ומפנים אותה לקטגוריה של Cloud Storage.
יצירת קטגוריה של Cloud Storage
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
לוחצים על יצירה.
בתיבה Name your bucket, כותבים שם ייחודי באופן גלובלי שעומד בהנחיות למתן שמות.
לוחצים על Choose where to store your data (בחירת המיקום לאחסון הנתונים).
מגדירים את סוג המיקום לאזור.
ברשימת האזורים, בוחרים באפשרות us-east1.
לוחצים על יצירה.
gcloud
יוצרים קטגוריה באזור
us-east1באמצעות הפקודהgcloud storage buckets create.gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=PROJECT_B_ID
מחליפים את המשתנה BUCKET_NAME בשם הקטגוריה שלכם ב-Cloud Storage.
העתקת קובץ גרפי לקטגוריה של Cloud Storage
מריצים את הפקודה הבאה ב-Cloud Shell, ומחליפים את משתני שם הקטגוריה בשם הייחודי של קטגוריית Cloud Storage שלכם, כדי להעתיק את קובץ הגרפיקה מקטגוריית Cloud Storage ציבורית לתיקייה images/ בקטגוריית Cloud Storage שלכם:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
הפיכת קטגוריה של Cloud Storage לקריאה באופן ציבורי
כדי שכל האובייקטים בקטגוריה יהיו קריאים לכולם באינטרנט הציבורי, צריך להעניק לחשבון המשתמש allUsers את התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer).
המסוף
כדי להעניק לכל המשתמשים גישה לצפייה באובייקטים בקטגוריות, חוזרים על התהליך הבא לכל קטגוריה:
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שרוצים להגדיר כציבורית.
לוחצים על הכרטיסייה Permissions בחלק העליון של הדף.
בקטע Permissions, לוחצים על הלחצן Grant access. מופיעה תיבת הדו-שיח Grant access.
בשדה New principals, מזינים
allUsers.בשדה Select a role, מזינים
Storage Object Viewerבתיבת הסינון ובוחרים Storage Object Viewer מהתוצאות המסוננות.לוחצים על Save.
לוחצים על Allow public access.
gcloud
כדי להעניק לכל המשתמשים גישה לצפייה באובייקטים בקטגוריות, מריצים את הפקודה buckets add-iam-policy-binding.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
מחליפים את משתני שמות הקטגוריות בשמות הייחודיים של הקטגוריות שלכם ב-Cloud Storage.
יצירת קטגוריית קצה עורפי
קטגוריות בקצה העורפי משמשות כעטיפה לקטגוריות של Cloud Storage שיצרתם קודם. הם מכוונים תנועה נכנסת לקטגוריות של Cloud Storage.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
עוברים לקטע Backends.
לוחצים על Create backend bucket.
מזינים שם לקטגוריית קצה עורפי.
בוחרים קטגוריה של Cloud Storage שאליה תפנו את קטגוריית קצה עורפי.
לוחצים על יצירה.
gcloud
יוצרים קטגוריית קצה עורפי באמצעות הפקודה gcloud compute backend-buckets create בפרויקט ב'.
gcloud compute backend-buckets create BACKEND_BUCKET_NAME \ --gcs-bucket-name=BUCKET_NAME \ --project=PROJECT_B_ID
הגדרת רכיבי הקצה הקדמי של מאזן העומסים בפרויקט א'
בקטע הזה מוסבר איך להגדיר את רכיבי קצה קדמי הבאים של מאזן העומסים בפרויקט א':
- כתובת IP
- אישור SSL
- מפת URL
- שרת proxy יעד
- כלל העברה
שמירת כתובת ה-IP של מאזן העומסים
שמירת כתובת IP חיצונית סטטית גלובלית שאפשר להקצות לכלל ההעברה של מאזן העומסים.
המסוף
נכנסים לדף IP addresses במסוף Google Cloud .
לוחצים על שמירת כתובת IP חיצונית סטטית.
בשדה Name (שם), מזינים
cross-ref-ip-address.מגדירים את מסלול שירות הרשת בתור Premium.
מגדירים את IP version ל-IPv4.
מגדירים את Type (סוג) לערך Global (גלובלי).
לוחצים על Reserve.
gcloud
יוצרים כתובת IP חיצונית סטטית גלובלית.
gcloud compute addresses create IP_ADDRESS_NAME \
--ip-version=IPV4 \
--network-tier=PREMIUM \
--global \
--project=PROJECT_A_ID
הגדרת משאב של אישור SSL
כדי ליצור את מאזן העומסים, צריך משאב של אישור SSL שאפשר לצרף לפרוקסי היעד. משאב אישור ה-SSL יכול להיות מיפוי אישורים או אישור SSL של Compute Engine (אישור קלאסי).
מפת אישורים
אפשר ליצור מיפוי אישורים כמו שמתואר באחד מהמסמכים הבאים:
- פריסת אישור גלובלי שמנוהל על ידי Google עם הרשאה למאזן עומסים
- פריסת אישור גלובלי שמנוהל על ידי Google באמצעות הרשאת DNS
- פריסת אישור גלובלי בניהול Google באמצעות Certificate Authority Service
- פריסת אישור גלובלי בניהול עצמי
אישור SSL ב-Compute Engine
במאזן עומסים ב-HTTPS, יוצרים משאב אישור SSL ב-Compute Engine, כמו שמתואר באחד מהמסמכים הבאים:
מומלץ להשתמש באישור שמנוהל על ידי Google.
הגדרת הרכיבים של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer, בוחרים באפשרות Application Load Balancer (HTTP/HTTPS) ולוחצים על Next.
- בקטע Public facing or internal (פנימי או גלוי לכולם), בוחרים באפשרות Public facing (external) (גלוי לכולם – חיצוני) ולוחצים על Next (הבא).
- אם רוצים פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
- בקטע Load balancer generation (יצירת מאזן עומסים), בוחרים באפשרות Global external Application Load Balancer (מאזן עומסים גלובלי חיצוני של אפליקציות) ולוחצים על Next (הבא).
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- מזינים שם למאזן העומסים.
- כדי להמשיך, צריך להשאיר את הדף פתוח.
הגדרת הקצה הקדמי
ל-HTTP:
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה.
- מגדירים את Protocol ל-
HTTP. - בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
- מגדירים את Port ל-
80. - לוחצים על סיום.
ל-HTTPS:
אם אתם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים, אתם צריכים משאב אחד או יותר של אישור SSL כדי להגדיר את ה-proxy.
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה.
- בשדה Protocol, בוחרים באפשרות
HTTPS (includes HTTP/2). - בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
- מוודאים שהיציאה מוגדרת ל-
443כדי לאפשר תנועת HTTPS. - בקטע בחירת מאגר אישורים, בוחרים באפשרות שימוש במפת אישורים או באפשרות שימוש באישורים קלאסיים.
- בהתאם לבחירה, בוחרים במיפוי אישורים או באישור קלאסי.
- לוחצים על סיום.
הגדרת הקצה העורפי
- לוחצים על Backend configuration.
- לוחצים על Cross-project backend services (שירותי קצה עורפיים בין פרויקטים).
- בקטע מזהה פרויקט, מזינים את מזהה הפרויקט של פרויקט ב'.
- ברשימה Select backend services, בוחרים את שירות לקצה העורפי מפרויקט ב' שרוצים להשתמש בו.
- לוחצים על OK.
הגדרת כללי הניתוב
לוחצים על כללי ניתוב.
בקטע 'מצב', בוחרים באפשרות כלל מתקדם של מארח ונתיב.
בוחרים באפשרות Add host and path rule (הוספת כלל של מארח ונתיב).
בשדה מארחים, מזינים
*כדי להתאים לכל שמות המארחים.בקטע Path matcher (התאמת נתיבים), מזינים את הגדרת ה-YAML הבאה.
defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME name: PATH_MATCHER_NAME pathRules: - paths: - /images/* service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAMEבמקרה הזה, התאמת הנתיב מורכבת מכלל נתיב וממשק שירות ברירת מחדל. כלל הנתיב מנתב את כל הבקשות אל
/images/*לקטגוריית קצה עורפי. כל הבקשות האחרות מנותבות לשירות לקצה העורפי של ברירת המחדל.לוחצים על סיום.
מידע על ניהול תנועה זמין במאמר סקירה כללית על ניהול תנועה.
בדיקה וסיום של ההגדרה
בודקים את הרכיבים השונים של מאזן העומסים שהגדרתם בשלבים הקודמים. בקטע Backends מופיעים הפניה לשירות לקצה העורפי ולקטגוריית קצה עורפי.
לוחצים על יצירה.
gcloud
כדי ליצור את רכיבי איזון העומסים שצוינו למעלה באמצעות ה-CLI של gcloud, פועלים לפי השלבים הבאים:
יוצרים מפת URL באמצעות הפקודה
gcloud compute url-maps create.gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --global \ --project=PROJECT_A_ID
מוסיפים התאמה של נתיב למפת URL. במקרה הזה, התאמת הנתיב מורכבת מכלל נתיב ומשרות ברירת מחדל. כלל הנתיב מעביר את כל הבקשות אל
/images/*לקטגוריית קצה עורפי. כל הבקשות האחרות מנותבות לשירות לקצה העורפי שמוגדר כברירת מחדל.gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
יוצרים שרת proxy ליעד באמצעות הפקודה
gcloud compute target-http-proxies create.לתעבורת נתונים של HTTP, יוצרים Proxy יעד ל-HTTP כדי להפנות בקשות למפת URL:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global \ --project=PROJECT_A_ID
לתנועה מסוג HTTPS, יוצרים שרת proxy יעד מסוג HTTPS כדי להפנות בקשות למפת URL. ה-proxy הוא החלק במאזן העומסים שמכיל את אישור ה-SSL של מאזן עומסים ב-HTTPS. אחרי שיוצרים את האישור, אפשר לצרף אותו לשרת ה-proxy של יעד ה-HTTPS.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE_NAME \ --global \ --project=PROJECT_A_ID
מחליפים את
CERTIFICATE_NAMEבשם של אישור ה-SSL.יוצרים כלל העברה גלובלי באמצעות הפקודה
gcloud compute forwarding-rules create.לתנועת HTTP, יוצרים כללי העברה גלובליים כדי לנתב בקשות נכנסות אל שרת ה-proxy של יעד HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --ports=80 \ --project=PROJECT_A_ID
לתנועת HTTPS, יוצרים את כללי ההעברה הגלובליים כדי לנתב בקשות נכנסות אל פרוקסי היעד של HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --ports=443 \ --project=PROJECT_A_ID
בדיקת מאזן העומסים
יכול להיות שיחלפו כמה דקות עד שמאזן העומסים יוגדר, ואז תוכלו לשלוח בקשה למאזן העומסים. בדוגמה הזו, הבקשה נשלחת לכלל העברת ה-HTTP של מאזן העומסים.
מקבלים את כתובת ה-IP של כלל העברת ה-HTTP של מאזן העומסים.
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \
--global
אם תפנו את הדפדפן לכתובת http://IP_ADDRESS, הבקשה תנותב לשירות לקצה העורפי, שיחזיר דף עם מידע מינימלי על שרת עורפי (backend instance).
עם זאת, אם תפנו את הדפדפן אל http://IP_ADDRESS/images/three-cats.jpg, הבקשה אל /images/* תנותב אל קטגוריית קצה עורפי, שיחזיר את קובץ הגרפיקה.