סקירה כללית על Cloud CDN

רשת להעברת תוכן (CDN) ב-Cloud משתמשת ברשת הקצה הגלובלית של Google כדי להציג תוכן באמצעות שרתים שנמצאים במיקום קרוב יותר אל המשתמשים, לצורך האצת אתרים ואפליקציות.

‫Cloud CDN פועל עם מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) או עם מאזן עומסים קלאסי של אפליקציות (ALB) כדי להציג תוכן למשתמשים. מאזן העומסים החיצוני של האפליקציות מספק את כתובות ה-IP והיציאות של הקצה הקדמי שמקבלות בקשות, ואת הקצוות העורפיים שמגיבים לבקשות.

התוכן ב-Cloud CDN יכול להגיע מסוגים שונים של שרתים עורפיים.

ב-Cloud CDN, נקראים ה-backends האלה גם שרתי מקור. באיור 1 מוצג איך תגובות משרתי מקור שפועלים במופעים של מכונות וירטואליות (VM) עוברות דרך מאזן עומסים של אפליקציות (ALB) חיצוני לפני שהן מועברות על ידי Cloud CDN. במצב הזה, ממשק הקצה של Google‏ (GFE) כולל את Cloud CDN ואת מאזן העומסים של אפליקציות חיצוני.

Figure 1. התגובות זורמות משרתי המקור דרך Cloud CDN ללקוחות.
איור 1. התגובות זורמות משרתי המקור דרך Cloud CDN ללקוחות.

איך Cloud CDN עובד

כשמשתמש מבקש תוכן ממאזן עומסים חיצוני של אפליקציות (ALB), הבקשה מגיעה לממשק קצה של Google‏ (GFE) שנמצא בקצה של הרשת של Google, קרוב ככל האפשר למשתמש.

אם מפת כתובות ה-URL של מאזן העומסים מעבירה תנועה לשירות בק-אנד או לקטגוריית בק-אנד שמוגדר בהם Cloud CDN,‏ GFE משתמש ב-Cloud CDN. שירותי בק-אנד יכולים להשתמש בבק-אנד של Compute Engine,‏ GKE Ingress או GKE Gateway.

פגיעות במטמון ואי-פגיעות במטמון

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

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

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

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

אם התשובה של שרת המקור לבקשה הזו היא ניתנת לשמירה במטמון, ‏ Cloud CDN שומר את התשובה במטמון של Cloud CDN לבקשות עתידיות. העברת נתונים ממטמון ללקוח נקראת יציאת נתונים ממטמון. העברת נתונים למטמון נקראת מילוי מטמון.

ההתנהגות של מציאה במטמון (cache hit) ואי מציאה במטמון (cache miss) זהה בכל סוגי ה-backend הנתמכים, כולל Compute Engine,‏ backend buckets,‏ GKE Ingress ו-GKE Gateway.

באיור 2 מוצגים מציאה במטמון ואי מציאה במטמון:

  1. שרתי מקור שפועלים על מכונות וירטואליות שולחים תגובות HTTP(S).
  2. מאזן העומסים החיצוני של האפליקציות מחלק את התגובות ל-Cloud CDN.
  3. ‫Cloud CDN מעביר את התשובות למשתמשי הקצה.
איור 2. התגובה הראשונית מוגשת על ידי שרת המקור, בעוד שהתגובות הבאות מוגשות על ידי GFE מהמטמון.
איור 2. התגובה הראשונית מוגשת על ידי שרת המקור,

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

שיעור מציאות במטמון (cache hit)

שיעור מציאות במטמון (cache hit) הוא אחוז הפעמים שאובייקט מבוקש נשלח מהמטמון. אם שיעור מציאות במטמון (cache hit) הוא 60%, המשמעות היא שהאובייקט המבוקש נשלח מהמטמון ב-60% מהמקרים, וצריך לאחזר אותו מהמקור ב-40% מהמקרים.

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

הצגת שיעור הפגיעות במטמון לתקופה קצרה

כדי לראות את שיעור מציאות במטמון (cache hit) לתקופה קצרה (כמה דקות אחרונות):

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

    מעבר אל Cloud CDN

  2. לכל מקור, בודקים את העמודה Cache hit ratio.

    n/a מציין שהתוכן עם איזון העומסים לא נשמר במטמון או שלא הייתה בקשה לגשת אליו לאחרונה.

הצגת שיעור מציאות במטמון (cache hit) לאורך תקופה ארוכה יותר

כדי להציג את שיעור מציאות במטמון (cache hit) לתקופה של שעה עד 30 יום:

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

    מעבר אל Cloud CDN

  2. בעמודה שם המקור, לוחצים על שם המקור.
  3. לוחצים על הכרטיסייה מעקב.
  4. אופציונלי: בוחרים קצה עורפי ספציפי.

אחד מהתרשימים הזמינים למעקב הוא שיעור ההצלחה של CDN. אם בתרשים מוצגת ההודעה No data, המשמעות היא שהתוכן לא נשמר במטמון או שלא הייתה בקשה להצגת התוכן בטווח הזמן שמוצג.

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

דוגמה לטווחים של זמן פנוי

הוספת תוכן למטמון

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

כשהשרת המקורי תומך בבקשות לטווח בייטים, ‏ Cloud CDN יכול ליזום כמה בקשות למילוי מטמון בתגובה לבקשת לקוח אחת.

הצגת תוכן ממטמון

אחרי שמפעילים את Cloud CDN, השמירה במטמון מתבצעת באופן אוטומטי לכל התוכן שניתן לשמור במטמון. שרת המקור משתמש בכותרות HTTP כדי לציין אילו תגובות נשמרות במטמון. אפשר גם לשלוט באפשרות השמירה במטמון באמצעות מצבי מטמון.

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

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

מידע נוסף על מה נשמר במטמון של Cloud CDN ועל משך השמירה מופיע במאמר סקירה כללית על שמירה במטמון.

כדי לראות מה מוגש על ידי Cloud CDN ממטמון, אפשר לצפות ביומנים.

הסרת תוכן מהמטמון

כדי להסיר פריט ממטמון, אפשר לבטל את התוקף של תוכן במטמון. למידע נוסף:

עקיפת המטמון

כדי לעקוף את Cloud CDN, אתם יכולים לבקש אובייקט ישירות מקטגוריה של Cloud Storage או ממכונה וירטואלית של Compute Engine. לדוגמה, כתובת URL של אובייקט בקטגוריה של Cloud Storage נראית כך:

https://storage.googleapis.com/STORAGE_BUCKET/FILENAME

מדיניות בנושא תפוגה ופינוי של מטמון

כדי שתוכן יוצג ממטמון, הוא צריך להיות מוכנס למטמון, לא להימחק ממנו ולא להיות לא רלוונטי.

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

פינוי

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

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

תוכן לא פופולרי הוא תוכן שלא הייתה אליו גישה במשך זמן מה. המונחים A while ו-unpopular הם יחסיים לרוב הפריטים האחרים במטמון. מספר פרויקטים חולקים מאגר משותף של שטח מטמון כי הם מוגשים מאותה קבוצה של GFE. Google Cloud הפופולריות היחסית של התוכן מושווית בין כמה פרויקטים, ולא רק בתוך פרויקט אחד.

ככל שיש יותר תנועה במטמון, כך יותר תוכן במטמון נמחק.

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

תפוגה

לתוכן במטמון של HTTP(S) יכול להיות זמן תפוגה שניתן להגדרה. זמן התפוגה מציין למטמון לא להציג תוכן ישן, גם אם התוכן לא הוסר.

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

מידע על כוונון מדויק של זמני התפוגה מופיע במאמר שימוש בהגדרות TTL וביטול שלהן.

בקשות שהופעלו על ידי Cloud CDN

כששרת המקור תומך בבקשות לטווח בייטים, Cloud CDN יכול לשלוח כמה בקשות לשרת המקור בתגובה לבקשה אחת של לקוח. כמו שמתואר במאמר בנושא תמיכה בבקשות לטווח בייטים,‏ Cloud CDN יכול ליזום שני סוגים של בקשות: בקשות אימות ובקשות לטווח בייטים.

הגדרות מיקום הנתונים של שירותים אחרים ב-Cloud Platform

השימוש ב-Cloud CDN אומר שייתכן שהנתונים יאוחסנו במיקומי שרתים מחוץ לאזור או לאזור הזמינות של שרת המקור. זה מצב תקין שנובע מהאופן שבו שמירת נתונים במטמון של HTTP פועלת באינטרנט. במסגרת התנאים הספציפיים לשירות של התנאים וההגבלות של Google Cloud Platform, ההגדרה 'מיקום הנתונים' שזמינה לשירותים מסוימים של Cloud Platform לא חלה על נתוני ליבה של לקוחות בשירות Cloud Platform הרלוונטי, כשמשתמשים בו עם מוצרים ושירותים אחרים של Google (במקרה הזה, שירות Cloud CDN). אם לא רוצים שזה יקרה, לא משתמשים בשירות Cloud CDN.

תמיכה באישורי SSL בניהול Google

אפשר להשתמש באישורים שמנוהלים על ידי Google כש-Cloud CDN מופעל.

שילוב עם Google Cloud Armor

‫Google Cloud Armor עם Cloud CDN כולל שני סוגים של כללי מדיניות אבטחה:

  • מדיניות אבטחה של Edge. אפשר להחיל את כללי המדיניות האלה על שרתי המקור שלכם שמופעל בהם Cloud CDN. הם חלים על כל התנועה, לפני חיפוש ב-CDN.
  • מדיניות אבטחה של קצה עורפי. כללי המדיניות האלה נאכפים רק לגבי בקשות לתוכן דינמי, בקשות שגורמות לפספוס במטמון או בקשות אחרות שמיועדות לשרת המקור.

מידע נוסף זמין במסמכי התיעוד של Cloud Armor.

שילוב עם Service Extensions

‫Cloud CDN מאפשר להוסיף קוד מותאם אישית לנתיב עיבוד הבקשות של מאזני עומסים גלובליים חיצוניים של אפליקציות (ALB) באמצעות תוספים של Service Extensions. התוספים האלה עוזרים לכם להטמיע התאמות אישיות בנתיב הבקשה לפני השמירה במטמון, ומשפיעים על אופן השמירה של התוכן במטמון ב-Cloud CDN. בנוסף, אתם יכולים להפעיל את התוספים בנתיב הבקשה או בנתיב התגובה מהשרת.

מידע נוסף מופיע במאמר שימוש ב-Service Extensions למחשוב קצה.

שילוב עם GKE Gateway

עבור עומסי עבודה שפועלים ב-GKE, אפשר להגדיר את Cloud CDN באמצעות Gateway API. התנהגות הקאשינג של Cloud CDN מוגדרת באמצעות משאבי GCPHTTPFilter שמצורפים למשאבי HTTPRoute. לגבי תנועה שמנותבת דרך שער, המסננים האלה מאפשרים להגדיר מדיניות מטמון, כולל מצבי מטמון והגדרות TTL.

מידע נוסף זמין במאמר בנושא הגדרת Cloud CDN עבור Gateway.

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

  • כדי להפעיל את Cloud CDN עבור מופעים עם איזון עומסים מסוג HTTP(S) וקטגוריות אחסון, אפשר לעיין במאמר בנושא שימוש ב-Cloud CDN.
  • GKE Ingress: כדי להשתמש ב-Cloud CDN עם בקר GKE Ingress, אפשר לעיין במאמר הגדרת Cloud CDN דרך Ingress.
  • ‫GKE Gateway API: כדי להשתמש ב-Cloud CDN עם Gateway API ו-GCPHTTPFilter, אפשר לעיין במאמר הגדרת Cloud CDN ל-Gateway.
  • כדי לראות את נקודות הנוכחות של GFE, אפשר לעיין במאמר בנושא מיקומי מטמון.