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

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

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

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

חשוב לוודא שההגדרה עומדת בדרישות המוקדמות הבאות.

התפקידים וההרשאות הנדרשים ב-IAM

כדי לפעול לפי המדריך הזה, אתם צריכים את תפקידי ה-IAM הבאים:

משימה תפקיד נדרש
יצירת פרויקט התפקיד 'יצירת פרויקטים' (roles/resourcemanager.projectCreator)
יצירת משאבי מחשוב התפקיד "אדמין של רשת Compute"‏ (roles/compute.networkAdmin)
יצירת קטגוריות של Cloud Storage התפקיד 'אדמין של אובייקטים באחסון' (roles/storage.objectAdmin)

שימוש במשאב מפרויקט אחר

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

בדוגמה הזו, אדמין של פרויקט ב' צריך להעניק לאדמין של פרויקט א' את התפקיד 'משתמש בשירותים של מאזן עומסים של Compute' (roles/compute.loadBalancerServiceUser), כדי לאפשר גישה לשירות לקצה העורפי ולקטגוריית קצה עורפי בפרויקט ב'. אפשר להקצות את התפקיד הזה ברמת הפרויקט או ברמת המשאב.

מידע נוסף על הקצאת התפקיד הזה זמין במאמר הקצאת הרשאות לאדמין של מאזן עומסים של Compute לשימוש בשירות ה-Backend.

יצירת Google Cloud פרויקטים

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

המסוף

כדי ליצור פרויקט חדש:

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

    כניסה לדף Manage Resources

    שאר השלבים יופיעו במסוף Google Cloud .

  2. לוחצים על יצירת פרויקט.
  3. בחלון New project שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב, לפי הצורך. שם הפרויקט יכול להכיל רק אותיות, מספרים, מירכאות בודדות, מקפים, רווחים או סימני קריאה, והאורך שלו צריך להיות בין 4 ל-30 תווים.
  4. מזינים את משאב תיקיית ההורה או הארגון בתיבה משאב הורה. המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. אם האפשרות No organization מופיעה, אתם יכולים לבחור בה כדי ליצור את הפרויקט החדש ברמה העליונה של היררכיית המשאבים שלו.
  5. כשמסיימים להזין את פרטי הפרויקט החדש, לוחצים על Create.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי ליצור פרויקט חדש, משתמשים בפקודה gcloud projects create:

    gcloud projects create PROJECT_ID
    

    כאשר PROJECT_ID הוא המזהה של הפרויקט שרוצים ליצור. מזהה הפרויקט צריך להתחיל באות קטנה באנגלית, והוא יכול לכלול רק אותיות ASCII, ספרות ומקפים. האורך שלו צריך להיות בין 6 ל-30 תווים.

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

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

בהגדרה הזו, מיפוי כתובות ה-URL מעביר בקשות לתוכן סטטי (/images/*) לדלי בקצה העורפי, בעוד שכל הבקשות האחרות מועברות לשירות ברירת המחדל בקצה העורפי.

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

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

משאבים שנוצרו בפרויקט א' משאבים שנוצרו בפרויקט ב'
  • כתובת IP
  • אישור SSL
  • מפת URL
  • שרת proxy לחלוקת העומס
  • כלל העברה
  • רשת VPC
  • תת-רשת
  • שירות לקצה העורפי

    שירות הקצה העורפי מפנה למכונות הקצה העורפי בקבוצת מכונות. המשאבים הבאים משמשים ליצירת מופעי ה-Backend. לצורך הדוגמה הזו, המכונות העורפיות נוצרות ברשת משנה בשם lb-backend-subnet באזור us-west1.

    • תבנית של הגדרות מכונה
    • קבוצת מופעים
    • בדיקת תקינות
    • כלל חומת אש
  • קטגוריית קצה עורפי
    • קטגוריית הקצה העורפי מפנה לקטגוריה של Cloud Storage.

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

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

לצורך הדוגמה הזו, המכונות הווירטואליות של ה-Backend נוצרות ברשת ובתת-הרשת הבאות:

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

  • רשת משנה למכונות הווירטואליות של מאזן העומסים בקצה העורפי רשת משנה בשם lb-backend-subnet באזור us-west1 משתמשת ב-10.1.2.0/24 לטווח ה-IP הראשי שלה. טווח כתובות ה-IPv4 הראשי והמשני של תת-רשת הם כתובות IPv4 פנימיות אזוריות. מידע נוסף זמין במאמר בנושא טווחים תקינים של כתובות IPv4.

המסוף

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

    מעבר לרשתות VPC

  2. לוחצים על Create VPC network.

  3. בשדה Name, מזינים lb-network.

  4. בקטע רשתות משנה, מגדירים את מצב יצירת רשתות משנה לבהתאמה אישית.

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

    • שם: lb-backend-subnet
    • בוחרים אזור: us-west1
    • טווח כתובות IP: 10.1.2.0/24
  6. לוחצים על סיום.

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

gcloud

  1. יוצרים רשת VPC מותאמת אישית בשם lb-network באמצעות הפקודה gcloud compute networks create.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=PROJECT_B_ID
    
  2. יוצרים רשת משנה ברשת ה-VPC של lb-network באזור us-west1 באמצעות הפקודה gcloud compute networks subnets create.

    gcloud compute networks subnets create lb-backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-west1 \
        --project=PROJECT_B_ID
    

הגדרת שירות קצה עורפי בפרויקט ב'

כדי להגדיר שירות לקצה העורפי:

  1. יוצרים תבנית של הגדרות מכונה.
  2. יוצרים קבוצת מכונות.
  3. יצירת בדיקת תקינות.
  4. יוצרים כלל לחומת האש.
  5. יוצרים שירות לקצה העורפי.

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

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף תבניות של הגדרות מכונה של Compute Engine.

    כניסה לדף Instance templates

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

  3. בשדה Name, מזינים backend-template.

  4. בקטע Boot disk מוודאים שדיסק האתחול מוגדר לתמונת Debian, כמו Debian GNU/Linux 12 (bookworm)‎. אם רוצים לשנות את התמונה, לוחצים על שינוי.

  5. מרחיבים את הקטע אפשרויות מתקדמות.

  6. מרחיבים את האפשרות Networking ומגדירים את השדות הבאים:

    1. בשדה Network tags (תגי רשת), מזינים load-balanced-backend.
    2. בקטע Network interfaces, מגדירים את השדות הבאים:
      • רשת: lb-network
      • רשת משנה: lb-backend-subnet
      • IP stack type: ‏IPv4
    3. לוחצים על סיום
  7. מרחיבים את האפשרות Management. בשדה סקריפט לטעינה בזמן ההפעלה, מזינים את הסקריפט הבא:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    # Retrieve the instance name from metadata
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    # Create an index file
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    # Restart Apache to apply changes
    systemctl restart apache2' \
    
  8. לוחצים על יצירה.

gcloud

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

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --region=us-west1 \
        --network=projects/PROJECT_B_ID/global/networks/lb-network \
        --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        # Retrieve the instance name from metadata
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        # Create an index file
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        # Restart Apache to apply changes
        systemctl restart apache2' \
        --project=PROJECT_B_ID
    

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

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על Create Instance Group (יצירת קבוצת מופעים).

  3. מבין האפשרויות, בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)).

  4. בשם של קבוצת המכונות, מזינים lb-backend.

  5. ברשימה Instance template, בוחרים את תבנית של הגדרות מכונה backend-template שיצרתם בשלב הקודם.

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

    • בשדה Region בוחרים את us-west1.

    • בשדה Zone, בוחרים באפשרות us-west1-a.

  7. בקטע Autoscaling (שינוי גודל אוטומטי), מזינים את הערכים הבאים:

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

    • בקטע מספר מינימלי של מופעים, בוחרים באפשרות 2.

    • בקטע מספר מופעים מקסימלי, בוחרים באפשרות 3.

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

    • בשדה שם הניוד, מזינים http.

    • בשדה מספר יציאה, מזינים 80.

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

gcloud

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

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --zone=us-west1-a \
        --size=2 \
        --template=INSTANCE_TEMPLATE_NAME \
        --project=PROJECT_B_ID
    
  2. מוסיפים יציאה עם שם לקבוצת המכונות:

    gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=PROJECT_B_ID
    

יצירת בדיקת תקינות

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Health checks של Compute Engine.

    מעבר אל Health checks

  2. בשדה של שם בדיקת תקינות, מזינים lb-health-check.

  3. מגדירים את הפרוטוקול ל-HTTP.

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

gcloud

יצירת בדיקת תקינות של HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=PROJECT_B_ID

יצירת כלל לחומת האש

לגבי בדיקות התקינות, צריך ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) ברמת הרשת, שבמקרה הזה היא lb-network. כלל חומת האש הזה מאפשר לבקשות לבדיקת תקינות להגיע לשרתים העורפיים. בדוגמה הזו השתמשנו בכלל חומת האש הבא:

  • fw-allow-health-check. כלל תעבורת נתונים נכנסת (ingress) שחל על המכונות שמאזנות את העומסים, ומאפשר את כל תעבורת הנתונים של TCP מGoogle Cloudמערכות בדיקת התקינות. בדוגמה הזו נעשה שימוש בתג היעד load-balanced-backend כדי לזהות את המקרים שבהם צריך להחיל את התג.

המסוף

  1. במסוף Google Cloud , עוברים לדף מדיניות חומת אש.

    מעבר למדיניות של חומת האש

  2. לוחצים על Create firewall rule כדי ליצור את הכלל שמאפשר חיבורי SSH נכנסים במכונה הווירטואלית של הלקוח:

    • שם: fw-allow-health-check
    • רשת: lb-network
    • כיוון תעבורת הנתונים: תעבורת נתונים נכנסת (ingress)
    • פעולה במקרה של התאמה: אישור
    • יעדים: תגי יעד שצוינו
    • תגי טירגוט: load-balanced-backend
    • מסנן מקור: טווחים של כתובות IPv4
    • טווח כתובות IPv4 של המקור: 35.191.0.0/16
    • פרוטוקולים ויציאות:
      • בוחרים באפשרות Specified protocols and ports.
      • מסמנים את התיבה TCP ומזינים את מספר היציאה 80. מומלץ להגביל את הכלל הזה רק לפרוטוקולים ולפורטים שתואמים לאלה שמשמשים בבדיקת תקינות. אם משתמשים ב-tcp:80 לפרוטוקול וליציאה, Google Cloud אפשר להשתמש ב-HTTP ביציאה 80 כדי ליצור קשר עם המכונות הווירטואליות, אבל אי אפשר להשתמש ב-HTTPS ביציאה 443 כדי ליצור איתן קשר.
  3. לוחצים על יצירה.

gcloud

  1. יוצרים את כלל חומת האש fw-allow-health-check כדי לאפשרGoogle Cloud בדיקות תקינות. בדוגמה הזו, כל תעבורת הנתונים ב-TCP מותרת מבדיקות תקינות. עם זאת, אפשר להגדיר קבוצה מצומצמת יותר של יציאות בהתאם לצרכים שלכם.

    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=35.191.0.0/16 \
       --target-tags=load-balanced-backend \
       --rules=tcp \
       --project=PROJECT_B_ID
    

יצירת שירות לקצה העורפי

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

המסוף

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

    כניסה לדף Load balancing

  2. עוברים לקטע Backends.

  3. לוחצים על Create backend service.

  4. לוחצים על הכפתור Create לצד Global backend service.

  5. בשדה 'שם שירות הקצה העורפי', מזינים cross-ref-backend-service.

  6. בקטע Backend type, בוחרים באפשרות Instance group.

  7. מגדירים את Protocol (פרוטוקול) ל-HTTP.

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

  9. כדי להוסיף רכיבי קצה עורפי לשירות לקצה העורפי:

    1. בקטע Backends, מגדירים את Instance group לערך lb-backend, שהיא קבוצת מופעי מכונה מנוהלים שיצרתם בשלב קודם.

    2. בשדה מספרי יציאה, מזינים 80.

    3. כדי להוסיף את ה-Backend, לוחצים על סיום.

  10. כדי להוסיף בדיקת תקינות, ברשימה Health check בוחרים את lb-health-check, שהיא בדיקת התקינות שיצרתם קודם.

  11. כדי ליצור את שירות הקצה העורפי, לוחצים על Create.

gcloud

  1. יוצרים שירות גלובלי לקצה העורפי כדי להפיץ את התנועה בין הקצוות העורפיים:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=HEALTH_CHECK_NAME \
        --global \
        --project=PROJECT_B_ID
    
  2. מוסיפים את קבוצת המכונות בתור הקצה העורפי לשירות הקצה העורפי:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --instance-group=INSTANCE_GROUP_NAME \
        --instance-group-zone=us-west1-a \
        --global \
        --project=PROJECT_B_ID
    

הגדרת קטגוריית קצה עורפי בפרויקט ב'

כדי ליצור קטגוריית קצה עורפי, צריך לבצע את הפעולות הבאות:

  1. יוצרים את הקטגוריה של Cloud Storage.
  2. מעתיקים תוכן לקטגוריה.
  3. הגדרת הקטגוריה כנגישה באופן ציבורי.
  4. יוצרים קטגוריית קצה עורפי ומפנים אותה לקטגוריה של Cloud Storage.

יצירת קטגוריה של Cloud Storage

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

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

  3. בתיבה Name your bucket, מזינים שם ייחודי באופן גלובלי שעומד בהנחיות למתן שמות.

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

  5. מגדירים את סוג המיקום לאזור.

  6. ברשימת האזורים, בוחרים באפשרות us-east1.

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

gcloud

  1. יוצרים קטגוריה באזור us-east1 באמצעות הפקודה gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=PROJECT_B_ID
    

מחליפים את המשתנה BUCKET_NAME בשם הקטגוריה שלכם ב-Cloud Storage.

העתקת קובץ גרפי לקטגוריה של Cloud Storage

מריצים את הפקודה הבאה ב-Cloud Shell, ומחליפים את משתני השם של הקטגוריה בשם הייחודי של הקטגוריה שלכם ב-Cloud Storage, כדי להעתיק את הקובץ הגרפי מקטגוריה ציבורית של Cloud Storage לתיקייה images/ בקטגוריה שלכם ב-Cloud Storage:

gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/

הפיכת קטגוריה של Cloud Storage לקריאה באופן ציבורי

כדי להגדיר את כל האובייקטים בקטגוריה כקריאים לכולם באינטרנט הציבורי, צריך לתת לחשבון המשתמש allUsers את התפקיד "צפייה באובייקט אחסון" (roles/storage.objectViewer).

המסוף

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

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שרוצים להגדיר כציבורית.

  3. לוחצים על הכרטיסייה Permissions בחלק העליון של הדף.

  4. בקטע Permissions, לוחצים על Grant access. מופיעה תיבת הדו-שיח Grant access.

  5. בשדה New principals, מזינים allUsers.

  6. בשדה Select a role, מזינים Storage Object Viewer בתיבת הסינון ובוחרים באפשרות Storage Object Viewer מהתוצאות המסוננות.

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

  8. לוחצים על Allow public access.

gcloud

כדי להעניק לכל המשתמשים גישה לצפייה באובייקטים בקטגוריות, מריצים את הפקודה buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer

מחליפים את משתני שמות הקטגוריות בשמות הייחודיים של הקטגוריות שלכם ב-Cloud Storage.

יצירת קטגוריית קצה עורפי

קטגוריות בקצה העורפי משמשות כעטיפה לקטגוריות של Cloud Storage שיצרתם קודם. הם מכוונים תנועה נכנסת לקטגוריות של Cloud Storage.

המסוף

  1. במסוף Google Cloud , עוברים לדף איזון עומסים.

    כניסה לדף Load balancing

  2. עוברים לקטע Backends.

  3. לוחצים על Create backend bucket.

  4. מזינים שם לקטגוריית ה-backend.

  5. בוחרים קטגוריה של Cloud Storage שאליה תפנו את קטגוריית הקצה העורפי.

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

gcloud

יוצרים קטגוריית קצה עורפי באמצעות הפקודה gcloud compute backend-buckets create בפרויקט ב'.

gcloud compute backend-buckets create BACKEND_BUCKET_NAME \
  --gcs-bucket-name=BUCKET_NAME \
  --project=PROJECT_B_ID

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

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

  • כתובת IP
  • אישור SSL
  • מפת URL
  • שרת proxy לחלוקת העומס
  • כלל העברה

שמירת כתובת ה-IP של מאזן העומסים

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

המסוף

  1. במסוף Google Cloud , עוברים לדף כתובות IP.

    לדף IP addresses

  2. לוחצים על הזמנה חיצונית.

  3. בדף Reserve external static IP address, בשדה Name מזינים את הערך cross-ref-ip-address.

  4. מגדירים את Network Service Tier ל-Premium.

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

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

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

gcloud

יוצרים כתובת IP חיצונית סטטית גלובלית.

gcloud compute addresses create IP_ADDRESS_NAME \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=PROJECT_A_ID

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

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

מפת אישורים

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

אישור SSL של Compute Engine

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

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

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

המסוף

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

  1. במסוף Google Cloud , עוברים לדף איזון עומסים.

    כניסה לדף Load balancing

  2. לוחצים על יצירת מאזן עומסים.
  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 (יצירת מאזן עומסים), בוחרים באפשרות Global external Application Load Balancer (מאזן עומסים גלובלי חיצוני של אפליקציות) ולוחצים על Next (הבא).
  7. לוחצים על Configure (הגדרה).

הגדרה בסיסית

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

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

ל-HTTP:

  1. לוחצים על Frontend configuration.
  2. מזינים שם לכלל ההעברה.
  3. מגדירים את Protocol ל-HTTP.
  4. בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
  5. מגדירים את Port ל-80.
  6. לוחצים על סיום.

ל-HTTPS:

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

  1. לוחצים על Frontend configuration.
  2. מזינים שם לכלל ההעברה.
  3. בשדה Protocol, בוחרים באפשרות HTTPS (includes HTTP/2).
  4. בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
  5. מוודאים שהיציאה מוגדרת ל-443 כדי לאפשר תנועת HTTPS.
  6. בשדה Choose certificate repository, בוחרים באפשרות Use certificate map או באפשרות Use classic certificates.
  7. בהתאם לבחירה, בוחרים מפת אישורים או אישור קלאסי.
  8. לוחצים על סיום.

הגדרת הקצה העורפי

  1. לוחצים על Backend configuration.
  2. לוחצים על שירותי קצה עורפי בין פרויקטים.
  3. בשדה מזהה פרויקט, מזינים את מזהה הפרויקט של פרויקט ב'.
  4. ברשימה Select backend services (בחירת שירותי קצה עורפי), בוחרים את שירות הקצה העורפי מפרויקט ב' שרוצים להשתמש בו.
  5. לוחצים על OK.

הגדרת כללי הניתוב

  1. לוחצים על כללי ניתוב.

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

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

  4. בשדה מארחים, מזינים * כדי להתאים לכל שמות המארחים.

  5. בקטע Path matcher, מזינים את הגדרת ה-YAML הבאה.

    defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME
    name: PATH_MATCHER_NAME
    pathRules:
    - paths:
      - /images/*
      service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    

    במקרה הזה, התאמת הנתיב מורכבת מכלל נתיב ומשרות ברירת מחדל. כלל הנתיב מעביר את כל הבקשות אל /images/* לקטגוריית קצה עורפי. כל הבקשות האחרות מנותבות לשירות לקצה העורפי של ברירת המחדל.

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

למידע נוסף על ניהול תנועה, קראו את הסקירה הכללית על ניהול תנועה.

בדיקה וסיום של ההגדרה

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

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

gcloud

כדי ליצור את רכיבי איזון העומסים שצוינו למעלה באמצעות ה-CLI של gcloud:

  1. יוצרים מפת URL באמצעות הפקודה gcloud compute url-maps create.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \
      --global \
      --project=PROJECT_A_ID
    
  2. מוסיפים התאמת נתיב למפת URL. בדוגמה הזו, התאמת הנתיב מורכבת מכלל נתיב ומשירות ברירת מחדל. כלל הנתיב מפנה את כל הבקשות ל-/images/* לקטגוריית קצה עורפי. כל הבקשות האחרות מנותבות לשירות לקצה העורפי שמוגדר כברירת מחדל.

    gcloud compute url-maps add-path-matcher URL_MAP_NAME \
      --path-matcher-name=PATH_MATCHER_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME  \
      --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    
  3. יוצרים שרת proxy לחלוקת העומס באמצעות הפקודה gcloud compute target-http-proxies create.

    לתעבורת נתונים מסוג HTTP, יוצרים Proxy ל-HTTP כדי להפנות בקשות למפת URL:

    gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --global \
      --project=PROJECT_A_ID
    

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

    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE_NAME \
      --global \
      --project=PROJECT_A_ID
    

    מחליפים את CERTIFICATE_NAME בשם של אישור ה-SSL.

  4. יוצרים כלל העברה גלובלי באמצעות הפקודה gcloud compute forwarding-rules create.

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

    gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-http-proxy=TARGET_HTTP_PROXY_NAME \
      --ports=80 \
      --project=PROJECT_A_ID
    

    לתעבורת HTTPS, יוצרים את כללי ההעברה הגלובליים כדי לנתב בקשות נכנסות לשרת proxy לחלוקת העומס של HTTPS:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
      --ports=443 \
      --project=PROJECT_A_ID
    

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

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

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

gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \
    --global

אם תפנו את הדפדפן לכתובת http://IP_ADDRESS, הבקשה תנותב לשירות לקצה העורפי, שיחזיר דף עם מידע מינימלי על שרת עורפי.

אבל אם תפנו את הדפדפן לכתובת http://IP_ADDRESS/images/three-cats.jpg, הבקשה ל-/images/* תנותב לקטגוריית קצה עורפי, שתחזיר את קובץ הגרפיקה.

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