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

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

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

אחרי: איזון עומסים ברשת עם שירות קצה עורפי אזורי
בדוגמה הזו אנחנו מניחים שיש לכם מאזן עומסים מסורתי של רשת שמבוסס על מאגר יעדים עם שתי מכונות בתחום us-central-1a ושתי מכונות בתחום us-central-1c.
השלבים העיקריים שנדרשים למעבר כזה:
- מקבצים את המכונות במאגר היעדים לקבוצות של מכונות. שירותי קצה עורפי פועלים רק עם קבוצות מנוהלות או לא מנוהלות של מופעים. שימו לב: אין הגבלה על מספר המכונות שאפשר להוסיף למאגר יעד יחיד, אבל יש גודל מקסימלי לקבוצות של מכונות. אם במאגר היעדים יש יותר מהמספר המקסימלי הזה של מכונות, תצטרכו לפצל את הקצה העורפי שלו לכמה קבוצות של מכונות. אם הפריסה הקיימת שלכם כוללת מאגר יעד לגיבוי, צריך ליצור קבוצת מופעים נפרדת למופעים האלה. קבוצת המופעים הזו תוגדר כקבוצת יתירות כשל.
- יוצרים שירות קצה עורפי אזורי. אם הפריסה שלכם כוללת מאגר יעד לגיבוי, תצטרכו לציין יחס יתירות כשל בעת יצירת שירות לקצה העורפי. הערך הזה צריך להיות זהה ליחס המעבר לגיבוי שהוגדר קודם לפריסת מאגר היעדים.
- מוסיפים לקצה העורפי של השירות קבוצות של מכונות (שנוצרו קודם). אם הפריסה כוללת מאגר יעד לגיבוי, צריך לסמן את קבוצת המופעים המתאימה למעבר לגיבוי (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.
מה נכלל
- הסבר על היתרונות של שירותים לקצה עורפי אזורי
- יצירת מאזן עומסי רשת עם מאגרי יעד
- ביצוע אימות של מאגר היעדים
- יצירת שירות לקצה העורפי אזורי באמצעות קבוצות של מופעי מכונה לא מנוהלים
- העברה של מאגר יעד לשירות קצה עורפי
- ביצוע אימות של שירותים לקצה העורפי