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

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

סקירה כללית של ההגדרה

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

  1. ארבעה מקרים שמתפרסים על פני שני אזורים
  2. קבוצות של מופעים להחזקת המופעים
  3. רכיבי קצה עורפי, כולל:
    • בדיקת תקינות – משמשת למעקב אחר תקינות המופע
    • שירות קצה עורפי – עוקב אחרי קבוצות של מופעי מכונה ומונע מהן לחרוג מהשימוש שהוגדר
    • שרתי קצה עורפיים – מכילים את קבוצות המופעים
  4. רכיבי חזית, שכוללים את הרכיבים הבאים:
    • משאב של אישור SSL.
    • ה-SSL proxy עצמו עם אישור ה-SSL שלו
    • כתובת IPv4 חיצונית סטטית וכלל העברה ששולח את תנועת המשתמשים לשרת ה-proxy
    • כתובת IPv6 חיצונית סטטית וכלל העברה ששולח את תנועת המשתמשים לשרת ה-proxy
  5. כלל חומת אש שמאפשר תעבורת נתונים ממאזן העומסים ומבודק תקינות המופעים אל המופעים.
  6. אפשר גם להגדיר מדיניות SSL כדי לשלוט בתכונות של SSL שמאזן העומסים של פרוקסי SSL מנהל משא ומתן לגביהן עם לקוחות.

לאחר מכן, תבדקו את ההגדרה.

הרשאות

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

משימה התפקיד הנדרש
יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים אדמין רשתות
הוספה והסרה של כללים לחומת האש Security Admin
יצירת מופעים Compute Instance Admin

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

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

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

המסוף

כדי לתמוך בתנועה מסוג IPv4 ו-IPv6, פועלים לפי השלבים הבאים:

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

    מעבר לרשתות VPC

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

  3. מזינים שם לרשת.

  4. אופציונלי: אם רוצים להגדיר טווחי כתובות IPv6 פנימיות ברשתות משנה ברשת הזו, מבצעים את השלבים הבאים:

    1. בקטע VPC network ULA internal IPv6 range (טווח IPv6 פנימי של ULA ברשת VPC), בוחרים באפשרות Enabled (מופעל).
    2. בקטע הקצאת טווח פנימי של IPv6, בוחרים באפשרות אוטומטית או ידנית.

      אם בוחרים באפשרות Manually, צריך להזין טווח של /48 מתוך הטווח fd20::/20. אם הטווח נמצא בשימוש, תתבקשו לספק טווח אחר.

  5. בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).

  6. בקטע New subnet (רשת משנה חדשה), מגדירים את השדות הבאים:

    1. בשדה Name, מציינים שם לרשת המשנה.
    2. בשדה אזור, בוחרים אזור.
    3. בשביל IP stack type, בוחרים באפשרות IPv4 and IPv6 (dual-stack).
    4. בשדה טווח כתובות IP, מזינים טווח של כתובות IP. זהו טווח ה-IPv4 הראשי של רשת המשנה.

      אפשר להגדיר טווח כתובות IPv4 עבור רשת המשנה, אבל אי אפשר לבחור את טווח כתובות ה-IPv6 עבור רשת המשנה. ‫Google מספקת בלוק CIDR של IPv6 בגודל קבוע (/64).

    5. בשדה IPv6 access type (סוג הגישה ל-IPv6), בוחרים באפשרות External (חיצוני).

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

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

  9. לוחצים על יצירה.

כדי לתמוך בתנועת נתונים ב-IPv4 בלבד, פועלים לפי השלבים הבאים:

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

    מעבר לרשתות VPC

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

  3. בשדה Name, מזינים שם לרשת.

  4. בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).

  5. בקטע New subnet (רשת משנה חדשה), מגדירים את האפשרויות הבאות:

    1. בשדה Name, מציינים שם לרשת המשנה.
    2. בשדה אזור, בוחרים אזור.
    3. בשביל IP stack type, בוחרים באפשרות IPv4 (single-stack).
    4. בשדה טווח כתובות IP, מזינים את טווח כתובות ה-IPv4 הראשי של רשת המשנה.
  6. לוחצים על סיום.

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

  8. לוחצים על יצירה.

gcloud

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

    gcloud compute networks create NETWORK \
        --subnet-mode=custom
    
  2. ברשת, יוצרים רשת משנה לשרתי קצה עורפיים.

    כדי לעדכן רשת משנה עבור תנועת IPv4 ו-IPv6, משתמשים בפקודה הבאה:

    gcloud compute networks subnets create SUBNET \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

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

    gcloud compute networks subnets create SUBNET \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK: שם לרשת ה-VPC

  • IPV4_RANGE: טווח ה-IPv4 הראשי של תת-הרשת החדשה, בסימון CIDR. לדוגמה, 10.1.2.0/24.

  • SUBNET: שם לתת-הרשת

  • REGION_A או REGION_B: שם האזור

הגדרת מכונות וקבוצות של מכונות

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

יצירת מופעים

יוצרים את המכונות האלה עם התג ssl-lb, שבו ישתמש הכלל בחומת האש בהמשך.

המסוף

יצירת מופעים

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

    כניסה לדף VM instances

  2. לוחצים על Create instance.

  3. מגדירים את Name לערך vm-a1.

  4. מגדירים את Zone לערך ZONE_A.

  5. לוחצים על אפשרויות מתקדמות.

  6. לוחצים על Networking (רשת) ומגדירים את השדה הבא:

    • בשדה Network tags (תגי רשת), מזינים את הערכים ssl-lb ו-allow-health-check-ipv6.
  7. בקטע Network interfaces, לוחצים על Edit ומבצעים את השינויים הבאים:

    • בוחרים את הרשת.
    • בוחרים רשת משנה.

    • בשדה IP stack type (סוג ערימת ה-IP), בוחרים באפשרות IPv4 and IPv6 (dual-stack) (‏IPv4 ו-IPv6 (ערימה כפולה)).

    • לוחצים על סיום.

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

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
  9. משאירים את ערכי ברירת המחדל בשאר השדות.

  10. לוחצים על יצירה.

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

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html
  12. יוצרים את vm-b1 עם אותן הגדרות, אבל עם Zone שמוגדר ל-ZONE_B ועם סקריפט לטעינה בזמן ההפעלה שמוגדר לערך הבא:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html
  13. יוצרים את vm-b2 עם אותן הגדרות, אבל עם Zone שמוגדר ל-ZONE_B ועם סקריפט לטעינה בזמן ההפעלה שמוגדר לערך הבא:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. יצירת vm-a1 באזור ZONE_A.

    gcloud compute instances create vm-a1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags ssl-lb \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo a2ensite default-ssl
         sudo a2enmod ssl
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  2. יצירת vm-a2 באזור ZONE_A.

    gcloud compute instances create vm-a2 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=ZONE_A \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  3. יצירת vm-b1 באזור ZONE_B.

    gcloud compute instances create vm-b1 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=ZONE_B \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    
  4. יצירת vm-b2 באזור ZONE_B.

    gcloud compute instances create vm-b2 \
      --image-family=debian-12 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=ZONE_B \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    

יצירת קבוצת מופעים לכל אזור והוספת מופעים

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על יצירת קבוצת מופעים.

  3. מגדירים את Name לערך instance-group-a.

  4. מגדירים את Zone לערך ZONE_A.

  5. בקטע Port mapping (מיפוי יציאות), לוחצים על Add port (הוספת יציאה). מאזן עומסים שולח תנועה לקבוצת מכונות דרך יציאה עם שם. יוצרים יציאה עם שם כדי למפות את התנועה הנכנסת למספר יציאה ספציפי.

    1. מזינים שם יציאה של ssl-lb ומספרי יציאות של 443.
  6. בקטע Instance definition, לוחצים על Select existing instances.

  7. בקטע VM instances, בוחרים באפשרות vm-a1 ואז באפשרות vm-a2.

  8. משאירים את שאר ההגדרות כמו שהן.

  9. לוחצים על יצירה.

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

    • Name (שם): instance-group-b
    • Zone (תחום): ZONE_B
    • שם היציאה של ssl-lb ומספרי היציאות של 443
    • Instances: ‏ vm-b1 ו-vm-b2.
  11. מוודאים שיש עכשיו שתי קבוצות של מכונות, שלכל אחת מהן יש שתי מכונות.

gcloud

  1. יוצרים את קבוצת המכונות instance-group-a.

    gcloud compute instance-groups unmanaged create instance-group-a --zone ZONE_A
    
  2. מגדירים יציאה עם שם לקבוצת המכונות.

    gcloud compute instance-groups set-named-ports instance-group-a \
        --named-ports=ssl-lb:443 \
        --zone=ZONE_A
    
  3. הוספה של vm-a1 ו-vm-a2 לקבוצת המופעים instance-group-a

    gcloud compute instance-groups unmanaged add-instances instance-group-a \
        --instances=vm-a1,vm-a2 \
        --zone=ZONE_A
    
  4. יוצרים את קבוצת המכונות instance-group-b.

    gcloud compute instance-groups unmanaged create instance-group-b --zone ZONE_B
    
  5. מגדירים יציאה עם שם לקבוצת המכונות.

    gcloud compute instance-groups set-named-ports instance-group-b \
        --named-ports=ssl-lb:443 \
        --zone=ZONE_B
    
  6. הוספה של vm-b1 ושל vm-b2 לקבוצת המופעים instance-group-b

    gcloud compute instance-groups unmanaged add-instances instance-group-b \
        --instances=vm-b1,vm-b2 \
        --zone=ZONE_B
    

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

הגדרת משאב של אישור SSL

כדי ליצור את מאזן העומסים, צריך משאב של אישור SSL שאפשר לצרף לפרוקסי היעד. משאב אישור ה-SSL יכול להיות מיפוי אישורים או אישור SSL של Compute Engine (אישור קלאסי).

מפת אישורים

אפשר ליצור מיפוי אישורים כמו שמתואר באחד מהמסמכים הבאים:

אישור SSL ב-Compute Engine

במאזן עומסים ב-HTTPS, יוצרים משאב אישור SSL ב-Compute Engine, כמו שמתואר באחד מהמסמכים הבאים:

מומלץ להשתמש באישור שמנוהל על ידי Google.

יצירת כלל לחומת האש עבור מאזן העומסים של SSL

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

המסוף

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

    לדף Firewall policies

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

  3. בשדה שם מזינים allow-ssl-lb-and-health.

  4. בוחרים את הרשת.

  5. בקטע יעדים, בוחרים באפשרות תגי יעד ספציפיים.

  6. מגדירים את Target tags (תגי יעד) ל-ssl-lb.

  7. מגדירים את Source filter בתור IPv4 ranges.

  8. מגדירים את Source IPv4 ranges ל-130.211.0.0/22 ול-35.191.0.0/16.

  9. בקטע פרוטוקולים ויציאות, מגדירים את פרוטוקולים ויציאות שצוינו לערך tcp:443.

  10. לוחצים על יצירה.

gcloud

gcloud compute firewall-rules create allow-ssl-lb-and-health \
  --source-ranges=130.211.0.0/22,35.191.0.0/16 \
  --target-tags=ssl-lb \
  --allow=tcp:443

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

gcloud compute ssl-certificates list

יצירת כלל לחומת האש לבדיקת תקינות של IPv6

מוודאים שיש כלל תעבורה נכנסת שחל על המופעים שמתבצע איזון עומסים ביניהם, ושמאפשר תעבורה ממערכות בדיקת תקינות (2600:2d00:1:b029::/64). בדוגמה הזו נעשה שימוש בתג היעד allow-health-check-ipv6 כדי לזהות את המכונות הווירטואליות שהכלל חל עליהן. Google Cloud

בלי כלל חומת האש הזה, כלל הדחייה כברירת מחדל של תעבורת נתונים נכנסת (ingress) חוסם תעבורת נתונים נכנסת של IPv6 לשרתים העורפיים (backend instance).

המסוף

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

    לדף Firewall policies

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

    • Name (שם): fw-allow-lb-access-ipv6
    • רשת: NETWORK
    • עדיפות: 1000
    • כיוון התנועה: תנועה נכנסת
    • יעדים: תגי יעד שצוינו
    • בשדה Target tags (תגי טרגוט), מזינים allow-health-check-ipv6.
    • מסנן מקור: טווחים של IPv6
    • טווחים של כתובות IPv6 של המקור: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    • Protocols and ports (פרוטוקולים ויציאות): Allow all (אישור הכול)
  3. לוחצים על יצירה.

gcloud

יוצרים את כלל חומת האש fw-allow-lb-access-ipv6 כדי לאפשר תקשורת עם תת-הרשת:

gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
  --network=NETWORK \
  --action=allow \
  --direction=ingress \
  --target-tags=allow-health-check-ipv6 \
  --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
  --rules=all

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

המסוף

התחלת ההגדרה

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

    כניסה לדף Load balancing

  2. לוחצים על Create load balancer (יצירת מאזן עומסים).
  3. בקטע Type of load balancer (סוג מאזן העומסים), בוחרים באפשרות Network Load Balancer (TCP/UDP/SSL) (מאזן עומסים ברשת (TCP/UDP/SSL)) ולוחצים על Next (הבא).
  4. בקטע Proxy or passthrough (פרוקסי או העברה), בוחרים באפשרות Proxy load balancer (מאזן עומסים של פרוקסי) ולוחצים על Next (הבא).
  5. בקטע Public facing or internal (פנימי או גלוי לכולם), בוחרים באפשרות Public facing (external) (גלוי לכולם – חיצוני) ולוחצים על Next (הבא).
  6. אם רוצים פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
  7. בקטע Load balancer generation (יצירת מאזן עומסים), בוחרים באפשרות Global external proxy Network Load Balancer (מאזן עומסי רשת גלובלי חיצוני בשרת proxy) ולוחצים על Next (הבא).
  8. לוחצים על Configure (הגדרה).

הגדרה בסיסית

מגדירים את Name לערך my-ssl-lb.

Backend configuration

  1. לוחצים על Backend configuration.
  2. ברשימה Backend type (סוג ה-Backend), בוחרים באפשרות Instance groups (קבוצות של מכונות).
  3. ברשימה Protocol בוחרים באפשרות SSL.
  4. בשדה Named port, מזינים ssl-lb.
  5. מקבלים את ערך ברירת המחדל של Timeout.
  6. ברשימה IP address selection policy בוחרים באפשרות Prefer IPv6.
  7. מגדירים את בדיקת התקינות:
    • ברשימה Health check, בוחרים באפשרות Create a health check.
    • בשדה שם מזינים my-ssl-health-check.
    • ברשימה Protocol בוחרים באפשרות SSL.
    • משאירים את ערכי ברירת המחדל בשאר ההגדרות.
    • לוחצים על יצירה.
  8. מגדירים את הקצה העורפי הראשון:
    1. בקטע New backend (שרת קצה עורפי חדש), בוחרים קבוצת מכונות instance-group-a.
    2. מגדירים את ניוד מספרים לערך 443.
    3. משאירים את ערכי ברירת המחדל בשאר ההגדרות.
  9. מגדירים את הקצה העורפי השני:
    1. לוחצים על הוספת קצה עורפי.
    2. בוחרים קבוצת מכונות instance-group-b.
    3. מגדירים את ניוד מספרים לערך 443.
    4. לוחצים על סיום.
  10. במסוף Google Cloud , מוודאים שמופיע סימן וי ליד Backend configuration. אם לא, צריך לוודא שהשלמתם את כל השלבים.

Frontend configuration

  1. לוחצים על Frontend configuration.
    1. כדי להוסיף את כלל ההעברה הראשון:
    2. מזינים שם של my-ssl-lb-forwarding-rule.
    3. בקטע Protocol, בוחרים באפשרות SSL.
    4. בקטע כתובת IP, בוחרים באפשרות יצירת כתובת IP:
      1. מזינים שם של ssl-lb-static-ipv4.
      2. לוחצים על Reserve.
    5. בקטע בחירת מאגר אישורים, בוחרים באפשרות שימוש במיפוי אישורים או שימוש באישורים קלאסיים.
    6. בהתאם לבחירה שלכם, בוחרים מפת אישורים או אישור קלאסי.
    7. (אופציונלי) כדי ליצור מדיניות SSL:
      1. בקטע SSL policy (מדיניות SSL), בוחרים באפשרות Create a policy (יצירת מדיניות).
      2. מזינים שם של my-ssl-policy.
      3. בקטע גרסת TLS מינימלית, בוחרים באפשרות TLS 1.0.
      4. בשדה פרופיל, בוחרים באפשרות מודרני. יוצגו תכונות מופעלות ותכונות מושבתות.
      5. לוחצים על Save.
    8. אופציונלי: מפעילים את האפשרות פרוטוקול שרת proxy.
    9. לוחצים על סיום.
  2. מוודאים שמופיע סימן וי ירוק ליד Frontend configuration במסוף Google Cloud . אם לא, בודקים שוב שהשלמתם את כל השלבים הקודמים.
  3. לוחצים על סיום.

בדיקה וסיום

  1. לוחצים על Review and finalize.
  2. בודקים את הגדרות התצורה של מאזן העומסים.
  3. אופציונלי: לוחצים על Equivalent code (קוד מקביל) כדי לראות את בקשת ה-API בארכיטקטורת REST שתשמש ליצירת מאזן העומסים.
  4. לוחצים על יצירה.

gcloud

  1. יצירת בדיקת תקינות.
       gcloud compute health-checks create ssl my-ssl-health-check --port=443
       
  2. יוצרים שירות לקצה העורפי.
       gcloud beta compute backend-services create my-ssl-lb \
           --load-balancing-scheme EXTERNAL_MANAGED \
           --global-health-checks \
           --protocol=SSL \
           --port-name=ssl-lb \
           --ip-address-selection-policy=PREFER_IPV6 \
           --health-checks=my-ssl-health-check \
           --timeout=5m \
           --global
       

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

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

       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=instance-group-a \
           --instance-group-zone=ZONE_A \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=instance-group-b \
           --instance-group-zone=ZONE_B \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
  4. מגדירים את משאב אישור ה-SSL.

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

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

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

       gcloud compute ssl-certificates create my-ssl-cert \
           --certificate=CRT_FILE_PATH \
           --private-key=KEY_FILE_PATH
       

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

       gcloud compute ssl-certificates create www-ssl-cert \
           --domains=DOMAIN_1,DOMAIN_2
       
  5. מגדירים שרת proxy של SSL ביעד.

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

    אם רוצים להפעיל את כותרת ה-proxy, צריך להגדיר אותה ל-PROXY_V1 במקום ל-none. אפשר גם לצרף מדיניות SSL לשרת ה-proxy של היעד. קודם יוצרים את המדיניות.

       gcloud compute ssl-policies create my-ssl-policy \
           --profile=MODERN \
           --min-tls-version=1.0
       

    לאחר מכן, מצרפים את המדיניות לשרת ה-proxy של היעד.

       gcloud beta compute target-ssl-proxies create my-ssl-lb-target-proxy \
           --backend-service=my-ssl-lb \
           --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \
           --ssl-policy=my-ssl-policy \
           --proxy-header=NONE
       
  6. שמיר�� כתובות IP סטטיות גלובליות.

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

       gcloud compute addresses create ssl-lb-static-ipv4 \
           --ip-version=IPV4 \
           --global
       
       gcloud compute addresses create ssl-lb-static-ipv6 \
           --ip-version=IPV6 \
           --global
       
  7. הגדרת כללי העברה גלובליים.

    יוצרים כללי העברה גלובליים שמשויכים לשרת ה-Proxy של היעד. מחליפים את LB_STATIC_IP ואת LB_STATIC_IPV6 בכתובות ה-IP שיצרתם בשלב שמירת כתובות IP סטטיות גלובליות.

       gcloud beta compute forwarding-rules create my-ssl-lb-forwarding-rule \
           --load-balancing-scheme EXTERNAL_MANAGED \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IP \
           --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, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.

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

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

https://IP_ADDRESS

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

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

מחליפים את IP_ADDRESS בכתובת IPv4 או IPv6 שיצרתם קודם.

curl -k https://IP_ADDRESS

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

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

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

פרוטוקול PROXY לשמירת פרטי החיבור של הלקוח

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

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

מוודאים שהשרתים העורפיים (backend instance) של מאזן העומסים של ה-proxy פועלים בשרתים שתומכים בכותרות של פרוטוקול PROXY. אם השרתים לא מוגדרים לתמוך בכותרות של פרוטוקול PROXY, המופעים בעורף העורף מחזירים תגובות ריקות.

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

כותרת פרוטוקול ה-PROXY היא בדרך כלל שורה אחת של טקסט שקריא למשתמשים בפורמט הבא:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

בדוגמה הבאה מוצג פרוטוקול PROXY:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

בדוגמה שלמעלה, כתובת ה-IP של הלקוח היא 192.0.2.1, כתובת ה-IP של איזון העומסים היא 198.51.100.1, יציאת הלקוח היא 15221 ויציאת היעד היא 110.

כשכתובת ה-IP של הלקוח לא ידועה, מאזן העומסים יוצר כותרת של פרוטוקול PROXY בפורמט הבא:

PROXY UNKNOWN\r\n

עדכון כותרת פרוטוקול ה-PROXY עבור שרת ה-proxy של היעד

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

המסוף

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

    כניסה לדף Load balancing

  2. לוחצים על Edit (עריכה) עבור מאזן העומסים.
  3. לוחצים על Frontend configuration.
  4. משנים את הערך של השדה Proxy protocol (פרוטוקול שרת Proxy) ל-On (מופעל).
  5. לוחצים על עדכון כדי לשמור את השינויים.

gcloud

בפקודה הבאה, עורכים את השדה --proxy-header ומגדירים אותו לערך NONE או PROXY_V1 בהתאם לדרישות.

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

הגדרת זיקה לסשן

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

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

המסוף

כדי להפעיל זיקה לסשן לפי כתובת IP של לקוח:

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

    כניסה לדף Load balancing

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

  3. לוחצים על my-ssl-lb (השם של שירות לקצה העורפי שיצרתם בדוגמה הזו) ואז על עריכה.

  4. בדף Backend service details (פרטי שירות לקצה העורפי), לוחצים על Advanced configuration (הגדרה מתקדמת).

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

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

gcloud

משתמשים בפקודה הבאה כדי לעדכן את שירות הקצה העורפי my-ssl-lb ולציין את זיקת הסשן של כתובת ה-IP של הלקוח:

gcloud compute backend-services update my-ssl-lb \
    --global \
    --session-affinity=CLIENT_IP

API

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

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-ssl-lb
{
  "sessionAffinity": "CLIENT_IP"
}

הפעלת ניתוק הדרגתי של חיבורים

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

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