במדריך הזה אנחנו משתמשים בדוגמה כדי לתאר את היסודות של שימוש בקצה עורפי חיצוני (לפעמים נקרא מקור מותאם אישית) במאזן עומסים של אפליקציות חיצוני. בקצה העורפי החיצוני יש נקודת קצה שהיא חיצונית ל- Google Cloud. כשמשתמשים בקצה עורפי חיצוני עם מאזן עומסים חיצוני של אפליקציות (ALB), אפשר לשפר את הביצועים באמצעות שמירת נתונים במטמון של Cloud CDN.
במדריך מוסבר איך להגדיר מאזן עומסים גלובלי חיצוני של אפליקציות עם שירות קצה עורפי שמופעל בו Cloud CDN, שמשמש כשרת proxy לשרת קצה עורפי חיצוני בכתובת backend.example.com.
בדוגמה, מאזן העומסים מקבל בקשות HTTPS מלקוחות ומעביר אותן כבקשות HTTPS לבק-אנד החיצוני. בדוגמה הזו מניחים שהקצה העורפי החיצוני תומך ב-HTTPS.
אפשרות אחרת היא להגדיר מאזן עומסים שיקבל בקשות HTTP או HTTPS, ולהשתמש ב-HTTPS כשמפעילים proxy לבקשות לבק-אנד חיצוני.
במדריך הזה אנחנו יוצאים מנקודת הנחה שכבר הגדרתם מאזן עומסים ואתם מוסיפים קצה עורפי חיצוני חדש. מידע נוסף זמין במאמר בנושא הגדרה של מאזן עומסים של אפליקציות (ALB) קלאסי עם קצה עורפי של קבוצת מופעי מכונה מנוהלים.
איור 1 מציג ארכיטקטורה לדוגמה.
בתרשים, ל-www.example.com יש קצה קדמי של מאזן עומסים עם כתובת ה-IP 120.1.1.1. כשאין פגיעה במטמון, בקשות משתמשים ל-/cart/id/1223515 נשלפות מהקצה העורפי החיצוני באמצעות HTTPS. כל התנועה הנכנסת האחרת מופנית לשירות הקצה העורפי Google Cloud עם מכונות וירטואליות של Compute Engine או לקטגוריית הקצה העורפי, בהתאם למפת ה-URL.
לפני שמתחילים
לפני שתמשיכו לקרוא את המדריך הזה, כדאי שתכירו את המושגים הבאים:
סקירה כללית על קבוצות של נקודות קצה ברשת האינטרנט, כולל המגבלות.
שרתי קצה עורפיים חיצוניים שצוינו באמצעות קבוצות NEGs באינטרנט
הרשאות
כדי לפעול לפי המדריך הזה, צריך ליצור קבוצת נקודות קצה ברשת האינטרנט (NEG) וליצור או לשנות מאזן עומסים חיצוני של אפליקציות (ALB) בפרויקט. צריכה להיות לכם הרשאת בעלים או עריכה בפרויקט, או שצריכים להיות לכם שני תפקידי ה-IAM הבאים ב-Compute Engine.
| משימה | התפקיד הנדרש |
|---|---|
| יצירה ושינוי של רכיבים של מאזן עומסים | אדמין רשתות |
| יצירה ושינוי של קבוצות של ישויות בעלות שם | אדמין מכונות של Compute |
הגדרת מאזן עומסים עם קצה עורפי חיצוני
בקטע הזה נסביר איך להגדיר ולבדוק קבוצת נקודות קצה ברשת (NEG) באינטרנט.
סקירה כללית של ההגדרה
כדי להגדיר NEG לאינטרנט, צריך לבצע את הפעולות הבאות:
- הגדרת נקודת קצה באינטרנט ב-NEG באינטרנט.
- הוספה של NEG לאינטרנט כקצה עורפי לשירות קצה עורפי.
- הגדרת מפת URL של מאזן העומסים החיצוני של אפליקציות כדי להגדיר לאיזה שירות לקצה העורפי למפות את תנועת המשתמשים.
- הוספה לרשימת ההיתרים של טווחי כתובות ה-IP הנדרשים.
בדוגמה הזו נוצרים המשאבים הבאים:
- כלל העברה עם כתובת ה-IP
120.1.1.1מפנה בקשות נכנסות לשרת proxy של יעד. - הערך
networkTierשל כלל ההעברה צריך להיותPREMIUM. - שרת ה-proxy של היעד בודק כל בקשה מול מפת ה-URL כדי לקבוע את שירות הקצה העורפי המתאים לבקשה.
- בשרתי קצה עורפיים חיצוניים, שרת ה-proxy של היעד חייב להיות
TargetHttpProxyאוTargetHttpsProxy. בדוגמה הזו נעשה שימוש ב-TargetHttpsProxy. - הפעלת Cloud CDN (אופציונלי) בשירות הקצה העורפי מאפשרת שמירה במטמון והצגת תגובות ממטמוני Cloud CDN.
- הדוגמה הזו כוללת כותרת מותאמת אישית, שנדרשת כשהעורף החיצוני מצפה לערך מסוים בכותרת
Hostשל בקשת ה-HTTP.
ההגדרה תיראה כך:
יצירת קבוצת נקודות קצה ברשת (NEG) ונקודת קצה באינטרנט
המסוף
- נכנסים לדף Network endpoint groups במסוף Google Cloud .
- לוחצים על יצירת קבוצת נקודות קצה ברשת.
- מזינים את השם של קבוצת נקודות הקצה ברשת:
example-fqdn-neg. - בקטע סוג קבוצת נקודות קצה ברשת, בוחרים באפשרות קבוצת נקודות קצה ברשת (אינטרנט).
- בשדה יציאה שמוגדרת כברירת מחדל, מזינים
443. - בקטע New network endpoint (נקודת קצה חדשה ברשת), בוחרים באפשרות Fully qualified domain name and port (שם דומיין מוגדר במלואו ויציאה).
- בשדה FQDN, מזינים
backend.example.com. - בקטע סוג יציאה, בוחרים באפשרות ברירת מחדל ומוודאים שמספר היציאה הוא
443. - לוחצים על יצירה.
gcloud
יוצרים NEG לאינטרנט ומגדירים את
--network-endpoint-typeל-internet-fqdn-port(שם המארח והיציאה שדרכם אפשר להגיע לקצה העורפי החיצוני):gcloud compute network-endpoint-groups create example-fqdn-neg \ --network-endpoint-type="internet-fqdn-port" --globalמוסיפים את נקודת הקצה ל-NEG. אם לא מציינים יציאה, ברירת המחדל של בחירת היציאה היא יציאה
80(HTTP) או443(HTTPS; HTTP/2), בהתאם לפרוטוקול שהוגדר בשירות לקצה העורפי. חשוב לכלול את דגל--global:gcloud compute network-endpoint-groups update example-fqdn-neg \ --add-endpoint="fqdn=backend.example.com,port=443" \ --globalמפרטים את ה-NEG באינטרנט שנוצר:
gcloud compute network-endpoint-groups list --global
פלט:
NAME LOCATION ENDPOINT_TYPE SIZE example-fqdn-neg global INTERNET_FQDN_PORT 1
מפרטים את נקודת הקצה ב-NEG:
gcloud compute network-endpoint-groups list-network-endpoints example-fqdn-neg \ --globalפלט:
INSTANCE IP_ADDRESS PORT FQDN backend.example.com
הוספת קצה עורפי חיצוני למאזן עומסים
בדוגמה הבאה מעדכנים מאזן עומסים קיים.
במאזן העומסים הקיים, שירות ברירת המחדל הוא Google Cloud
service. בדוגמה הזו משנים את מפת ה-URL הקיימת על ידי הוספת התאמת נתיבים ששולחת את כל הבקשות ל-cart/id/1223515 לשירות הקצה העורפי images, שמשויך ל-NEG באינטרנט.
המסוף
יצירת שירות לקצה העורפי והוספה של NEG לאינטרנט
- נכנסים לדף Load balancing במסוף Google Cloud .
- כדי להוסיף את שירות לקצה העורפי למאזן עומסים קיים, בוחרים את מאזן העומסים הקלאסי של האפליקציה, לוחצים על Menu ואז על Edit.
- לוחצים על Backend configuration.
- בתפריט Backend services & backend buckets בוחרים באפשרות Create a backend service.
- מגדירים את שם השירות לקצה העורפי ל-
images. - בקטע סוג קצה עורפי, בוחרים באפשרות קבוצה של נקודות קצה ברשת באינטרנט.
- בוחרים את הפרוטוקול שבו רוצים להשתמש ממאזן העומסים ל-NEG באינטרנט. לצורך הדוגמה הזו, בוחרים באפשרות HTTPS.
- בקטע New backend > Internet network endpoint group (קצה עורפי חדש > קבוצת נקודות קצה ברשת האינטרנט), בוחרים באפשרות
example-fqdn-negואז לוחצים על Done (סיום). - בוחרים באפשרות הפעלת Cloud CDN.
- אופציונלי: משנים את ההגדרות של מצב מטמון ושל TTL.
- בקטע Custom request headers (כותרות בקשות בהתאמה אישית) שבAdvanced configurations (הגדרות מתקדמות), לוחצים על Add header (הוספת כותרת).
- בשדה Header name (שם הכותרת), מזינים
Host. - בשדה ערך הכותרת, מזינים
backend.example.com.
- בשדה Header name (שם הכותרת), מזינים
- לוחצים על יצירה.
- כדי להמשיך, צריך להשאיר את החלון פתוח.
צירוף שירות ה-Backend למיפוי קיים של כתובות URL
- לוחצים על Host and path rules (כללים לגבי מארח ונתיב).
- בשורה הראשונה או בשורות הראשונות יש Google Cloud שירותים בעמודה הימנית, ואחד מהם כבר מאוכלס בכלל ברירת המחדל
Any unmatched (default)של מארחים ונתיבים. - מוודאים שיש שורה עם
imagesשנבחרה בעמודה השמאלית. אם הוא לא קיים, לוחצים על הוספת כלל של מארח ונתיב ובוחרים באפשרותimages. ממלאים את שאר השדות באופן הבא:- בשדה מארחים, מזינים
*. - בשדה Paths, מזינים
/cart/id/1223515.
- בשדה מארחים, מזינים
בדיקה וסיום
- לוחצים על Review and finalize.
- משווים את ההגדרות למה שרציתם ליצור.
- אם הכל נראה נכון, לוחצים על עדכון.
gcloud
יוצרים שירות קצה עורפי חדש עבור ה-NEG:
gcloud compute backend-services create images \ --global \ --enable-cdn \ --cache-mode=CACHE_MODE \ --protocol=HTTP2
כדי להגדיר את מצב מטמון, מחליפים את CACHE_MODE באחת מהאפשרויות הבאות:
CACHE_ALL_STATIC: שמירה אוטומטית במטמון של תוכן סטטי
USE_ORIGIN_HEADERS(ברירת מחדל): כדי לשמור תוכן במטמון, המקור צריך להגדיר כותרות תקפות של שמירה במטמון
FORCE_CACHE_ALL: שומר במטמון את כל התוכן, תוך התעלמות מההנחיותprivate,no-storeאוno-cacheבכותרות התגובהCache-Control
מגדירים את שירות הקצה העורפי להוספת כותרת הבקשה המותאמת אישית
Host: backend.example.comלבקשה:gcloud compute backend-services update images \ --custom-request-header "Host: backend.example.com" --global
משתמשים בפקודה
backend-services add-backendכדי להוסיף את ה-NEG לאינטרנט לשירות הקצה העורפי:gcloud compute backend-services add-backend images \ --network-endpoint-group "example-fqdn-neg" \ --global-network-endpoint-group \ --global
מצרפים את שירות הקצה העורפי החדש למפת URL של מאזן העומסים על ידי יצירת כלל התאמה חדש להפניית בקשות לקצה העורפי הזה:
gcloud compute url-maps add-path-matcher EXAMPLE_URL_MAP \ --default-service=GCP_SERVICE_EXAMPLE \ --path-matcher-name=CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE \ --backend-service-path-rules=/CART/ID/1223515=IMAGES
מחליפים את מה שכתוב בשדות הבאים:
-
EXAMPLE_URL_MAP: השם של מיפוי ה-URL הקיים -
GCP_SERVICE_EXAMPLE: השם של שירות קיים לקצה העורפי שמוגדר כברירת מחדל -
CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE: השם של כלל הנתיב החדש -
/CART/ID/1223515: הנתיב -
IMAGES: השם של שירות הקצה העורפי החדש עם ה-NEG באינטרנט שמצורף אליו
-
הוספת טווחי כתובות ה-IP הנדרשים לרשימת ההיתרים
כדי לאפשר למאזן עומסים חיצוני של אפליקציות לשלוח בקשות ל-NEG באינטרנט, צריך לבצע שאילתה לרשומת ה-DNS TXT של _cloud-eoips.googleusercontent.com באמצעות כלי כמו dig או nslookup.
לדוגמה, מריצים את הפקודה הבאה dig:
dig TXT _cloud-eoips.googleusercontent.com | grep -Eo 'ip4:[^ ]+' | cut -d':' -f2
הפלט מכיל שני טווחי כתובות IP, כמו שמוצג כאן:
34.96.0.0/20
34.127.192.0/18
חשוב לשים לב לטווחים של כתובות ה-IP ולוודא שחומת האש או הרשימה של בקרת הגישה (ACL) בענן מאפשרות גישה לטווחים האלה.
מידע נוסף זמין במאמר בנושא אימות בקשות.
חיבור הדומיין למאזן העומסים
אחרי שיוצרים את מאזן העומסים, רושמים את כתובת ה-IP שמשויכת למאזן העומסים – לדוגמה, 30.90.80.100. כדי להפנות את הדומיין למאזן העומסים, צריך ליצור רשומת A באמצעות שירות הרישום של הדומיין. אם הוספתם מספר דומיינים לאישור ה-SSL, צריך להוסיף רשומת A לכל אחד מהם, כשכולם מפנים לכתובת ה-IP של מאזן העומסים. לדוגמה, כדי ליצור רשומות A בשביל www.example.com ובשביל example.com, משתמשים בפקודה הבאה:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.
בדיקת מאזן עומסים חיצוני של אפליקציות (ALB)
אחרי שמגדירים את מאזן העומסים, אפשר להתחיל לשלוח תנועה לכתובת ה-IP של מאזן העומסים. אם הגדרתם דומיין, תוכלו גם לשלוח תנועה לשם הדומיין. עם זאת, יכול להיות שיעבור זמן עד שהפצת ה-DNS תושלם, לכן אפשר להתחיל להשתמש בכתובת ה-IP לבדיקה.
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על מאזן העומסים שיצרתם.
שימו לב לכתובת ה-IP של מאזן העומסים.
אם יצרתם מאזן עומסים מסוג HTTP, אתם יכולים לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט בכתובת
http://IP_ADDRESS. מחליפים אתIP_ADDRESSבכתובת ה-IP של מאזן העומסים. המערכת אמורה להפנות אתכם לדף הבית של שירותhelloworld.אם יצרתם מאזן עומסים ב-HTTPS, אתם יכולים לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט בכתובת
https://IP_ADDRESS. מחליפים אתIP_ADDRESSבכתובת ה-IP של מאזן העומסים. המערכת אמורה להפנות אתכם לדף הבית של שירותhelloworld.אם זה לא עובד ואתם משתמשים באישור שמנוהל על ידי Google, צריך לוודא שהסטטוס של משאב האישור הוא ACTIVE. מידע נוסף זמין במאמר בנושא סטטוס של משאב אישור SSL בניהול Google.
לחלופין, אפשר להשתמש ב-
curlמשורת הפקודה של המחשב המקומי. מחליפים אתIP_ADDRESSבכתובת ה-IPv4 של מאזן העומסים.אם אתם משתמשים באישור שמנוהל על ידי Google, אתם צריכים לבדוק את הדומיין שמפנה לכתובת ה-IP של מאזן העומסים. לדוגמה:
curl -s 'https://www.example.com:443' --resolve www.example.com:443:IP_ADDRESS
אופציונלי: אם אתם משתמשים בדומיין מותאם אישית, יכול להיות שתצטרכו לחכות עד שהגדרות ה-DNS המעודכנות יתעדכנו. לאחר מכן, בודקים את הדומיין (לדוגמה,
backend.example.com) בדפדפן האינטרנט.לקבלת עזרה בפתרון בעיות, אפשר לעיין במאמר בנושא פתרון בעיות ב-backend חיצוני וב-NEG באינטרנט.
השבתת Cloud CDN
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על השם של מאזן העומסים שרוצים לשנות.
לוחצים על עריכה.
לוחצים על Backend configuration.
בשירות הקצה העורפי עם הקצה העורפי של ה-NEG באינטרנט, לוחצים על Edit.
מבטלים את הסימון בתיבת הסימון Enable Cloud CDN.
כדי לבדוק את השינויים, לוחצים על בדיקה וסיום ואז על עדכון.
gcloud
gcloud compute backend-services update BACKEND_SERVICE_NAME \
--no-enable-cdn
השבתה של Cloud CDN לא מבטלת את התוקף של מטמונים או מוחקת אותם. אם משביתים את Cloud CDN ומפעילים אותו מחדש, יכול להיות שרוב התוכן במטמון או כולו עדיין יישאר במטמון. כדי למנוע שימוש בתוכן על ידי מטמונים, צריך להפוך את התוכן הזה ללא תקף.
המאמרים הבאים
- כדי לבדוק אם Cloud CDN מציג תגובות מהמטמון, אפשר לעיין במאמר יומנים ומדדים לשמירה במטמון.
- מידע על תוכן שאפשר לשמור במטמון ועל תוכן שלא ניתן לשמור במטמון זמין במאמר סקירה כללית על שמירה במטמון.
- כדי לראות את נקודות הנוכחות של GFE, אפשר לעיין במאמר בנושא מיקומי מטמון.