1. מבוא
במדריך הזה מוסבר איך להעביר מאזן עומסי רשת קיים מקצה עורפי של מאגר יעד לשירות אזורי לקצה העורפי.
מה תלמדו
- הסבר על היתרונות של שירותים לקצה עורפי אזורי
- יצירת מאזן עומסי רשת עם מאגרי יעד
- ביצוע אימות של מאגר כתובות IP לטירגוט
- יצירת שירות אזורי לקצה העורפי באמצעות קבוצות של מופעי מכונה לא מנוהלים
- ביצוע העברה ממאגר יעד לשירות קצה עורפי
- ביצוע אימות של שירותים לקצה העורפי
מה תצטרכו
- ניסיון עם מאזני עומסים
2. סקירה כללית על שירותים אזוריים לקצה העורפי לאיזון עומסים ברשת
עם איזון עומסים ברשת, לקוחות Google Cloud מקבלים כלי רב עוצמה להפצת תעבורה חיצונית בין מכונות וירטואליות באזור Google Cloud. כדי להקל על הלקוחות שלנו לנהל את התעבורה הנכנסת ולשלוט בהתנהגות של מאזן העומסים, הוספנו לאחרונה תמיכה בשירותי קצה עורפיים לאיזון עומסים ברשת. השיפורים האלה מאפשרים ללקוחות שלנו פריסה קלה לניהול, עם יכולת הרחבה, מהירות, ביצועים ועמידות משופרים.
התחלנו לתמוך בשירותים לקצה העורפי עם איזון עומסים ברשת – שיפור משמעותי לעומת הגישה הקודמת, מאגרי יעד. שירות קצה עורפי מגדיר איך מאזני העומסים שלנו מפזרים את התנועה הנכנסת לקצוות עורפיים מצורפים, ומספק שליטה מדויקת בהתנהגות של מאזן העומסים.
3. היתרונות של שירותים לקצה עורפי אזורי
בחירה בשירות אזורי לקצה העורפי כמאזן עומסים מביאה מספר יתרונות לסביבה שלכם.

שירותים אזוריים לקצה העורפי מספקים את האפשרויות הבאות:
- בדיקת תקינות ברמת דיוק גבוהה עם בדיקת תקינות מאוחדת – עם שירותי קצה עורפיים אזוריים, עכשיו אפשר לנצל את מלוא היתרונות של תכונות בדיקת התקינות של איזון העומסים, בלי המגבלות של בדיקות התקינות של HTTP מדור קודם. מטעמי תאימות, לקוחות של Network Load Balancing (איזון עומסים ברשת) ביקשו לעיתים קרובות בדיקות תקינות של TCP עם תמיכה במחרוזות מותאמות אישית של בקשות ותגובות או ב-HTTPS.
- עמידות משופרת עם קבוצות מעבר לגיבוי בעת כשל – בעזרת קבוצות מעבר לגיבוי בעת כשל, אתם יכולים להגדיר קבוצת מופעים כראשונית וקבוצה אחרת כמשנית, ולהעביר את התנועה לגיבוי בעת כשל אם מצב התקינות של המופעים בקבוצה הפעילה יורד מתחת לסף מסוים. כדי לקבל שליטה רבה יותר במנגנון יתירות הכשל, אפשר להשתמש בסוכן כמו keepalived או pacemaker, ולבצע בדיקת תקינות תקינה או לא תקינה בהתאם לשינויים במצב של שרת עורפי.
- אפשרות הרחבה וזמינות גבוהה עם קבוצות של מכונות מנוהלות – שירותי קצה עורפיים אזוריים תומכים בקבוצות של מכונות מנוהלות כקצה עורפי. עכשיו אפשר לציין תבנית למכונות וירטואליות של ה-Backend ולהשתמש בהתאמת קנה מידה אוטומטית על סמך ניצול המעבד או מדדי מעקב אחרים.
בנוסף לאפשרויות שצוינו למעלה, תוכלו ליהנות מ-Connection Draining לפרוטוקול מוכוון-חיבור (TCP) ומזמן תכנות מהיר יותר לפריסות גדולות.
Codelab network topology
במדריך הזה מוסבר איך להעביר מאזן עומסי רשת קיים מקצה עורפי של מאגר יעד לשירות אזורי לקצה העורפי.
מעבר לשירות בק-אנד אזורי מאפשר לכם ליהנות מתכונות כמו בדיקות תקינות לא מדור קודם (ל-TCP, SSL, HTTP, HTTPS ו-HTTP/2), קבוצות מנוהלות של מופעים, הפסקת פעילות של חיבורים ומדיניות מעבר לגיבוי.
במדריך הזה מוסבר איך להעביר את מאזן העומסים לדוגמה הבא, שמבוסס על מאגר יעד, לשימוש בשירות אזורי לקצה העורפי

לפני: איזון עומסים ברשת עם מאגר יעד
פריסת מאזן עומסי הרשת שמבוסס על שירות קצה עורפי תיראה כך.

אחרי: איזון עומסים ברשת עם שירות אזורי לקצה העורפי
בדוגמה הזו אנחנו מניחים שיש לכם מאזן עומסים מסורתי של רשת שמבוסס על מאגר יעדים עם שתי מכונות באזור us-central-1a ושתי מכונות באזור us-central-1c.
השלבים העיקריים שנדרשים למעבר כזה:
- מקבצים את המכונות במאגר היעדים לקבוצות של מכונות. שירותי קצה עורפי פועלים רק עם קבוצות מנוהלות או לא מנוהלות של מופעים. שימו לב: אין הגבלה על מספר המכונות שאפשר להוסיף למאגר יעד יחיד, אבל יש גודל מקסימלי לקבוצות של מכונות. אם במאגר היעדים יש יותר מהמספר המקסימלי הזה של מכונות, צריך לפצל את הקצה העורפי שלו בין כמה קבוצות של מכונות. אם הפריסה הקיימת שלכם כוללת מאגר יעד לגיבוי, צריך ליצור קבוצת מופעים נפרדת למופעים האלה. קבוצת המופעים הזו תוגדר כקבוצת מעבר לגיבוי.
- יוצרים שירות אזורי לקצה העורפי. אם הפריסה שלכם כוללת מאגר יעד לגיבוי, תצטרכו לציין יחס מעבר לגיבוי בזמן יצירת שירות ה-Backend. הערך הזה צריך להיות זהה ליחס המעבר לגיבוי שהוגדר קודם לפריסת מאגר היעדים.
- מוסיפים את קבוצות המכונות (שנוצרו קודם) לשירות הקצה העורפי. אם הפריסה כוללת מאגר יעד לגיבוי, צריך לסמן את קבוצת המופעים המתאימה למעבר לגיבוי (failover) באמצעות הדגל –failover כשמוסיפים אותה לשירות העורפי.
- מגדירים כלל העברה שמפנה לשירות החדש לקצה העורפי. יש שתי אפשרויות:
- (מומלץ) מעדכנים את כלל ההעברה הקיים כך שיפנה לשירות הקצה העורפי. או
- יוצרים העברה חדשה שמפנה לשירות הקצה העורפי. לשם כך, צריך ליצור כתובת IP חדשה לקצה הקדמי של מאזן העומסים. לאחר מכן משנים את הגדרות ה-DNS כדי לעבור בצורה חלקה מכתובת ה-IP של מאזן העומסים הישן שמבוסס על מאגר כתובות יעד לכתובת ה-IP החדשה.
הגדרת סביבה בקצב אישי
- נכנסים אל Cloud Console ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



חשוב לזכור את מזהה הפרויקט, שהוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא יתאים לכם, מצטערים!). בהמשך ה-codelab הזה נתייחס אליו כאל PROJECT_ID.
- לאחר מכן, תצטרכו להפעיל את החיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.
העלות של התרגול הזה לא אמורה להיות גבוהה, ואולי לא תהיה עלות בכלל. חשוב לפעול לפי ההוראות בקטע 'ניקוי' שבו מוסבר איך להשבית משאבים כדי שלא תחויבו אחרי שתסיימו את המדריך הזה. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה נשתמש ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-GCP Console, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

הקצאת המשאבים והחיבור לסביבה יימשכו רק כמה רגעים. בסיום התהליך, אמור להופיע משהו כזה:

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את כל העבודה ב-Lab הזה רק באמצעות דפדפן.
מתחברים ל-Cloud Shell ומגדירים את projectid
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
4. יצירת רשת VPC
רשת VPC
מ-Cloud Shell
gcloud compute networks create network-lb --subnet-mode custom
יצירת תת-רשת
מ-Cloud Shell
gcloud compute networks subnets create network-lb-subnet \
--network network-lb --range 10.0.0.0/24 --region us-central1
יצירת כללים לחומת האש
מ-Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
יצירת מופעים לא מנוהלים
יצירת 2 מכונות בכל אזור, us-central1-a ו-us-central1-c
יצירת מכונה 1 מ-Cloud Shell
gcloud compute instances create www1 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
מ-Cloud Shell, יוצרים מכונה 2
gcloud compute instances create www2 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
מ-Cloud Shell, יוצרים מכונה 3
gcloud compute instances create www3 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
מ-Cloud Shell, יוצרים מכונה 4
gcloud compute instances create www4 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"
יוצרים כלל חומת אש שמאפשר תעבורת נתונים חיצונית אל המכונות הווירטואליות האלה
מ-Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
יצירת כתובת IP חיצונית סטטית למאזן העומסים
מ-Cloud Shell
gcloud compute addresses create network-lb-ip-1 \
--region us-central1
הוספת משאב לבדיקת תקינות של HTTP בגרסה הקודמת
מ-Cloud Shell
gcloud compute http-health-checks create basic-check
5. יצירת כלל העברה ומאגר יעדים
יצירת מאגר של יעדים
gcloud compute target-pools create www-pool \
--region us-central1 --http-health-check basic-check
הוספת המכונות הווירטואליות למאגר היעד us-central1-a
gcloud compute target-pools add-instances www-pool \ --instances www1,www2 \ --instances-zone us-central1-a
הוספת המופעים למאגר היעדים, us-central1-c
gcloud compute target-pools add-instances www-pool \ --instances www3,www4 \ --instances-zone us-central1-c
הוספת כלל העברה
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
אימות הפונקציונליות של מאגר היעד
מזהים את כתובת ה-IP של חזית האתר על ידי בחירה באפשרות Load Balancers (מאזני עומסים) → Frontends (חזיתות) (www-rule).
משתמשים בפקודה curl ממסוף תחנת העבודה כדי לגשת לכתובת ה-IP החיצונית ולראות את איזון העומסים בארבע מכונות היעד. אחרי האימות, סוגרים את הטרמינל.
while true; do curl -m1 IP_ADDRESS; done
6. העברת מאזן עומסי הרשת ממאגר יעד לשירות לקצה העורפי
יצירת בדיקות תקינות מאוחדות לשירות לקצה העורפי
gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1
יצירת קבוצות של מכונות ממופע קיים ממאגר היעד
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2
יצירת קבוצות של מכונות ממופע קיים ממאגר היעד
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4
יצירת שירות לקצה העורפי ושיוך שלו לבדיקות התקינות החדשות
gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external
הגדרת שירות לקצה העורפי והוספת קבוצות המכונות
gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1 gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1
עדכון כלל ההעברה הקיים כדי לתמוך בשירותי קצה עורפי
כדי לראות את השם של כלל ההעברה, www-rule, ואת כתובת ה-IP שמשויכת אליו, מבצעים את הפעולות הבאות:
בוחרים באפשרות Load Balancer → Frontends
בנוסף, ציינתי את ארבעת מאגרי היעד
בוחרים באפשרות Load Balancer (מאזן עומסים) ← בוחרים באפשרות www-pool
ניתוב תנועה לשירותי קצה עורפיים על ידי עדכון כלל ההעברה הקיים
gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1
מוודאים שמאזן העומסים www-pool לא מוגדר יותר עם חזית ה-www-rule (ראו צילום מסך למטה)
בוחרים באפשרות Load Balancer → www-pool

בדיקה שכלל ההעברה של הקצה הקדמי משויך עכשיו למאזן העומסים my-backend-service
בוחרים באפשרות Load Balancer → Frontends
שימו לב לשם הכלל 'www-rule'. כתובת ה-IP נשמרת ומאזן העומסים 'my-backend-service' נמצא עכשיו בשימוש
משתמשים בפקודה curl ממסוף תחנת העבודה כדי לגשת לכתובת ה-IP החיצונית ולצפות באיזון העומסים בשירות הקצה העורפי החדש שמשויך. אחרי האימות, סוגרים את הטרמינל.
while true; do curl -m1 IP_ADDRESS; done
7. שלבים לניקוי
gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet gcloud compute backend-services delete my-backend-service --region us-central1 --quiet gcloud compute target-pools delete www-pool --region us-central1 --quiet gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet gcloud compute firewall-rules delete www-firewall-network-lb --quiet gcloud compute instances delete www4 --zone us-central1-c --quiet gcloud compute instances delete www3 --zone us-central1-c --quiet gcloud compute instances delete www2 --zone us-central1-a --quiet gcloud compute instances delete www1 --zone us-central1-a --quiet gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet gcloud compute networks delete network-lb --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet
8. מעולה!
כל הכבוד, סיימתם את ה-Codelab.
מה נכלל
- הסבר על היתרונות של שירותים לקצה עורפי אזורי
- יצירת מאזן עומסי רשת עם מאגרי יעד
- ביצוע אימות של מאגר כתובות IP לטירגוט
- יצירת שירות אזורי לקצה העורפי באמצעות קבוצות של מופעי מכונה לא מנוהלים
- ביצוע העברה ממאגר יעד לשירות קצה עורפי
- ביצוע אימות של שירותים לקצה העורפי