הגדרת AWS ALB/NLB לאיזון עומסים שנעשתה נכון

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

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הגדרת AWS ALB/NLB לאיזון עומסים שנעשתה נכון

במהלך הגירה ל-AWS, מהנדסים נתקלים לא פעם בדילמה: איזה מאזן עומסים לבחור? בחירה שגויה מובילה לכאבי ראש בסביבת הייצור. הגדרנו איזון עומסים לעשרות פרויקטים, החל מסטארטאפים עם מופע בודד ועד סביבות ארגוניות עם מאות מיקרוסרביסים. מאמר זה מכסה תיעוד AWS אמיתי על Application Load Balancer (ALB) ותצורות מדריך רשמי ל-Network Load Balancer (NLB) הפועלות בייצור. ALB (שכבה 7) מבין HTTP/HTTPS ויכול לנתב לפי נתיב, שם מארח, כותרות ופרמטרי שאילתה. NLB (שכבה 4) עובד עם TCP/UDP, שומר על כתובת ה-IP של המקור, מספק כתובות IP סטטיות וזמן השהיה נמוך וצפוי. שימוש ב-NLB במקום שבו נדרש ALB פירושו אובדן פונקציונליות; שימוש ב-ALB עבור פרוטוקולי TCP שבהם נדרש שימור כתובת IP של המקור פירושו ארכיטקטורה פגומה.

איך לבחור בין ALB ל-NLB?

הבחירה תלויה בפרוטוקול ובדרישות. אם האפליקציה שלך רצה על HTTP/HTTPS, השתמש ב-ALB לניתוב מתקדם, שכתוב נתיבים, קבוצות יעד משוקללות ו-WAF מובנה. אם אתה צריך זמן השהיה נמוך, תמיכה ב-UDP, שימור כתובת IP של המקור או כתובות IP סטטיות, בחר ב-NLB. בהשוואת ביצועים, NLB מספק עד פי 10 זמן השהיה נמוך יותר עבור תעבורת TCP בהשוואה ל-ALB, מה שהופך אותו לאידיאלי עבור אפליקציות בזמן אמת. NLB משמש גם כבסיס ל-PrivateLink, החיוני לתקשורת בין רשתות. לפעמים שילוב עובד: NLB מול ALB כדי לספק כתובת IP סטטית ולשמר את כתובת ה-IP של המקור כשצריך.

ALB: הגדרת מאזינים וכללים

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

תצורת כללים אופיינית למיקרוסרביסים:

עדיפות תנאי פעולה
1 נתיב /api/v2/* + כותרת X-Version: 2 העברה → tg-api-v2
10 נתיב /api/* העברה → tg-api-v1
20 נתיב /auth/* העברה → tg-auth-service
30 מארח admin.example.com העברה → tg-admin
ברירת מחדל — העברה → tg-frontend

קבוצות יעד משוקללות בכלל יחיד מאפשרות פריסה הדרגתית (canary) מובנית. כלל: העברה 90% → tg-v1, 10% → tg-v2. כוונן משקלים ללא שינויי DNS או קוד. עבור כחול/ירוק: 100/0 → פרוס גרסה חדשה ל-tg-v2 → בדוק → החלף ל-0/100 → הסר את tg-v1.

למה בדיקות בריאות חשובות?

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

Protocol: HTTP
Path: /health
Healthy threshold: 2
Unhealthy threshold: 3
Timeout: 5s
Interval: 30s
Success codes: 200-299

נקודת הקצה Protocol: HTTP Path: /health Healthy threshold: 2 Unhealthy threshold: 3 Timeout: 5s Interval: 30s Success codes: 200-299 חייבת להגיב במהירות (< timeout) ולבדוק רק את מוכנות האפליקציה. אל תכלול בדיקות מסד נתונים בבדיקות בריאות: אם ה-DB למטה, הסרת תעבורה מכל המופעים והפנייתה למקום אחר לא תעזור (כולם חולקים את אותו DB). עדיף: הפרד /health לניתוב תעבורה ו-/readiness להפעלות מחדש.

עיכוב ביטול רישום (connection draining) ברירת המחדל הוא 300 שניות. ALB מפסיק לשלוח בקשות חדשות למופע שיוצא משירות אך ממתין להשלמת בקשות בתהליך. עבור שירותי HTTP חסרי מצב עם בקשות מהירות, הפחת ל-30-60 שניות לפריסות מהירות יותר. עבור שירותים חסרי מצב, אנו ממליצים על עיכוב ביטול רישום של 30 שניות כדי להפחית את זמן הפריסה.

סיום SSL ותצורת HTTPS

תעודת ACM מחוברת למאזין ה-ALB. ALB מבצע סיום SSL—הצפנה בין הלקוח ל-ALB; אופציונלית הצפנה בין ALB לקבוצת היעד. עבור תעבורה בתוך VPC (תת-רשת פרטית), HTTP מספיק; הצפנה ברמה זו מוסיפה עומס ללא תועלת מעשית אם הרשת מבודדת.

מדיניות אבטחה ל-TLS: בחר /liveness לאבטחה מקסימלית. היא משביתה TLS 1.0/1.1 ושומרת על TLS 1.2 (ללקוחות מורשים) ו-TLS 1.3.

הפנה HTTP → HTTPS באמצעות כלל נפרד במאזין פורט 80:

Action: Redirect to HTTPS, port 443, status 301 
מידע נוסף על Mutual TLS ב-ALBMutual TLS (mTLS) זמין לאחרונה. הלקוח מספק תעודה, ו-ALB מאמת אותה מול חנות אמון. זה שימושי לאימות בין שירותים, ארכיטקטורות zero-trust ועמידה ברגולציות. זה מופעל במאזינים בפורט 443. הצוות שלנו של מומחי AWS מוסמכים מבטיח הגדרה לפי השיטות המומלצות.

NLB: מתי ואיך

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

כתובות IP סטטיות: לכל NLB יש IP קבוע לכל Availability Zone. זה נדרש כאשר מערכת עליונה חייבת לאפשר רשימת IP (API של שותף, חומת אש מדור קודם). ל-ALB אין כתובות IP סטטיות.

תמיכה בפרוטוקול UDP: NLB הוא מאזן העומסים היחיד של AWS שתומך ב-UDP. שרתי DNS, NTP, שרתי משחקים, נקודות קצה VPN—הכל עובר דרך NLB.

PrivateLink בנוי על גבי NLB לקישוריות בין שירותים בחשבונות או VPCs שונים ללא VPC peering. NLB משמש כקצה אחורי לשירותי נקודות קצה.

ניטור ALB/NLB

מדדי CloudWatch שאנו תמיד מגדירים:

מדד סף התראה משמעות
ELBSecurityPolicy-TLS13-1-2-2021-06 > 10/דקה שגיאות LB (לא יעד)
Action: Redirect to HTTPS, port 443, status 301 > 5% מהבקשות שגיאות אפליקציה
HTTPCode_ELB_5XX_Count P95 > SLO התדרדרות זמן השהיה
HTTPCode_Target_5XX_Count > 0 יעדים שנפלו
TargetResponseTime > 0 עומס יתר על LB

יומני גישה של ALB → S3 → Athena הם הסכימה הסטנדרטית לניתוח תעבורה. הפעל זאת במאפייני ה-LB. פורמט: חותמת זמן, שם ELB, כתובת IP של לקוח, כתובת IP של יעד, בקשה, קוד תגובה, זמן השהיה, סוכן משתמש.

התהליך שלנו

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

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

לוחות זמנים: הגדרת ALB סטנדרטית עם SSL וכללים בסיסיים אורכת יום אחד. תרחישים מורכבים (NLB + PrivateLink, mTLS, ניתוב משוקלל) אורכים 2 עד 3 ימים. העלות מחושבת באופן אישי; חיסכון בתשתית יכול להגיע ל-30% הודות לאופטימיזציה של כללי הניתוב—חיסכון אופייני של $200 לחודש עבור פרויקט בינוני. ההגדרה שלנו מבטיחה זמינות של 99.9% לאפליקציות.

מה כלול

השירות שלנו כולל:

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

עם ניסיון של למעלה מ-5 שנים ו-50+ פרויקטים, אנו מספקים פתרונות איזון עומסים אמינים. מעוניין בהגדרה סוהר? צור קשר—נעריך את הפרויקט שלך תוך יום אחד. קבל ייעוץ לבחירת מאזן עומסים ואופטימיזציה של התצורה הקיימת.