רשת להעברת תוכן (CDN) ב-Cloud משתמשת ברשת הקצה הגלובלית של Google כדי להציג תוכן באמצעות שרתים שנמצאים במיקום קרוב יותר אל המשתמשים, לצורך האצת אתרים ואפליקציות.
Cloud CDN פועל עם מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) או עם מאזן עומסים קלאסי של אפליקציות (ALB) כדי להעביר תוכן למשתמשים. מאזן העומסים החיצוני של האפליקציות מספק את כתובות ה-IP והיציאות של חזית האתר שמקבלות בקשות, ואת השרתים העורפיים שמגיבים לבקשות.
התוכן ב-Cloud CDN יכול להגיע מסוגים שונים של שרתים עורפיים.
ב-Cloud CDN, נקראים ה-backends האלה גם שרתי מקור. באיור 1 מוצג איך תגובות משרתי מקור שפועלים במופעים של מכונות וירטואליות (VM) עוברות דרך מאזן עומסים חיצוני של אפליקציות לפני שהן מועברות על ידי Cloud CDN. במצב הזה, ממשק הקצה של Google (GFE) כולל את Cloud CDN ואת מאזן העומסים החיצוני של האפליקציות.
איך Cloud CDN עובד
כשמשתמש מבקש תוכן ממאזן עומסים חיצוני של אפליקציות (ALB), הבקשה מגיעה לממשק קצה של Google (GFE) שנמצא בקצה של הרשת של Google, קרוב ככל האפשר למשתמש.
אם מפת כתובות ה-URL של מאזן העומסים מעבירה תנועה לשירות בק-אנד או לקטגוריית בק-אנד שמוגדר בהם Cloud CDN, GFE משתמש ב-Cloud CDN. שירותים לקצה העורפי יכולים להשתמש בקצה העורפי של Compute Engine, ב-GKE Ingress או ב-GKE Gateway.
פגיעות במטמון ואי-פגיעות במטמון
מטמון הוא קבוצה של שרתים שמאחסנים ומנהלים תוכן, כדי שאפשר יהיה להציג את התוכן הזה מהר יותר בבקשות עתידיות. התוכן שנשמר במטמון הוא עותק של תוכן שניתן לשמירה במטמון, שמאוחסן בשרתי המקור.
אם ממשק קצה של Google (GFE) מחפש במטמון של Cloud CDN ומוצא תשובה במטמון לבקשה של המשתמש, ממשק קצה של Google שולח את התשובה במטמון למשתמש. הפעולה הזו נקראת cache hit. כשמתרחש פגיעה במטמון, ממשק GFE מחפש את התוכן לפי מפתח המטמון ומגיב ישירות למשתמש, וכך מקצר את זמן הלוך ושוב וחוסך לשרת המקור את הצורך לעבד את הבקשה.
פגיעה חלקית במטמון מתרחשת כשבקשה מוגשת חלקית מהמטמון וחלקית מקצה עורפי. מצב כזה יכול לקרות אם רק חלק מהתוכן המבוקש מאוחסן במטמון של Cloud CDN, כמו שמתואר במאמר בנושא תמיכה בבקשות לטווח בייטים.
בפעם הראשונה שמתקבלת בקשה לגבי פריט תוכן, GFE קובע שלא ניתן למלא את הבקשה מהמטמון. זה נקרא cache miss. כשמתרחש cache miss, ממשק קצה של Google (GFE) מעביר את הבקשה למאזן העומסים החיצוני של האפליקציות (ALB). מאזן העומסים מעביר את הבקשה לאחד משרתי המקור שלכם. כשהתוכן מגיע למטמון, ה-GFE מעביר אותו למשתמש.
אם התשובה של שרת המקור לבקשה הזו היא ניתנת לשמירה במטמון, Cloud CDN שומר את התשובה במטמון של Cloud CDN לבקשות עתידיות. העברת נתונים ממטמון ללקוח נקראת יציאת נתונים ממטמון. העברת נתונים למטמון נקראת מילוי מטמון.
ההתנהגות של פגיעה במטמון (cache hit) ושל החמצה במטמון (cache miss) זהה בכל סוגי ה-backend הנתמכים, כולל Compute Engine, backend buckets, GKE Ingress ו-GKE Gateway.
באיור 2 מוצגים פגיעה במטמון והחמצה במטמון:
- שרתי מקור שפועלים על מכונות וירטואליות שולחים תגובות HTTP(S).
- מאזן העומסים החיצוני של האפליקציות מחלק את התגובות ל-Cloud CDN.
- שירות Cloud CDN מעביר את התשובות למשתמשי הקצה.
למידע על עלויות שקשורות לפגיעות במטמון ולפספוסים במטמון, אפשר לעיין במאמר בנושא תמחור.
שיעור ההיטים במטמון
שיעור הפגיעות במטמון הוא אחוז הפעמים שאובייקט שהתבקש מוצג מהמטמון. אם יחס פגיעות המטמון הוא 60%, המשמעות היא שהאובייקט המבוקש נשלח מהמטמון ב-60% מהמקרים, וצריך לאחזר אותו מהמקור ב-40% מהמקרים.
מידע על האופן שבו מפתחות מטמון יכולים להשפיע על יחס הפגיעה במטמון זמין במאמר בנושא שימוש במפתחות מטמון. מידע לפתרון בעיות מופיע במאמר יחס הפגיעה במטמון נמוך.
הצגת שיעור המציאות במטמון (cache hit) לתקופה קצרה
כדי לראות את יחס הפגיעה במטמון לתקופה קצרה (כמה דקות אחרונות):
נכנסים לדף Cloud CDN במסוף Google Cloud .
לכל מקור, בודקים את העמודה Cache hit ratio.
n/a מציין שהתוכן עם איזון העומסים לא נשמר במטמון או שלא הייתה בקשה לגביו לאחרונה.
הצגת שיעור הפגיעה במטמון לאורך תקופת זמן ארוכה יותר
כדי להציג את יחס הפגיעה במטמון לפרק זמן של שעה עד 30 יום:
- נכנסים לדף Cloud CDN במסוף Google Cloud .
- בעמודה שם המקור, לוחצים על שם המקור.
- לוחצים על הכרטיסייה מעקב.
- אופציונלי: בוחרים קצה עורפי ספציפי.
אחד מהתרשימים הזמינים למעקב הוא שיעור ההיטים ב-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 מוסיף תוכן למטמונים גם אחרי שהם מלאים. כדי להוסיף תוכן למטמון מלא, המטמון קודם מסיר משהו אחר כדי לפנות מקום. הפעולה הזו נקראת eviction (הוצאה). בדרך כלל המטמון מלא, ולכן התוכן מפונה ממנו כל הזמן. בדרך כלל הם מסירים תוכן שלא ניגשו אליו לאחרונה, ללא קשר למועד התפוגה של התוכן. יכול להיות שהתוכן שהוצא מהזיכרון פג תוקף, ויכול להיות שלא. הגדרת זמן תפוגה לא משפיעה על ההוצאה מהזיכרון.
תוכן לא פופולרי הוא תוכן שלא הייתה אליו גישה במשך זמן מה. המונחים 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. בנוסף, אתם יכולים להפעיל את התוספים בנתיב הבקשה או בנתיב התגובה מהשרת.
מידע נוסף מופיע במאמר שימוש בתוספי שירות למחשוב קצה.
שילוב עם 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, אפשר לעיין במאמר בנושא מיקומי מטמון.