ניתוב בקשות למאזן עומסים קלאסי של אפליקציות (ALB) בכמה אזורים

במדריך הזה מוסבר איך ליצור מאזן עומסים ב-HTTPS ש: Google Cloud

  • בחירת שירותי קצה עורפיים על סמך נתיבי כתובות ה-URL של הבקשה.
  • מנתב בקשות לשרתי קצה עורפיים שקרובים ללקוחות (איזון עומסים במספר אזורים).

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

דוגמה פשוטה אפשר לראות במאמר הגדרת מאזן עומסים של אפליקציות חיצוני עם קצה עורפי של Compute Engine. לניתוב מתקדם, כמו שכתובים והפניות אוטומטיות של HTTP, אפשר לעיין במאמר ניהול תעבורה למאזני עומסים חיצוניים של אפליקציות.

סקירה כללית

במדריך הזה מוסבר איך ליצור מאזן עומסים שמפנה תעבורה על סמך הנתיב בכתובת ה-URL של הבקשה, ומאזן את התעבורה בין כמה אזורים. יוצרים שמונה מכונות Compute Engine בסך הכול באזורים בארה"ב (בתחום us-central1-b) ובאירופה (בתחום eu-west1-b). לאחר מכן יוצרים מאזן עומסים שמנתב את התנועה למופעים האלה.

אחרי שמבצעים את ההוראות, מאזן העומסים מוגדר באופן הבא:

  • תנועת גולשים שמכילה נתיב כתובת ה-URL שמתחיל ב-/video מנותבת לשירות לקצה העורפי אחד.
  • תנועה עם נתיב כתובת ה-URL שלא תואם לדפוס הזה מנותבת לשירות לקצה העורפי אחר.

במסמך הדרכה זה, תיצור את התצורה המומחשת בדיאגרמה הבאה:

איזון עומסים של HTTPS במספר אזורים
איזון עומסים ב-HTTPS בכמה אזורים (לוחצים כדי להגדיל)

רצף האירועים בתרשים הוא:

  1. לקוח ניגש לכתובת ה-URL‏ https://www.example.com/video/concert ושולח בקשת תוכן לכתובת ה-IP החיצונית שהוגדרה בכלל ההעברה. הבקשה יכולה להשתמש ב-IPv4 או ב-IPv6. יש כללי העברה לשני הפרוטוקולים.
  2. כלל העברה מפנה את הבקשה אל שרת ה-HTTPS proxy של היעד.
  3. שרת ה-proxy של היעד משתמש בכללים שמוגדרים במפת URL כדי לקבוע איזה שירות לקצה העורפי יקבל את הבקשה. בקשה שמכילה את /video, כמו https://www.example.com/video/concert, נשלחת אל video-backend-service. כל נתיב כתובת ה-URL אחר נשלח לשירות ברירת המחדל, web-backend-service.
  4. מאזן העומסים קובע איזו קבוצת מופעים של השירות העורפי צריכה לטפל בבקשה, על סמך העומס שלה והקרבה שלה ללקוח, ומפנה את הבקשה למופע בקבוצה הזו.
  5. המופע מציג את התוכן שכל משתמש מבקש. מופעי video משמשים להצגת תוכן וידאו, ומופעי www משמשים להצגת כל שאר התוכן.

בדוגמה הזו, מאזן העומסים מקבל בקשות HTTPS מלקוחות ומעביר אותן כבקשות HTTP לבק-אנד. אפשר גם להגדיר מאזן עומסים לקבלת בקשות HTTP, וגם להשתמש ב-HTTPS כשמבצעים proxy לבקשות לקצה העורפי.

לפני שמתחילים

כדי לבצע את ההוראות האלה, צריך פרויקט. אם עדיין אין לכם פרויקט, אתם יכולים להגדיר אחד עכשיו. ההוראות האלה יעזרו לכם ליצור רשת של ענן וירטואלי פרטי (VPC) במצב מותאם אישית. צריך גם להגדיר כללים מותאמים אישית של חומת אש כדי לאפשר לתעבורת הנתונים להגיע למופעים.

אם אתם מעדיפים לעבוד משורת הפקודה, אתם יכולים להתקין את כלי שורת הפקודה gcloud. מידע על המושגים ועל ההתקנה של הכלי מופיע במאמר סקירה כללית של gcloud.

הרשאות

כדי להשלים את השלבים במדריך הזה, אתם צריכים הרשאה ליצור מכונות של Compute Engine בפרויקט. צריך להיות לכם תפקיד בעלים או עריכה בפרויקט, או את תפקידי ה-IAM הבאים ב-Compute Engine:

משימה התפקיד הנדרש
יצירת מופעים אדמין מכונות של Compute
הוספה והסרה של כללים לחומת האש אדמין לענייני אבטחה
יצירת רכיבים של מאזן עומסים אדמין רשתות
יצירת פרויקט (אופציונלי) יצירת פרויקטים

מידע נוסף זמין במדריכים הבאים:

הגדרה

אופציונלי: יצירת פרויקט חדש

מומלץ שמשתמשים עם הרשאה resourcemanager.projects.create ייצרו פרויקט חדש לפני שימשיכו לשאר ההוראות במאמר הזה. כך קל יותר לנקות את הסביבה בסוף המדריך.

הגדרת רשתות ורשתות משנה

בדוגמה הזו, משתמשים ברשת ה-VPC, באזורים ובתת-רשתות הבאים:

  • רשת: הרשת היא רשת VPC במצב מותאם אישית בשם lb-network.

  • תת-רשתות בשני אזורים שונים:

    • us-subnet משתמש ב-10.1.10.0/24 כטווח כתובות ה-IP הראשי שלו, והוא ממוקם באזור us-central1.
    • eu-subnet משתמש ב-10.1.11.0/24 כטווח כתובות ה-IP הראשי שלו, והוא ממוקם באזור europe-west1.

כדי ליצור את הרשת ואת רשת המשנה לדוגמה, פועלים לפי השלבים הבאים:

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. לוחצים על יצירת רשת VPC.

  3. מזינים שם של lb-network.

  4. בקטע Subnets, יוצרים את רשת המשנה הראשונה:

    • מגדירים את מצב יצירת רשתות משנה לבהתאמה אישית.
    • בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
      • Name (שם): us-subnet
      • אזור: us-central1
      • טווח כתובות IP: 10.1.10.0/24
      • לוחצים על סיום.
  5. עדיין בקטע Subnets (רשתות משנה), לוחצים על Add subnet (הוספת רשת משנה) ויוצרים את הרשת המשנה השנייה:

    • בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
      • Name (שם): eu-subnet
      • אזור: europe-west1
      • טווח כתובות IP: 10.1.11.0/24
      • לוחצים על סיום.
  6. לוחצים על יצירה.

gcloud

  1. יוצרים את רשת ה-VPC המותאמת אישית:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. יוצרים את us-subnet:

    gcloud compute networks subnets create us-subnet \
      --network=lb-network \
      --range=10.1.10.0/24 \
      --region=us-central1
    
  3. יוצרים את eu-subnet:

    gcloud compute networks subnets create eu-subnet \
      --network=lb-network \
      --range=10.1.11.0/24 \
      --region=europe-west1
    

הגדרת כללים לחומת אש

הכלל default deny ingress חוסם תעבורת נתונים נכנסת לשרתים העורפיים, כולל תעבורת נתונים ממאזן העומסים וממערכות בדיקת התקינותGoogle Cloud . צריך ליצור כללי חומת אש חדשים כדי לבטל את כלל ברירת המחדל ולאפשר לתעבורה להגיע למופעים.

בדוגמה הזו, יוצרים את הכללים הבאים לחומת האש:

  • fw-allow-ssh: כלל תעבורת נתונים נכנסת (ingress) שחל על המכונות שמתבצע עליהן איזון עומסים, שמאפשר קישוריות SSH נכנסת ביציאה 22 ב-TCP מכל כתובת. אפשר לבחור טווח IP של מקור מוגבל יותר לכלל הזה. לדוגמה, אפשר לציין רק את טווחי ה-IP של המערכת שממנה תפעילו סשנים של SSH. בדוגמה הזו נעשה שימוש בתג היעד allow-ssh כדי לזהות את המכונות הווירטואליות של הבק-אנד שאליהן הוא צריך לחול.

  • fw-allow-health-check-and-proxy: כלל תעבורה נכנסת (ingress) שרלוונטי למופעים שמתבצע בהם איזון עומסים, שמאפשר תעבורת נתונים ממאזן העומסים וממערכות בדיקת התקינותGoogle Cloud (‫130.211.0.0/22 ו-35.191.0.0/16). בדוגמה הזו נעשה שימוש בתג היעד allow-health-check כדי לזהות את המכונות הווירטואליות של הבק-אנד שאליהן הכלל צריך לחול.

המסוף

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    לדף Firewall policies

  2. לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל הראשון לחומת האש:

    1. מזינים שם של fw-allow-ssh.
    2. בקטע רשת, בוחרים באפשרות lb-network.
    3. בקטע יעדים, בוחרים באפשרות תגי יעד ספציפיים.
    4. בשדה Target tags [תגי יעד] כותבים allow-ssh.
    5. מגדירים את Source filter בתור IPv4 ranges.
    6. מגדירים את Source IPv4 ranges לערך 0.0.0.0/0.
    7. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות ספציפיים).
    8. מסמנים את תיבת הסימון TCP ומזינים 22 כמספר היציאה.
    9. לוחצים על יצירה.
  3. לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל השני לחומת האש:

    1. מזינים שם של fw-allow-health-check-and-proxy.
    2. בקטע רשת, בוחרים באפשרות lb-network.
    3. בקטע יעדים, בוחרים באפשרות תגי יעד ספציפיים.
    4. בשדה Target tags [תגי יעד] כותבים allow-health-check.
    5. מגדירים את Source filter בתור IPv4 ranges.
    6. מגדירים את Source IPv4 ranges (טווחים של כתובות IPv4 של המקור) ל-130.211.0.0/22 ול-35.191.0.0/16.
    7. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות ספציפיים).
    8. מסמנים את תיבת הסימון TCP ומזינים 80,443 כמספרי היציאות.
    9. לוחצים על יצירה.

gcloud

  1. יוצרים את כלל חומת האש fw-allow-ssh כדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשת allow-ssh. אם לא מציינים את source-ranges,‏Google Cloud מפרש את הכלל כאילו הוא מתייחס לכל מקור.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. יוצרים את הכלל fw-allow-health-check-and-proxy כדי לאפשר למאזן העומסים ולבדיקות התקינות לתקשר עם מכונות קצה עורפיות ביציאת TCP‏ 80 ו-443: Google Cloud

    gcloud compute firewall-rules create fw-allow-health-check-and-proxy \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80,tcp:443
    

יצירת מופעים

כדי להגדיר מאזן עומסים עם קצה עורפי של Compute Engine, המכונות הווירטואליות צריכות להיות בקבוצות של מופעים. במדריך הזה מוסבר איך ליצור קבוצת מופעים מנוהלת עם מכונות וירטואליות של Linux שמופעל בהן Apache.

קבוצת מופעי מכונה מנוהלים מספקת מכונות וירטואליות שמריצות את שרתי הבק-אנד של מאזן עומסים חיצוני מסוג HTTPS. למטרות הדגמה, שרתי קצה עורפיים מציגים את שמות המארחים שלהם.

בדוגמה הזו, יוצרים שמונה מכונות וירטואליות (VM): ארבע להצגת תוכן וידאו וארבע להצגת כל שאר התוכן. משתמשים בסקריפט הפעלה כדי להתקין תוכנת שרת אינטרנט של Apache עם דף בית ייחודי לכל מופע. שימו לב שאפשר להשתמש בכל שרת אינטרנט במכונות הווירטואליות. בדוגמה הזו, Apache מותקן לנוחותכם.

המסוף

יוצרים תבנית של הגדרות מכונה.

  1. נכנסים לדף Instance templates במסוף Google Cloud .

    כניסה לדף Instance templates

    1. לוחצים על Create instance template.
    2. בשדה Name (שם), מזינים video-us-template.
    3. מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm)‎. בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו apt-get.
    4. לוחצים על אפשרויות מתקדמות.
    5. לוחצים על Networking ומגדירים את השדות הבאים:
      1. בשדה Network tags (תגי רשת), מזינים את הערכים allow-health-check ו-allow-ssh.
      2. בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
        • רשת: lb-network
        • Subnet: us-subnet
    6. לוחצים על ניהול. מזינים את הסקריפט הבא בשדה סקריפט לטעינה בזמן ההפעלה.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      mkdir -p /var/www/html/video
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html /var/www/html/video/index.html
      systemctl restart apache2
      
    7. לוחצים על יצירה.

  2. יוצרים קבוצה של מופעי מכונה מנוהלים. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

    1. לוחצים על יצירת קבוצת מופעים.
    2. בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)). מידע נוסף מופיע במאמר קבוצות של מכונות וירטואליות בלי שמירת מצב או עם שמירת מצב.
    3. בשדה Name (שם), מזינים ig-video-us.
    4. בקטע מיקום, בוחרים באפשרות אזור יחיד.
    5. בקטע Region (אזור), בוחרים את האזור המועדף. בדוגמה הזו נשתמש ב-us-central1.
    6. בשדה Zone, בוחרים באפשרות us-central1-b.
    7. בקטע Instance template (תבנית של הגדרות מכונה), בוחרים באפשרות video-us-template.
    8. בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות Off:do not autoscale.
    9. בקטע מספר מקסימלי של מופעים, מזינים 2.
    10. לוחצים על יצירה.

gcloud

  1. יוצרים תבנית של הגדרות מכונה.

    gcloud compute instance-templates create video-us-template \
       --region=us-central1 \
       --network=lb-network \
       --subnet=us-subnet \
       --tags=allow-health-check,allow-ssh \
       --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
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         mkdir -p /var/www/html/video
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html /var/www/html/video/index.html
         systemctl restart apache2'
    
  2. יוצרים קבוצה של מופעי מכונה מנוהלים על סמך התבנית.

    gcloud compute instance-groups managed create ig-video-us \
       --template=video-us-template --size=2 --zone=us-central1-b
    

חוזרים על התהליך הזה ארבע פעמים עבור ארבע קבוצות המופעים. חשוב לשנות את שם קבוצת המופעים, שם התבנית, האזור והתחום (zone) לכל קבוצת מופעים, באופן הבא:

  • ig-video-us, ‏ video-us-template, ‏ us-central1-b (כפי שמוצג בדוגמה)
  • ig-video-eu, video-eu-template, europe-west1-b
  • ig-www-us, www-us-template, us-central1-b
  • ig-www-eu, www-europe-template, europe-west1-b

הוספת יציאה עם שם לקבוצת המכונות

לכל קבוצת מופעים, מגדירים שירות HTTP וממפים שם של יציאה ליציאה הרלוונטית. אחרי ההגדרה, שירות איזון העומסים מעביר את התנועה ליציאה שצוינה.

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המופעים (לדוגמה ig-video-us) ולוחצים על עריכת הקבוצה.

  3. לוחצים על ציון מיפוי של שמות יציאות.

  4. לוחצים על Add item.

  5. בשדה של שם הניוד, מזינים http. בשדה של מספר היציאה, מזינים 80.

  6. לוחצים על Save.

חוזרים על השלב הזה לכל קבוצת מופעים.

gcloud

gcloud compute instance-groups unmanaged set-named-ports ig-video-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \
    --named-ports http:80 \
    --zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \
    --named-ports http:80 \
    --zone europe-west1-b

שמירת כתובות IP חיצוניות

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

המסוף

  1. נכנסים לדף External IP addresses במסוף Google Cloud .

    נכנסים אל External IP addresses

  2. לוחצים על Reserve static address כדי לשריין כתובת IPv4.

  3. מקצים שם של lb-ipv4-1.

  4. מגדירים את מסלול הרשת ל-Premium.

  5. מגדירים את IP version ל-IPv4.

  6. מגדירים את Type (סוג) בתור Global (גלובלי).

  7. לוחצים על Reserve.

  8. לוחצים שוב על שמירת כתובת סטטית כדי לשמור כתובת IPv6.

  9. מקצים שם של lb-ipv6-1.

  10. מגדירים את מסלול הרשת לפרימיום.

  11. מגדירים את IP version ל-IPv6.

  12. מוודאים שהערך של סוג מוגדר לGlobal.

    בדוגמה הזו, מאזן העומסים משתמש ברישות במסלול פרימיום. מאזן עומסים שמשתמש ברישות במסלול הרגיל ישתמש במקום זאת בכתובות IP אזוריות. כתובות IPv6 לא זמינות במסלול הרגיל.

  13. לוחצים על Reserve.

gcloud

  1. שמירת כתובת IPv4:

    gcloud compute addresses create lb-ipv4-1 \
      --ip-version=IPV4 \
      --network-tier=PREMIUM \
      --global
    
  2. שמירת כתובת IPv6:

    gcloud compute addresses create lb-ipv6-1 \
      --ip-version=IPV6 \
      --network-tier=PREMIUM \
      --global
    

הגדרת משאבי איזון העומסים

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

  • יציאות עם שמות, שמאזן העומסים משתמש בהן כדי להפנות תנועה לקבוצות המופעים.
  • בדיקת תקינות, שבודקת את המופעים כדי לראות אם הם תקינים. מאזן העומסים שולח תנועה רק למכונות תקינות.
  • שירותי קצה עורפי, שעוקבים אחרי הקיבולת, זיקה לסשן וסטטוס בדיקת התקינות. שירותים לקצה העורפי מפנים בקשות למכונות וירטואליות או לנקודות קצה בקצה העורפי על סמך הקיבולת והתקינות של המכונה.
  • מפת URL, שמאזן העומסים משתמש בה כדי להפנות בקשות לשירותים ספציפיים בקצה העורפי, על סמך המארח והנתיב של כתובת ה-URL של הבקשה.
  • משאב של אישור SSL. משאבי אישור SSL מכילים פרטי אישור SSL שמאזן העומסים משתמש בהם כדי לסיים את TLS כשלקוחות HTTPS מתחברים אליו. אפשר להשתמש באישורי SSL מרובים, בכל שילוב של אישורי SSL בניהול Google או בניהול עצמי. צריך ליצור משאב של אישור SSL לכל אישור שבו משתמשים.
  • proxy של HTTPS ליעד, שמאזן העומסים משתמש בו כדי לשייך את מפת ה-URL ואישורי ה-SSL לכללי ההעברה הגלובליים.
  • שני כללי העברה גלובליים, אחד ל-IPv4 ואחד ל-IPv6, שמכילים את משאבי כתובות ה-IP החיצוניות הגלובליות. כללי העברה גלובליים מעבירים את הבקשה הנכנסת לשרת ה-proxy של היעד.

המסוף

בחירת סוג מאזן העומסים

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף איזון עומסים

  2. לוחצים על Create load balancer (יצירת מאזן עומסים).
  3. בקטע Type of load balancer, בוחרים באפשרות Application Load Balancer (HTTP/HTTPS) ולוחצים על Next.
  4. בקטע Public facing or internal (פנימי או חיצוני), בוחרים באפשרות Public facing (external) (חיצוני) ולוחצים על Next (הבא).
  5. לפריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
  6. בקטע Load balancer generation (דור מאזן העומסים), בוחרים באפשרות Classic Application Load Balancer (מאזן עומסים קלאסי לאפליקציות) ולוחצים על Next (הבא).
  7. לוחצים על Configure (הגדרה).

הגדרה בסיסית

  1. בשדה Name של מאזן העומסים, מזינים web-map.
  2. כדי להמשיך, צריך להשאיר את החלון פתוח.

הגדרת שירות הקצה העורפי ובדיקת התקינות עבור מופעי www

מאזן העומסים דורש שני שירותים לקצה העורפי ובדיקת תקינות כדי לטפל בשניהם. בדוגמה הזו, מאזן העומסים מפסיק את בקשות ה-HTTPS מהלקוח ומשתמש ב-HTTP כדי לתקשר עם הבק-אנד. כדי לעשות את זה, צריך לציין HTTP לפרוטוקולים של הבק-אנד ולבדיקות תקינות.

  1. לוחצים על Backend configuration.
  2. בתפריט הנפתח Create or select a backend service, מעבירים את סמן העכבר מעל Backend services ובוחרים באפשרות Create a backend service.
  3. מגדירים את Name של שירות לקצה העורפי לערך web-backend-service.
  4. מוודאים שסוג הבק-אנד מוגדר לקבוצת מכונות.
  5. בתפריט הנפתח Protocol, בוחרים באפשרות HTTP.
  6. בשדה Named port, מזינים http.
  7. מגדירים את בדיקת התקינות של מופעי www:
    1. ברשימה בדיקת תקינות, לוחצים על יצירת בדיקת תקינות.
    2. בשדה שם מזינים http-basic-check-www.
    3. ברשימה Protocol, בוחרים באפשרות HTTP.
    4. בשדה יציאה, מזינים 80.
    5. לוחצים על יצירה.
  8. בקטע Backends, מגדירים את Instance group לערך ig-www-us.
  9. לתעבורה בין מאזן העומסים לבין המופעים, מגדירים את מספרי היציאות ל-80.
  10. משאירים את ערכי ברירת המחדל בשאר השדות.
  11. לוחצים על סיום בתחתית החלון New backend (קצה עורפי חדש).
  12. לוחצים על הוספת קצה עורפי וחוזרים על השלבים, אבל בוחרים בקבוצת מופעים ig-www-eu.
  13. כדי להמשיך, צריך להשאיר את החלון פתוח.

הגדרת שירות הקצה העורפי ובדיקת התקינות עבור מופעי video

  1. חוזרים על השלבים הקודמים כדי להגדיר את שירות לקצה העורפי ואת בדיקת תקינות, אבל נותנים לשירות לקצה העורפי השני את השם video-backend-service ומקצים לו את קבוצות המכונות ig-video-us ו-ig-video-eu.
  2. מבצעים את אותם השלבים כדי ליצור בדיקת תקינות, אבל נותנים לבדיקת התקינות את השם http-basic-check-video. השמות של בדיקות תקינות צריכים להיות ייחודיים.

הגדרת כללים של מארח ונתיב

כללי המארח והנתיב מגדירים את משאב מפת ה-URL של מאזן העומסים.

  1. בעמודה הימנית של המסך, לוחצים על כללים לגבי מארח ונתיב.
  2. בשורה הראשונה מופיע web-backend-service בעמודה הימנית, והיא כבר מאוכלסת בכלל ברירת המחדל Any unmatched (default) עבור מארחים ונתיבים.
  3. מוודאים שיש שורה שנייה עם הערך video-backend-service בעמודה השמאלית. אם הוא לא קיים, לוחצים על הוספת כלל של מארח ונתיב, ואז בוחרים באפשרות video-backend-service מהתפריט הנפתח בעמודה השמאלית. ממלאים את שאר העמודות באופן הבא:
    1. מגדירים את Hosts לערך *.
    2. בשדה נתיבים:
      1. מזינים /video ואז מקישים על מקש Tab.
      2. מזינים /video/* ואז מקישים על מקש Tab.

הגדרת הקצה הקדמי

בקטע של הגדרת ממשק הקצה מוגדרים כמה משאבים למאזן העומסים, כולל כללי ההעברה ואישורי ה-SSL. בנוסף, אפשר לבחור את הפרוטוקול שבו משתמשים בין הלקוח לבין מאזן העומסים.

בדוגמה הזו, אתם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים, ולכן אתם צריכים משאב אחד או יותר של אישור SSL כדי להגדיר את ה-proxy. מידע על יצירת משאבי אישור SSL זמין במאמר בנושא אישורי SSL. מומלץ להשתמש באישור שמנוהל על ידי Google.

  1. בחלונית שמימין בדף Create global external Application Load Balancer (יצירת איזון עומסים חיצוני גלובלי לאפליקציות), לוחצים על Frontend configuration (הגדרת חזית האתר).
  2. בשדה שם מזינים https-content-rule.
  3. בשדה Protocol, בוחרים באפשרות HTTPS.
  4. כדי להמשיך, צריך להשאיר את החלון פתוח.

הגדרת כלל העברה של IPv4

  1. מגדירים את IP version ל-IPv4.
  2. בשדה IP address (כתובת IP), בוחרים את כתובת ה-IP lb-ipv4-1 שיצרתם קודם.
  3. מוודאים שהיציאה מוגדרת ל-443, כדי לאפשר תנועה ב-HTTPS.
  4. לוחצים על התפריט הנפתח אישור.
    1. אם כבר יש לכם משאב של אישור SSL בניהול עצמי ואתם רוצים להשתמש בו כאישור ה-SSL הראשי, בוחרים אותו מהתפריט הנפתח.
    2. אחרת, בוחרים באפשרות Create a new certificate.
    3. ממלאים את השם של www-ssl-cert.
    4. בוחרים באפשרות העלאת האישור שלי או באפשרות יצירת אישור מנוהל על ידי Google. כדי ליצור אישור שמנוהל על ידי Google, צריך דומיין. אם אין לכם דומיין, אתם יכולים להעלות אישור משלכם לצורך בדיקה.
    5. אם בחרתם באפשרות העלאת האישור שלי, צריך לבצע את השלבים הבאים.
      1. בשדה אישור של מפתח ציבורי, מבצעים אחת מהפעולות הבאות:
        • לוחצים על הלחצן העלאה ובוחרים את קובץ האישור בפורמט PEM.
        • מעתיקים ומדביקים את התוכן של אישור בפורמט PEM. התוכן צריך להתחיל ב------BEGIN CERTIFICATE----- ולהסתיים ב------END CERTIFICATE-----.
      2. בשדה Certificate chain (שרשרת אישורים), מבצעים אחת מהפעולות הבאות:
        • לוחצים על הלחצן העלאה ובוחרים את קובץ האישור של רשות האישורים. הקובץ הזה צריך לכלול אישורי ביניים של רשות האישורים וגם את אישור הבסיס של רשות האישורים.
        • מעתיקים ומדביקים את התוכן של שרשרת אישורים. כל אישור בשרשרת צריך להיות בפורמט PEM, להתחיל ב------BEGIN CERTIFICATE----- ולהסתיים ב------END CERTIFICATE-----. Google Cloud לא מאמתת את שרשרת האישורים בשבילכם – אתם אחראים לאימות.
        • אם לא מציינים את שרשרת האישורים, האישור צריך להיות חתום על ידי רשות אישורים מהימנה באופן ציבורי, שהלקוחות יסמכו עליה באופן אוטומטי.
      3. בשדה Private key certificate, מבצעים אחת מהפעולות הבאות:
        • לוחצים על הלחצן העלאה ובוחרים את המפתח הפרטי. המפתח הפרטי צריך להיות בפורמט PEM ולא מוגן באמצעות ביטוי סיסמה.
        • מעתיקים ומדביקים את התוכן של מפתח פרטי בפורמט PEM. מפתחות פרטיים של RSA חייבים להתחיל ב------BEGIN RSA PRIVATE KEY----- ולהסתיים ב------END RSA PRIVATE KEY-----. מפתחות פרטיים של ECDSA צריכים להתחיל ב------BEGIN EC PRIVATE KEY----- ולהסתיים ב------END EC PRIVATE KEY-----.
      4. לוחצים על יצירה.
    6. אם בחרתם באפשרות Create Google managed certificate, צריך להזין Domain.
  5. כדי להוסיף משאבי אישורים בנוסף למשאב אישור ה-SSL הראשי:
    1. לוחצים על הוספת אישור.
    2. בוחרים אישור מהרשימה Certificates (אישורים) או לוחצים על Create a new certificate (יצירת אישור חדש) ופועלים לפי ההוראות שלמעלה.
  6. בקטע QUIC negotiation (משא ומתן על פרוטוקול QUIC), בוחרים באחת מהאפשרויות הבאות:
    • אוטומטי (ברירת מחדל) מאפשר ל-Google לשלוט בתזמון של משא ומתן על QUIC. בשלב הזה, כשבוחרים באפשרות אוטומטי, פרוטוקול QUIC מושבת. אם תבחרו באפשרות הזו, תאפשרו ל-Google להפעיל באופן אוטומטי בעתיד את המשא ומתן על QUIC ואת HTTP/3 במאזן העומסים הזה. ב-gcloud וב-API, האפשרות הזו נקראת NONE.
    • מופעל: מאפשר למאזן העומסים לנהל משא ומתן על QUIC עם לקוחות.
    • מושבת מאפשר למאזן העומסים לנהל משא ומתן על QUIC עם לקוחות.
  7. לוחצים על סיום.
  8. כדי להמשיך, צריך להשאיר את החלון פתוח.

הגדרת כלל העברה של IPv6

  1. לוחצים על Add frontend IP and port.
  2. מזינים שם של https-content-ipv6-rule.
  3. בשדה פרוטוקול, בוחרים באפשרות HTTPS אם רוצים להשתמש ב-HTTPS בין הלקוח לבין מאזן העומסים. בוחרים באפשרות HTTP אם רוצים להשתמש ב-HTTP בין הלקוח לבין מאזן העומסים.
  4. מגדירים את IP version ל-IPv6.
  5. בשדה IP בוחרים את כתובת ה-IP lb-ipv6-1 שיצרתם קודם.
  6. חובה לציין את היציאה של 443 כברירת מחדל.
  7. אם כבר יש לכם משאב של אישור SSL שאתם רוצים להשתמש בו, בוחרים אותו בתפריט הנפתח Certificate (אישור). אם לא, בוחרים באפשרות יצירת אישור חדש.
    1. ממלאים את השם של www-ssl-cert.
    2. בשדות המתאימים מעלים את האישור של המפתח הציבורי (קובץ ‎.crt), את שרשרת האישורים (קובץ ‎.csr) ואת המפתח הפרטי (קובץ ‎.key).
    3. לוחצים על יצירה.
  8. כדי להוסיף משאבי אישורים בנוסף למשאב אישור ה-SSL הראשי:
    1. לוחצים על הוספת אישור.
    2. בוחרים אישור מהרשימה Certificates (אישורים) או לוחצים על Create a new certificate (יצירת אישור חדש) ופועלים לפי ההוראות שלמעלה.
  9. בקטע QUIC negotiation (משא ומתן על פרוטוקול QUIC), בוחרים באחת מהאפשרויות הבאות:
    • אוטומטי (ברירת מחדל) מאפשר ל-Google לשלוט בתזמון של משא ומתן על QUIC. בשלב הזה, כשבוחרים באפשרות אוטומטי, פרוטוקול QUIC מושבת. אם בוחרים באפשרות הזו, מאשרים ל-Google להפעיל באופן אוטומטי בעתיד את פרוטוקול QUIC ואת HTTP/3 במאזן העומסים הזה. ב-gcloud וב-API, האפשרות הזו נקראת NONE.
    • מופעל מאפשר למאזן העומסים לנהל משא ומתן על QUIC עם לקוחות.
    • מושבת מאפשר למאזן העומסים לנהל משא ומתן עם לקוחות לגבי פרוטוקול QUIC.
  10. לוחצים על סיום.

בדיקה וסיום

  1. בחלונית הימנית של הדף Create global external Application Load Balancer, לוחצים על Review and finalize.
  2. משווים את ההגדרות למה שרציתם ליצור.
  3. אם הכול נראה תקין, לוחצים על יצירה כדי ליצור את מאזן העומסים החיצוני של האפליקציה.

gcloud

  1. יוצרים בדיקת תקינות. משתמשים בפקודה gcloud עבור HTTP אם משתמשים ב-HTTP בין מאזן העומסים לבין השרתים העורפיים.

    gcloud compute health-checks create http http-basic-check \
        --port 80
    
  2. יוצרים שירות לקצה העורפי לכל ספק תוכן.

    מגדירים את השדה --protocol לערך HTTP כי אנחנו משתמשים ב-HTTP כדי לעבור למופעים. משתמשים בבדיקת התקינות http-basic-check שיצרנו קודם כבדיקת התקינות.

    • במאזן עומסים גלובלי חיצוני של אפליקציות, משתמשים בפקודת ה-CLI של gcloud עם load-balancing-scheme=EXTERNAL_MANAGED. ההגדרה הזו מציעה יכולת מתקדמת לניהול תנועה.
    • במאזן עומסים קלאסי של אפליקציות (ALB), משתמשים ב-load-balancing-scheme=EXTERNAL.
    gcloud compute backend-services create video-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
    gcloud compute backend-services create web-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
  3. מוסיפים את קבוצות המכונות כקצה עורפי לשירותים לקצה העורפי. בקצה העורפי מוגדר הקיבולת (ניצול מקסימלי של הקצה העורפי או מספר מקסימלי של שאילתות לשנייה) של קבוצות המופעים שהוא מכיל. בדוגמה הזו, הערך של balancing-mode מוגדר ל-UTILIZATION, הערך של max-utilization מוגדר ל-0.8 והערך של capacity-scaler מוגדר ל-1. מגדירים את capacity-scaler ל-0 אם רוצים לנקז שירות קצה עורפי.

    מוסיפים את קבוצת המכונות ig-video-us:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-us \
        --instance-group-zone=us-central1-b \
        --global
    

    מוסיפים את קבוצת המכונות ig-video-eu:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-eu \
        --instance-group-zone=europe-west1-b \
        --global
    

    מוסיפים את קבוצת המכונות ig-www-us:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-us \
        --instance-group-zone=us-central1-b \
        --global
    

    מוסיפים את קבוצת המכונות ig-www-eu:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-eu \
        --instance-group-zone=europe-west1-b \
        --global
    
  4. יוצרים מפת URL כדי לנתב את הבקשות הנכנסות לשירותי ה-Backend המתאימים. במקרה הזה, מיפויים של נתיבי בקשות שהוגדרו באמצעות הדגל --path-rules מפצלים את התנועה בהתאם לנתיב כתובת ה-URL בכל בקשה לאתר שלכם. תנועה שלא תואמת לרשומה ברשימה --path-rules נשלחת לרשומה ב--default-service flag.

    1. יוצרים מפת URL:

      gcloud compute url-maps create web-map \
          --default-service web-backend-service
      
    2. מוסיפים התאמת נתיבים למפת ה-URL ומגדירים את מיפויי נתיבי הבקשות:

      gcloud compute url-maps add-path-matcher web-map \
          --default-service web-backend-service \
          --path-matcher-name pathmap \
          --path-rules="/video=video-backend-service,/video/*=video-backend-service"
      
  5. יוצרים משאב של אישור SSL לשימוש ב-proxy של HTTPS. כדי ליצור אישור שמנוהל על ידי Google, צריך דומיין. אם אין לכם דומיין, אתם יכולים להשתמש באישור SSL בחתימה עצמית לבדיקה. מידע נוסף זמין במאמר בנושא סוגים של אישורי SSL.

    אם אתם משתמשים בכמה אישורי SSL, אתם צריכים ליצור משאב של אישור SSL לכל אישור.

    כדי ליצור משאב של אישור SSL בניהול עצמי:

    gcloud compute ssl-certificates create www-ssl-cert \
        --certificate [CRT_FILE_PATH] \
        --private-key [KEY_FILE_PATH]
    

    כדי ליצור משאב של אישור SSL בניהול Google:

    gcloud compute ssl-certificates create www-ssl-cert \
      --domains [DOMAIN]
    
  6. יוצרים HTTPS proxy ליעד כדי להפנות בקשות למפת URL. הפרוקסי הוא החלק במאזן העומסים שמכיל את אישור ה-SSL לאיזון עומסים של HTTPS, ולכן בשלב הזה מעלים גם את האישור.

    gcloud compute target-https-proxies create https-lb-proxy \
        --url-map web-map --ssl-certificates www-ssl-cert
    
  7. יוצרים שני כללי העברה גלובליים כדי לנתב בקשות נכנסות לשרת ה-proxy, כלל אחד לכל אחת מכתובות ה-IP שיצרתם.

    • במאזן עומסים גלובלי חיצוני של אפליקציות, משתמשים בפקודת ה-CLI של gcloud עם load-balancing-scheme=EXTERNAL_MANAGED. ההגדרה הזו מציעה יכולת מתקדמת לניהול תנועה.
    • במאזן עומסים קלאסי של אפליקציות (ALB), משתמשים ב-load-balancing-scheme=EXTERNAL.
    gcloud compute forwarding-rules create https-content-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    
    gcloud compute forwarding-rules create https-content-ipv6-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv6-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    

אחרי שיוצרים את כלל ההעברה הגלובלי, יכולות לחלוף כמה דקות עד שההגדרה תתעדכן בכל העולם.

חיבור הדומיין למאזן העומסים

אחרי שיוצרים את מאזן העומסים, רושמים את כתובת ה-IP שמשויכת למאזן העומסים – לדוגמה, 30.90.80.100. כדי להפנות את הדומיין למאזן העומסים, צריך ליצור רשומת A באמצעות שירות הרישום של הדומיין. אם הוספתם מספר דומיינים לאישור ה-SSL, צריך להוסיף רשומת A לכל אחד מהם, כשכולם מפנים לכתובת ה-IP של מאזן העומסים. לדוגמה, כדי ליצור רשומות A בשביל www.example.com ובשביל example.com, משתמשים בפקודה הבאה:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.

הפניית תנועה למופעים

אחרי שהגדרתם את שירות איזון העומסים, אתם יכולים להתחיל לשלוח תעבורה לכלל ההעברה ולראות את התעבורה עוברת למופעים שונים.

מסוף ודפדפן אינטרנט

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף איזון עומסים

  2. לוחצים על web-map כדי להרחיב את מאזן העומסים שיצרתם.

  3. בקטע Backend, מוודאים שהמכונות תקינות. העמודה Healthy (תקין) צריכה להיות מאוכלסת, כלומר ששני המקרים בכל אחת מארבע קבוצות המופעים תקינים. אם אתם רואים משהו אחר, נסו קודם לטעון מחדש את הדף. יכול להיות שיחלפו כמה רגעים עד שמסוףGoogle Cloud יציין שהמופעים תקינים. אם אחרי כמה דקות מצב השרתים העורפיים לא תקין, כדאי לבדוק את הגדרות חומת האש ואת קבוצת תגי הרשת שהוקצו למופעי השרת העורפי.

  4. רושמים את כתובות ה-IPv4 ו-IPv6 של מאזן העומסים:

    1. נכנסים לדף External IP addresses במסוף Google Cloud .

      נכנסים אל External IP addresses

    2. בקטע Name (שם), מאתרים את הכתובות lb-ipv4-1 ו-lb-ipv6-1, ורושמים את הערכים המשויכים מהעמודה External Addresses (כתובות חיצוניות).

  5. אם אתם משתמשים באישור שמנוהל על ידי Google:

    1. יוצרים את רשומות ה-DNS הבאות:

    2. מוודאים שהסטטוס של משאב האישור הוא ACTIVE. מידע נוסף זמין במאמר סטטוס של משאב אישור SSL בניהול Google.

  6. כדי לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט, עוברים לאחת מהכתובות הבאות:

    • https://IP_ADDRESS, כאשר IP_ADDRESS היא כתובת ה-IPv4 של מאזן העומסים. אם בדפדפן מוצגת אזהרה לגבי אישור, צריך להנחות את הדפדפן לתת אמון באישור. האזהרה מופיעה כי בדרך כלל האישורים מוגדרים עם דומיינים ולא עם כתובות IP.

    • https://FQDN, כאשר FQDN הוא שם הדומיין המוגדר במלואו (FQDN) שעבורו הגדרתם את ה-DNS כך שיצביע על כתובת ה-IP של מאזן העומסים. אם השתמשתם באישור SSL בחתימה עצמית בניהול עצמי או באישור SSL בניהול עצמי שנחתם על ידי רשות אישורים (CA) בהתאמה אישית, בדפדפן תוצג אזהרה לגבי האישור, אלא אם הגדרתם במפורש שהדפדפן ייתן אמון באישור או ברשות האישורים שלו. פרטים נוספים על אישורים בניהול עצמי זמינים במאמר יצירת מפתח פרטי ואישור.

    בדפדפן אמור להיות מוצג דף עם תוכן שכולל את השם של המופע שסיפק את הדף, יחד עם האזור שלו (לדוגמה, Page on ig-www-us-02 in us-central1-b).

  7. בדפדפן, עוברים לאחת מהאפשרויות הבאות:

    • https://IP_ADDRESS/video, כאשר ‫IP_ADDRESS היא כתובת ה-IPv4 של איזון העומסים.

    • https://FQDN/video, כאשר FQDN הוא ה-FQDN שהגדרתם עבורו את ה-DNS כך שיצביע על כתובת ה-IP של מאזן העומסים.

    בדפדפן אמור להיות מוצג דף עם תוכן שכולל את השם של מופע הסרטון שהציג את הדף, יחד עם האזור שלו (לדוגמה, Page on ig-video-us-02 in us-central1-b).

‫gcloud ושימוש ב-curl

  1. רושמים את כתובות ה-IPv4 ו-IPv6 של מאזן העומסים:

    gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global
    
    gcloud compute addresses describe lb-ipv6-1 \
    --format="get(address)" \
    --global
    
  2. אם אתם משתמשים באישור שמנוהל על ידי Google:

    1. יוצרים את רשומות ה-DNS הבאות:

    2. מוודאים שהסטטוס של משאב האישור הוא ACTIVE. מידע נוסף זמין במאמר בנושא סטטוס של משאב אישור SSL בניהול Google.

      gcloud compute ssl-certificates list
      
  3. משתמשים בפקודה curl כדי לבדוק את התגובה מכתובות ה-URL האלה. מחליפים את IP_ADDRESS בכתובת IPv4 של איזון העומסים:

    curl -k https://IP_ADDRESS
    
    curl -k https://IP_ADDRESS/video/
    
  4. משתמשים בפקודה curl כדי לבדוק את התגובה מכתובות ה-URL האלה. מחליפים את IP_ADDRESS בכתובת ה-IPv6 של איזון העומסים. ב-IPv6, צריך להוסיף סוגריים ([]) מסביב לכתובת ולהשבית את השימוש בתווים כלליים באמצעות הדגל -g (לדוגמה, curl -g -6 "https://[2001:DB8::]/").

    curl -k -g -6 https://[IP_ADDRESS]
    
    curl -k -g -6 https://[IP_ADDRESS]/video/
    

בדיקת הפונקציונליות של מספר אזורים

כדי לדמות משתמש באזור גיאוגרפי אחר, אפשר להתחבר לאחת מהמכונות הווירטואליות שלכם באזור אחר, ואז להריץ פקודת curl מהמכונה הזו כדי לראות את הבקשה עוברת למכונה באזור שהכי קרוב אליה.

אם מתחברים אל ig-www-us-01, הרצת פקודה של curl מראה שהבקשה מועברת למופע ב-us-central1. הפלט אמור להיראות כך: Page on ig-www-us-02 in us-central1-b.

אם מתחברים אל ig-www-eu-01, הרצת פקודה של curl מראה שהבקשה מועברת למופע ב-europe-west1. הפלט אמור להיראות כך: Page on ig-www-eu-02 in europe-west1-b.

אפשר לבצע בדיקות ממערכת לקוח שנמצאת בכל מקום בעולם. אם השרתים העורפיים באזור מסוים לא תקינים או שהגיעו לקיבולת המקסימלית, מאזן העומסים ב-HTTPS שולח את התעבורה באופן אוטומטי לאזור הקרוב הבא.

אפשרויות הגדרה נוספות

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

הפעלת זיקה לסשן

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

  • זיקה לסשן (session affinity) לכתובת IP של לקוח עבור web-backend-service
  • זיקה לסשן של קובץ Cookie‏ HTTP עבור video-backend-service

כשזיקה לכתובת IP של לקוח מופעלת, מאזן העומסים (LB) מפנה את הבקשות של לקוח מסוים לאותה מכונה וירטואלית בעורף העורף, על סמך גיבוב שנוצר מכתובת ה-IP של הלקוח.

כשמופעלת זיקה לקובץ Cookie שנוצר, מאזן העומסים מנפיק קובץ Cookie בבקשה הראשונה. לכל בקשה עוקבת עם אותו קובץ Cookie, מאזן העומסים מפנה את הבקשה לאותה מכונת VM או לנקודת קצה של קצה עורפי. במאזני עומסים חיצוניים של אפליקציות, קובץ ה-Cookie נקרא GCLB.

המסוף

כדי להפעיל זיקה לסשן (session affinity) לכתובת IP של לקוח עבור web-backend-service:

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף איזון עומסים

  2. לוחצים על Backends.

  3. לוחצים על web-backend-service (השם של אחד משירותי ה-Backend שיצרתם בדוגמה הזו) ואז על Edit (עריכה).

  4. בדף פרטי שירות לקצה העורפי, לוחצים על הגדרות מתקדמות.

  5. בקטע Session affinity, בוחרים באפשרות Client IP מהתפריט.

  6. לוחצים על Save.

כדי להפעיל זיקה לסשן של קובץ Cookie שנוצר ב-video-backend-service:

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף איזון עומסים

  2. לוחצים על Backends.

  3. לוחצים על video-backend-service (השם של אחד משירותי ה-Backend שיצרתם בדוגמה הזו) ואז על Edit (עריכה).

  4. בדף פרטי שירות לקצה העורפי, לוחצים על הגדרות מתקדמות.

  5. בקטע Session affinity (שיוך סשן), בוחרים באפשרות Generated cookie (קובץ Cookie שנוצר) מהתפריט.

  6. לוחצים על עדכון.

gcloud

משתמשים בפקודה gcloud הבאה כדי לעדכן את שירות לקצה העורפי, ומציינים את הזיקה לסשן (session affinity) לכתובת IP של לקוח:web-backend-service

gcloud compute backend-services update web-backend-service \
    --session-affinity=CLIENT_IP \
    --global

כדי לעדכן את שירות לקצה העורפי video-backend-service, משתמשים בפקודה gcloud הבאה ומציינים את הזיקה לסשן (session affinity) של קובצי ה-Cookie שנוצרו:

gcloud compute backend-services update video-backend-service \
    --session-affinity=GENERATED_COOKIE \
    --global

API

כדי להגדיר זיקה לסשן (session affinity) של כתובת IP של לקוח, שולחים בקשת PATCH אל ה-method‏ backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
  "sessionAffinity": "CLIENT_IP"
}

כדי להגדיר זיקה לסשן של קובץ Cookie שנוצר, שולחים בקשת PATCH אל ה-method‏ backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
  "sessionAffinity": "GENERATED_COOKIE"
}

הסרה של כתובות IP חיצוניות ממכונות וירטואליות של קצה עורפי

מאזני עומסים חיצוניים של אפליקציות (ALB) מתקשרים עם קצה עורפי באמצעות כתובות ה-IP הפנימיות שלהם ונתיבי מאזן עומסים מיוחדים. למכונות העורפיות לא צריכות להיות כתובות IP חיצוניות כדי לתקשר עם מאזן העומסים. כדי לשפר את האבטחה, אפשר להסיר את כתובות ה-IP החיצוניות מהמופעים של ה-Backend.

כדי להסיר כתובות IP חיצוניות ממופעי קצה עורפי, פועלים לפי ההוראות האלה.

אם אתם צריכים להתחבר באמצעות SSH לשרת עורפי שאין לו כתובת IP חיצונית, תוכלו לעיין במאמר איך מתחברים למופע שאין לו כתובת IP חיצונית.

סידור וארגון

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

מחיקת הפרויקט

המסוף

  1. נכנסים לדף Projects במסוף Google Cloud .

    לדף Projects

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על מחיקה.

  3. בתיבת הדו-שיח, כותבים את PROJECT_ID ולוחצים על Shut down כדי למחוק את הפרויקט.

gcloud

מריצים את הפקודה הבאה ומחליפים את PROJECT_ID במזהה הפרויקט:

gcloud projects delete PROJECT_ID

מחיקה של משאבים ספציפיים

המסוף

מחיקת מאזן העומסים

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף איזון עומסים

  2. מסמנים את תיבת הסימון ליד web-map.

  3. לוחצים על הלחצן מחיקה בחלק העליון של הדף.

  4. מסמנים את התיבות לצד כל המשאבים הנוספים, כולל שירותי קצה עורפי, בדיקות תקינות ואישורי SSL.

  5. לוחצים על מחיקת איזון העומסים והמשאבים שנבחרו.

מחיקת קבוצות המכונות

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. כדי לבחור את כל קבוצות המכונות, מסמנים את תיבת הסימון בחלק העליון לצד שם.

  3. לוחצים על מחיקה.

  4. בחלון האישור, לוחצים על מחיקה.

שחרור כתובות IP חיצוניות

  1. נכנסים לדף External IP addresses במסוף Google Cloud .

    נכנסים אל External IP addresses

  2. מסמנים את תיבות הסימון לצד lb-ipv4-1 ו-lb-ipv6-1.

  3. לוחצים על הסרת כתובות סטטיות.

  4. בחלון האישור, לוחצים על מחיקה.

מחיקת הכללים של חומת האש

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    לדף Firewall policies

  2. מסמנים את תיבות הסימון לצד fw-allow-health-check-and-proxy ו-fw-allow-ssh.

  3. לוחצים על מחיקה.

  4. בחלון האישור, לוחצים על מחיקה.

מחיקת המכונות הווירטואליות

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. כדי לבחור את כל המכונות, מסמנים את התיבה שלצד שם בחלק העליון.

  3. לוחצים על מחיקה.

  4. בחלון האישור, לוחצים על מחיקה.

מחיקת רשת ה-VPC

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. לחץ על lb-network.

  3. בדף פרטי הרשת, לוחצים על מחיקת רשת VPC.

  4. בחלון האישור, לוחצים על מחיקה.

gcloud

מחיקת מאזן העומסים

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

  1. מחיקת כללי ההעברה:

    gcloud compute forwarding-rules delete https-content-rule \
        --global
    
    gcloud compute forwarding-rules delete https-content-ipv6-rule \
        --global
    
  2. מחיקת כתובות IP חיצוניות גלובליות:

    gcloud compute addresses delete lb-ipv4-1 \
        --global
    
    gcloud compute addresses delete lb-ipv6-1 \
        --global
    
  3. מחיקת שרת proxy של יעד:

    gcloud compute target-https-proxies delete https-lb-proxy
    
  4. מוחקים את אישור ה-SSL:

    gcloud compute ssl-certificates delete www-ssl-cert
    
  5. מחיקת מפת URL:

    gcloud compute url-maps delete web-map
    
  6. מוחקים את שירותי ה-Backend:

    gcloud compute backend-services delete web-backend-service \
        --global
    
    gcloud compute backend-services delete video-backend-service \
        --global
    
  7. מוחקים את בדיקות התקינות:

    gcloud compute health-checks delete http-basic-check
    

מחקתם את כל המשאבים של מאזן העומסים.

מחיקת קבוצות המכונות

מריצים את הפקודה הבאה כדי למחוק ארבע קבוצות של מכונות לא מנוהלות, באמצעות השילובים הבאים של שם ואזור. מחליפים את INSTANCE_GROUP_NAME ואת ZONE בהתאם:

  • שם: ig-www-us, אזור: us-central1-b
  • שם: ig-video-us, אזור: us-central1-b
  • שם: ig-www-eu, אזור: europe-west1-b
  • שם: ig-video-eu, אזור: europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \
   --zone=ZONE

מחיקת המכונות הווירטואליות

מריצים שוב את הפקודה הבאה כדי למחוק שמונה מכונות וירטואליות, באמצעות השילובים הבאים של שם ואזור. מחליפים את VM_NAME ואת ZONE בהתאם:

  • שם: ig-www-us-01, אזור: us-central1-b
  • שם: ig-www-us-02, אזור: us-central1-b
  • שם: ig-video-us-01, אזור: us-central1-b
  • שם: ig-video-us-02, אזור: us-central1-b
  • שם: ig-www-eu-01, אזור: europe-west1-b
  • שם: ig-www-eu-02, אזור: europe-west1-b
  • שם: ig-video-eu-01, אזור: europe-west1-b
  • שם: ig-video-eu-02, אזור: europe-west1-b
gcloud compute instances delete VM_NAME \
   --zone=ZONE

מחיקת הכללים של חומת האש

מוחקים את שני הכללים של חומת האש:

gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh

מחיקת רשת ה-VPC

  1. מחיקת us-subnet:

    gcloud compute networks subnets delete us-subnet \
    --region=us-central1
    
  2. מחיקת eu-subnet:

    gcloud compute networks subnets delete eu-subnet \
    --region=europe-west1
    
  3. מחיקת רשת ה-VPC:

    gcloud compute networks delete lb-network
    

מחקתם את כל המשאבים שהגדרתם בפרויקט הזה.

המאמרים הבאים