הגדרת 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 ב-ALB
Mutual 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 של יעד, בקשה, קוד תגובה, זמן השהיה, סוכן משתמש.
התהליך שלנו
הגדרת איזון עומסים מורכבת מהשלבים הבאים:
- ביקורת על הארכיטקטורה הנוכחית ודרישות התעבורה.
- תכנון תצורות מאזני עומסים, כללי ניתוב, בדיקות בריאות.
- יישום: יצירת קבוצות יעד, מאזינים, כללים, הגדרת SSL.
- בדיקות: אימות ניתוב, סובלנות לתקלות, זמן השהיה.
- פריסה לייצור וניטור למשך שבוע.
לוחות זמנים: הגדרת ALB סטנדרטית עם SSL וכללים בסיסיים אורכת יום אחד. תרחישים מורכבים (NLB + PrivateLink, mTLS, ניתוב משוקלל) אורכים 2 עד 3 ימים. העלות מחושבת באופן אישי; חיסכון בתשתית יכול להגיע ל-30% הודות לאופטימיזציה של כללי הניתוב—חיסכון אופייני של $200 לחודש עבור פרויקט בינוני. ההגדרה שלנו מבטיחה זמינות של 99.9% לאפליקציות.
מה כלול
השירות שלנו כולל:
- תיעוד של ארכיטקטורת איזון העומסים (דיאגרמות, כללים, פרמטרים).
- אישורי גישה ל-AWS וסקריפטים לשחזור.
- עד שעתיים של הדרכת צוות.
- שבועיים של תמיכה לאחר פריסה.
עם ניסיון של למעלה מ-5 שנים ו-50+ פרויקטים, אנו מספקים פתרונות איזון עומסים אמינים. מעוניין בהגדרה סוהר? צור קשר—נעריך את הפרויקט שלך תוך יום אחד. קבל ייעוץ לבחירת מאזן עומסים ואופטימיזציה של התצורה הקיימת.







