איזון עומסים ב-API Gateway

השילוב של מאזן עומסים גלובלי חיצוני של אפליקציות ושל מאזן עומסים קלאסי של אפליקציות עם API Gateway מאפשר לבקשות ה-backend שלכם בלי שרתים להשתמש בכל התכונות שזמינות ב-Cloud Load Balancing. אם משלבים את API Gateway עם מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) או עם מאזן עומסים קלאסי של אפליקציות באמצעות קבוצה של נקודות קצה ברשת בלי שרת (serverless NEG), אפשר:

  • אירוח שערים עם דומיינים ממותגים בהתאמה אישית
  • הגדרת TLS לשערים באמצעות אישורים שהונפקו על ידי רשות אישורים מועדפת
  • יצירת נקודת כניסה משותפת לניתוב שער למספר שרתי קצה עורפיים
  • פריסת שערים בכמה אזורים גיאוגרפיים לזמינות גבוהה בלי לנהל כתובות URL לכל אזור
  • הגנה על שערים באמצעות Cloud Armor
  • שיפור זמן התגובה של השער באמצעות Cloud CDN

שימוש ב-NEG ללא שרת ל-API Gateway

קבוצה של נקודות קצה ברשת (NEG) מציינת קבוצה של נקודות קצה של בק-אנד למאזן עומסים. קבוצת נקודות קצה ברשת (NEG) ללא שרת היא קצה עורפי שמפנה לקצה עורפי ללא שרת שמארחת Google, כמו Cloud Run, ‏ App Engine או API Gateway. בקצה העורפי של API Gateway,‏ NEG ללא שרת יכול לייצג:

  • מופע של API Gateway
  • קבוצה של שערים שהוגדרו עם אותה הגדרת API

בתרשים הבא מוצג אופן השימוש ב-NEGs ללא שרת במודל של איזון עומסים ב-Cloud:

דיאגרמה של NEG ללא שרת כקצה עורפי לשערים מרובי אזורים

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

מגבלות על קבוצות נקודות קצה ברשת (NEGs) ללא שרת ועל API Gateway

יש כמה מגבלות שכדאי לקחת בחשבון כשמשתמשים ב-NEGs ללא שרתים כדי לשלב את Cloud Load Balancing עם API Gateway. בעיקר:

  • ל-NEGs בלי שרתים לא יכולים להיות מצורפים נקודות קצה ברשת, כמו כתובות IP או יציאות.
  • קבוצות NEGs ללא שרתים יכולות להצביע רק על מופעים של API Gateway שנמצאים באותו אזור שבו נוצרה קבוצת ה-NEG.
  • קבוצות NEGs ללא שרתים יכולות להצביע רק על מופעים של API Gateway שנוצרו באותו פרויקט כמו מאזן העומסים באמצעות קצה העורפי של Serverless NEG.
  • ‫API Gateway לא תומך בהגדרות של שליטה בתעבורת נתונים נכנסת (ingress). כתוצאה מכך, אין אפשרות להשבית את הגישה ל-API Gateway באמצעות כתובת URL של שער שנוצרה על ידי שירות, ולוודא שכל התנועה מטופלת על ידי מאזן העומסים.

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

הגבלות על NEGs בלי שרת (serverless) בהגדרות שירות לקצה העורפי

שירות קצה עורפי מגדיר את האופן שבו Cloud Load Balancing מבזר את תעבורת הנתונים. ההגדרות של שירות הקצה העורפי מכילות קבוצה של ערכים, כמו הפרוטוקול שמשמש לחיבור לקצה העורפי, הגדרות שונות של הפצה וסשנים, בדיקות תקינות וזמני קצוב. ב-NEGs ללא שרתים שמשמשים כשירות קצה עורפי ל-API Gateway, ההגדרות האלה מאפשרות שליטה מדויקת בהתנהגות של מאזן העומסים.

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

  • אי אפשר להשתמש ב-NEGs ללא שרתים עם סוגים אחרים של NEGs באותו שירות backend. לדוגמה, אי אפשר להפנות תנועה לאותו שירות לקצה העורפי מאשכול GKE וממופע של API Gateway.
  • כל ה-NEGs ללא שרתים שמשולבים בשירות קצה עורפי חייבים להשתמש באותו סוג קצה עורפי. המשמעות היא ש-NEGs ללא שרתים של API Gateway אפשר לשלב רק עם NEGs ללא שרתים אחרים של API Gateway, ו-NEGs ללא שרתים של App Engine אפשר לשלב רק עם NEGs ללא שרתים של App Engine.
  • שירות לקצה העורפי יכול להכיל רק Serverless NEG אחד לכל אזור.

כשמגדירים הגדרת שירות לקצה העורפי שמנתבת ל-NEG בלי שרת (serverless), חלות המגבלות הבאות על השדות:

  • אי אפשר לציין את balancingMode
  • השדה healthCheck צריך להיות ריק ולא ניתן לציין אותו
  • אי אפשר לציין יציאות
  • נתמכים רק הפרוטוקולים HTTP ו-HTTPS.
  • המערכת לא תומכת בערכים שצוינו בשדות שקשורים ל-utilization או ל-connection.

השדות IAP,‏ cdnPolicy ו-securityPolicy בהגדרת השירות לקצה העורפי תקפים ל-NEGs ללא שרת. אפשר להשתמש בשדות האלה כדי להגדיר את שרת proxy לאימות זהויות (IAP), את Cloud CDN ואת Cloud Armor בהתאמה עם שירות API Gateway.

מה השלב הבא?