התאמה אוטומטית גלובלית לעומס של שירות אינטרנט ב-Compute Engine

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

מטרות

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

עלויות

במדריך הזה נעשה שימוש ברכיבים של Google Cloud שכרוך בתשלום, כולל:

  • Compute Engine

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

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

ארכיטקטורה של אפליקציות

האפליקציה כוללת את הרכיבים הבאים של Compute Engine:

  1. תבנית של הגדרות מכונה: תבנית שמשמשת ליצירת כל מכונה בקבוצות המכונות.
  2. קבוצות של מכונות: כמה קבוצות של מכונות שמתאימות את עצמן לעומס באופן אוטומטי על סמך תעבורת הנתונים הנכנסת.
  3. מאזן עומסים: מאזן עומסים מסוג HTTP שמפיץ את התנועה בין קבוצות המופעים.
  4. מופעים: כמה מופעים של בדיקות כדי ליצור טראפיק לבדיקה מחלקים שונים בעולם.

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

הגדרת שירות האינטרנט

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

המסוף

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

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

      מעבר לרשתות VPC

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

    3. מגדירים את Name לערך fortressnet.

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

    5. לוחצים על יצירה בתחתית הדף.

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

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

      מעבר לכללי חומת אש

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

    3. מגדירים את Name לערך fortressnet-allow-http.

    4. בשדה רשת, בוחרים באפשרות fortressnet.

    5. בקטע יעדים בוחרים באפשרות All instances in the network.

    6. מגדירים את Source IPv4 ranges לערך 0.0.0.0/0.

    7. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו), מסמנים את תיבת הסימון tcp ומזינים 80.

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

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

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

      כניסה לדף Instance templates

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

    3. מגדירים את Name לערך fort-template.

    4. ב-Machine configuration, בוחרים באפשרות e2-micro (2 vCPU, 1 GB memory).

    5. בקטע אפשרויות מתקדמות, מרחיבים את Networking (רשת) ומבצעים את הפעולות הבאות:

      1. בקטע Network interfaces (ממשקי רשת), מרחיבים את ממשק הרשת כדי לערוך אותו.
      2. בקטע רשת, בוחרים באפשרות fortressnet.
    6. בקטע Management, בשדה Automation, מזינים את סקריפט לטעינה בזמן ההפעלה הבא:

      apt update && apt -y install apache2
      

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

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

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

      כניסה לדף Instance groups

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

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

    4. מגדירים את Name לערך us-central1-pool.

    5. בשדה תבנית של הגדרות מכונה, בוחרים באפשרות fort-template.

    6. בשדה מיקום, בוחרים באפשרות אזורים מרובים.

    7. בשדה אזור, בוחרים באפשרות us-central1. בשדה אזורים, משאירים את הערכים המוגדרים מראש.

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

    9. מגדירים את מספר המופעים המינימלי ל-1.

    10. מגדירים את מספר המופעים המקסימלי ל-5.

    11. בקטע אותות התאמה אוטומטית לעומס, עורכים את ברירת המחדל (CPU utilization) ומגדירים את סוג האות ל-ניצול איזון עומסי HTTP.

    12. מגדירים את היעד לניצול איזון העומסים ב-HTTP לערך 80.

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

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

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

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

      • יוצרים קבוצה עם שם בתור europe-west1-pool ואזור בתור europe-west1.
      • יוצרים קבוצה עם שם בתור asia-east1-pool ואזור בתור asia-east1.
  5. (אופציונלי) מוודאים שהמופעים תקינים ומשרתים תעבורת HTTP. בודקים את כתובת ה-IP החיצונית של מכונה אחת או יותר. יכול להיות שתצטרכו להמתין דקה עד שתהליך ההפעלה של המכונות יסתיים.

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

      כניסה לדף VM instances

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

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

    אמור להופיע דף האינטרנט 'Apache2 Debian Default Page'.

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

gcloud

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

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. יוצרים כלל לחומת האש של הרשת. הכלל הזה יאפשר את כל בקשות ה-HTTP שנשלחות למופעים שלכם.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. יוצרים תבנית של הגדרות מכונה. כוללים סקריפט לטעינה בזמן ההפעלה שמפעיל שרת אינטרנט פשוט של Apache בכל מופע.

    gcloud compute instance-templates create fort-template \
        --machine-type e2-micro \
        --network fortressnet \
        --metadata startup-script='apt update && apt -y install apache2'
    
  4. יוצרים כמה קבוצות אזוריות של מופעי מכונה מנוהלים באמצעות תבנית של הגדרות מכונה. מגדירים התאמה אוטומטית לעומס לכל קבוצת מופעים.

    gcloud compute instance-groups managed create us-central1-pool \
        --region us-central1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling us-central1-pool \
        --region us-central1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create europe-west1-pool \
        --region europe-west1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling europe-west1-pool \
        --region europe-west1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create asia-east1-pool \
        --region asia-east1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling asia-east1-pool \
        --region asia-east1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
  5. (אופציונלי) מוודאים שהמופעים תקינים ומשרתים תעבורת HTTP. בודקים את כתובת ה-IP החיצונית של מכונה אחת או יותר. יכול להיות שתצטרכו להמתין דקה עד שתהליך ההפעלה של המכונות יסתיים.

    1. מציגים רשימה של המופעים.

      gcloud compute instances list
      

    2. בעמודה STATUS, מוודאים שהמכונות הן RUNNING.

    3. כדי לבדוק מופע, שולחים שאילתה לכתובת ה-IP שלו בעמודה EXTERNAL_IP.

      curl http://EXTERNAL_IP | head
      

    אמור להופיע טקסט HTML, כולל השורה <title>Apache2 Debian Default Page: It works</title>.

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

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

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

המסוף

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

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

הגדרה בסיסית

  1. מגדירים את שם מאזן העומסים כ-fortressnet-balancer.

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

  1. בדף Create global external Application Load Balancer, לוחצים על Backend configuration.
  2. בתפריט הנפתח Create or select backend services & backend buckets בוחרים באפשרות שירותי קצה עורפי ואז באפשרות יצירת שירות קצה עורפי. תיבת הדו-שיח Create Backend Service (יצירת שירות קצה עורפי) תוצג.
  3. מגדירים את Name של שירות לקצה העורפי לערך fortressnet-backend-service.
  4. בתיבת הדו-שיח New backend, מגדירים את Instance group לערך asia-east1-pool.
  5. בקטע מצב איזון, בוחרים באפשרות קצב.
  6. מגדירים את הבקשות המקסימליות לשנייה ל-100 בקשות לשנייה לכל מופע.
  7. לוחצים על סיום.
  8. לוחצים על הוספת קצה עורפי.
  9. בתיבת הדו-שיח New backend, מגדירים את Instance group לערך europe-west1-pool.
  10. בקטע מצב איזון, בוחרים באפשרות קצב.
  11. מגדירים את הבקשות המקסימליות לשנייה ל-100 בקשות לשנייה לכל מופע.
  12. לוחצים על סיום.
  13. לוחצים על הוספת קצה עורפי.
  14. בתיבת הדו-שיח New backend, מגדירים את Instance group לערך us-central1-pool.
  15. בקטע מצב איזון, בוחרים באפשרות קצב.
  16. מגדירים את הבקשות המקסימליות לשנייה ל-100 בקשות לשנייה לכל מופע.
  17. לוחצים על סיום.
  18. בקטע בדיקת תקינות, בוחרים באפשרות יצירת בדיקת תקינות.
  19. מגדירים את Name לערך http-basic-check.
  20. בשדה פרוטוקול, בוחרים באפשרות HTTP.
  21. מגדירים את Port לערך 80.
  22. לוחצים על שמירה והמשך.
  23. לוחצים על יצירה.

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

  1. בחלונית הימנית של הדף Create global external Application Load Balancer (יצירת איזון עומסים חיצוני גלובלי של אפליקציות), לוחצים על Host and path rules (כללים לגבי מארח ונתיב).
    בדוגמה הזו, אין צורך להגדיר כללי מארח או נתיב, כי כל התנועה תעבור לכלל ברירת המחדל. לכן, אפשר להשתמש בערכי ברירת המחדל שאוכלסו מראש.

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

  1. בחלונית הימנית של הדף Create global external Application Load Balancer (יצירת מאזן עומסים חיצוני גלובלי לאפליקציות), לוחצים על Frontend configuration (הגדרת חזית האתר).
  2. מגדירים את Name לערך fortressnet-http-rule.
  3. בשדה IP version, בוחרים באפשרות IPv4.
  4. בשביל IP address, בוחרים באפשרות Create IP address.
  5. בתיבת הדו-שיח Reserve a new static IP, מגדירים את Name ל-fortressnet-ip.
  6. לוחצים על הזמנה ומחכים כמה רגעים.
  7. בתחתית תיבת הדו-שיח New Frontend IP and port לוחצים על Done.
  8. לוחצים על Add frontend IP and port.
  9. מגדירים את Name לערך fortressnet-http-ipv6-rule.
  10. בשדה IP version בוחרים באפשרות IPv6.
  11. בשביל IP address, בוחרים באפשרות Create IP address.
  12. בתיבת הדו-שיח, מגדירים את השם ל-fortressnet-ipv6.
  13. לוחצים על הזמנה ומחכים כמה רגעים.
  14. בתחתית תיבת הדו-שיח New Frontend IP and port לוחצים על Done.

בדיקה וסיום

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

gcloud

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

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

    gcloud compute health-checks create http http-basic-check
    
  2. יוצרים שירות לקצה עורפי גלובלי. שירות הקצה העורפי הזה יקבל תנועת HTTP ממאזן העומסים.

    gcloud compute backend-services create fortressnet-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    
  3. מוסיפים את קבוצות המכונות כקצה עורפי אזורי של השירות לקצה העורפי. ההגדרה הזו תפיץ את התנועה בין השרתים העורפיים על סמך מספר מקסימלי של בקשות לשנייה (RPS) לכל מופע.

    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group us-central1-pool \
        --instance-group-region us-central1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group europe-west1-pool \
        --instance-group-region europe-west1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group asia-east1-pool \
        --instance-group-region asia-east1 \
        --global
    

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

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

    gcloud compute url-maps create fortressnet-balancer \
        --default-service fortressnet-backend-service
    
  2. יוצרים נתיב ל-HTTP proxy. פרוקסי HTTP מקבל בקשות HTTP ומנתב אותן בהתאם למפת ה-URL. במקרה כזה, כל הבקשות יישלחו לשירות הקצה העורפי היחיד שלכם.

    gcloud compute target-http-proxies create fortressnet-http-proxy \
        --url-map fortressnet-balancer
    

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

  1. יוצרים שתי כתובות IP חיצוניות סטטיות גלובליות: אחת ל-IPv4 ואחת ל-IPv6. אלה יהיו כתובות ה-IP החיצוניות הגלובליות של מאזן העומסים.

    gcloud compute addresses create fortressnet-ip \
        --ip-version IPV4 \
        --network-tier=PREMIUM \
        --global
    gcloud compute addresses create fortressnet-ipv6 \
        --ip-version IPV6 \
        --network-tier=PREMIUM \
        --global
    
  2. מחפשים את כתובות ה-IP החיצוניות של מאזן העומסים.

    gcloud compute addresses list
    
  3. יוצרים כללי העברה גלובליים לכתובות ה-IP החיצוניות. הפעולה הזו תעביר בקשות HTTP מסוג IPv4 ו-IPv6 ל-HTTP proxy.

    gcloud compute forwarding-rules create fortressnet-http-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IP_ADDRESS
    
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IPV6_ADDRESS
    

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

המסוף

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

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

  2. מחכים עד שיופיע סימן וי ירוק fortressnet-balancer בעמודה Backends.

  3. לוחצים על fortressnet-balancer.

  4. בקטע Frontend מעתיקים את כתובת ה-IPv4 בעמודה IP:Port. (כתובות IPv4 הן בפורמט www.xxx.yyy.zzz. לא צריך את מספר היציאה :nn בסוף.) אם הקטע Frontend לא מופיע, כדאי לחכות כמה רגעים ואז לטעון מחדש את דף האינטרנט.

  5. מזינים את כתובת ה-IP בדפדפן אינטרנט.

אמור להופיע דף האינטרנט 'Apache2 Debian Default Page'.

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

gcloud

  1. מחפשים את כתובות ה-IP החיצוניות של מאזן העומסים.

    gcloud compute addresses list
    
  2. שולחים שאילתה לגבי כתובת ה-IPv4. (כתובות IPv4 הן בפורמט www.xxx.yyy.zzz.)

    curl http://LOAD_BALANCER_IP_ADDRESS | head
    

אמור להופיע טקסט HTML, כולל השורה <title>Apache2 Debian Default Page: It works</title>.

אם במקום זאת מופיע <title>Error 404 (Not Found)!!1</title>, כדאי להמתין עוד כמה דקות.

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

המסוף

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

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

      מעבר לכללי חומת אש

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

    3. מגדירים את Name לערך fortressnet-allow-load-balancer.

    4. בשדה רשת, בוחרים באפשרות fortressnet.

    5. בקטע יעדים בוחרים באפשרות All instances in the network.

    6. בשדה Source IP ranges (טווח כתובות IP של המקור), מקלידים 130.211.0.0/22 ומקישים על המקש Enter, ואז מקלידים 35.191.0.0/16 ומקישים שוב על Enter.

    7. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות tcp ומזינים 80.

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

  2. מוחקים את חומת האש הישנה שמאפשרת הכול.

    1. מסמנים את תיבת הסימון ליד fortressnet-allow-http.
    2. לוחצים על מחיקה בחלק העליון של הדף.
    3. בתיבת הדו-שיח, לוחצים על מחיקה.

gcloud

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

    gcloud compute firewall-rules create fortressnet-allow-load-balancer \
        --network fortressnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp:80
    
  2. מוחקים את חומת האש הישנה שמאפשרת הכול.

    gcloud compute firewall-rules delete fortressnet-allow-http -q
    

(אופציונלי) אימות של התאמה אוטומטית לעומס ואיזון עומסים

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

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

המסוף

  1. יוצרים מופע שבו מותקן כלי לבדיקת עומסים מסוג Siege.

    1. נכנסים לדף Create an instance במסוף Google Cloud .

      כניסה לדף Create an instance

    2. מגדירים את Name לערך europe-loadtest.

    3. בשדה אזור בוחרים באפשרות europe-west1.

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

      1. מרחיבים את הקטע ניהול.
      2. בשדה Automation, מזינים את סקריפט ההפעלה הבא:
        apt -y install siege
        
    5. כדי ליצור את המכונה הווירטואלית (VM), לוחצים על האפשרות Create.

  2. בודקים מהי כתובת ה-IPv4 של מאזן העומסים.

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

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

    2. לחץ על fortressnet-balancer.

    3. בקטע Frontend מעתיקים את כתובת ה-IPv4 בעמודה IP:Port. (כתובות IPv4 הן בפורמט www.xxx.yyy.zzz).

  3. מתחברים באמצעות SSH למופע של בדיקת העומס.

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

      כניסה לדף VM instances

    2. מחכים עד שיופיע סימן וי ירוק ליד המכונה europe-loadtest בעמודה Name (שם).

    3. לוחצים על SSH ב-europe-loadtest בעמודה Connect.

  4. מתחילים במצור. מגדירים טירגוט לכתובת ה-IPv4 של מאזן העומסים.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. יוצרים מופע שבו מותקן כלי לבדיקת עומסים מסוג Siege.

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt -y install siege'
    
  2. בודקים מהי כתובת ה-IPv4 של מאזן העומסים.

    gcloud compute addresses list
    
  3. פותחים סשן חדש של מעטפת שבו הפקודה gcloud זמינה.

    1. בסשן החדש של מעטפת הפקודות, מתחברים באמצעות SSH למופע של בדיקת העומס.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. מתחילים במצור. מגדירים טירגוט לכתובת ה-IPv4 של מאזן העומסים.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

אחרי הרצת הפקודה siege, אמור להופיע פלט שמצהיר על The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

מעקב אחרי איזון עומסים והתאמה לעומס (autoscaling)

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

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

  2. לוחצים על מאזן העומסים שנקרא fortressnet-balancer.

  3. לוחצים על הכרטיסייה Monitoring (מעקב).

  4. בתפריט הנפתח Backend, בוחרים באפשרות fortressnet-backend-service.

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

 תצוגת מעקב במסוףGoogle Cloud שמציגה בקשות מאירופה שמפוזרות באופן שווה בין כל שלושת השרתים העורפיים.

מה קורה כאן:

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

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

יצירת תנועת בדיקה במקום אחר

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

המסוף

  1. כדי ליצור עוד מופע שהותקן באמצעות כלי הבדיקה של עומס Siege, מבצעים את הפעולות הבאות:

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

      כניסה לדף VM instances

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

    3. מגדירים את Name לערך asia-loadtest.

    4. בשדה אזור בוחרים באפשרות asia-east1.

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

    6. מרחיבים את הקטע ניהול.

    7. בקטע Automation, מזינים את סקריפט לטעינה בזמן ההפעלה הבא:

      apt -y install siege
      

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

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

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

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

    2. לחץ על fortressnet-balancer.

    3. בקטע Frontend מעתיקים את כתובת ה-IPv4 שמופיעה בעמודה IP:Port. (כתובות IPv4 הן בפורמט www.xxx.yyy.zzz).

  3. מתחברים באמצעות SSH למופע של בדיקת העומס.

    1. מחכים עד שיופיע סימן וי ירוק ליד המכונה asia-loadtest בעמודה Name.
    2. לוחצים על SSH ב-asia-loadtest בעמודה Connect.
  4. מתחילים במצור. מגדירים טירגוט לכתובת ה-IPv4 של מאזן העומסים.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. בסשן המעטפת המקורי, יוצרים עוד מופע שמותקן בו כלי בדיקת העומס Siege.

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt -y install siege'
    
  2. בודקים מהי כתובת ה-IPv4 של מאזן העומסים.

    gcloud compute addresses list
    
  3. פותחים סשן חדש של מעטפת שבו הפקודה gcloud זמינה.

    1. בסשן החדש של מעטפת הפקודות, מתחברים באמצעות SSH למופע של בדיקת העומס.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. מתחילים במצור. מגדירים טירגוט לכתובת ה-IPv4 של מאזן העומסים.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

שוב, אמור להופיע פלט שמצהיר על The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

מעקב אחרי איזון עומסים והתאמה לעומס (autoscaling)

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

Google Cloud מסך מעקב במסוף שמציג בקשות מאירופה ומאסיה שמפוזרות בין כל שלושת השרתים העורפיים

מה קורה כאן:

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

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

הסרת המשאבים

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

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

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.

כדי למחוק את הפרויקט:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

מחיקת מכונות

כדי למחוק מכונה של Compute Engine:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

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