- בלוג
- CDN: איך זה עובד ולמה זה כל כך חשוב?
CDN: איך זה עובד ולמה זה כל כך חשוב?
- יתרונות
- קצת (הרבה) על אבטחה
- חסרונות
- ה-CDN שלנו
- לסיכום
CDN: איך זה עובד ולמה זה כל כך חשוב?
פורסם ב 12-02-2025
מהי מערכת CDN וכיצד היא משפרת את ביצועי האתרים?
באופן בסיסי, CDN – ראשי תיבות של Content Delivery Network (לפעמים ה-D היא קיצור של Distribution), או מערכת להעברת/הפצת תוכן, היא רשת שרתים הפזורה ברחבי העולם. מטרתם של שרתים אלה היא לאחסן את המטמון של אתר או יישום. כך, גולש ממיקום מרוחק מהשרת המרכזי המאחסן את אותו אתר או יישום, יוכל לטעון את המטמון במהירות רבה יותר.
עכשיו, אחרי שהורדנו את ההגדרה הבסיסית מהלב, אפשר לפרט קצת יותר.
מטמון (Cache) הוא עותק של הנתונים היותר כבדים שמרכיבים אתר או יישום – קבצי מדיה שונים, רכיבי יישום (לעיתים אף יישום שלם), סקריפטים ארוכים ומורכבים, וכיוצא בזה. העותק של נתונים אלה נשמר כמטמון, במיקום שהמכשיר של המשתמש יוכל לגשת אליו במהירות רבה יותר, במקום לבקש את הנתונים שוב ושוב מהשרת המאחסן אתר האתר או היישום.
שמתם לב שלאחר שגלשתם באתר מסויים, עמודים מסויימים שלו נטענים יותר מהר? זה מפני שהדפדפן שמר מטמון של האתר על המכשיר שלכם, כדי לפתוח תכנים כבדים מהר יותר ולא להסתמך על התקשורת עם השרת המרכזי של האתר.
איך זה עובד?
מהירות הטעינה של תוכנו של אתר מושפעת מהרבה דברים. אחד הדברים היותר משמעותיים הוא המרחק הפיזי בין לקוח (גולש) לשרת אליו הוא מנסה להתחבר. מן הסתם, ככל שהמרחק בין השניים יגדל, כך זמן ההשהיה (Latency) יארך גם הוא.
נכון, נתונים ממוחשבים נעים במהירויות גבוהות מאוד – עד 200,000 ק"מ לשניה, כאשר מדובר בסיבים אופטיים, וכאשר התנאים אופטימליים.
עם זאת, גם אם נתעלם מן העובדה כי מרבית האנשים משתמשים בחבילות גלישה ובמכשירים הרבה פחות אידיאליים, מהירות טעינתם של שירותים שונים ברחבי האינטרנט מושפעת מהרבה דברים נוספים. לא נמנה את כולם כרגע, אבל כן נתייחס לדרך שעוברים הנתונים בין המכשיר של הגולש לשרת המאחסן את האתר.
כדי להציג תוכן מאתר כלשהו, הגולש, באמצעות הדפדפן, שולח בקשה לשרת הראשי המאחסן את אותו התוכן. בהפשטה, בקשה זו יכולה להתבצע בצורה של לחיצה על קישור, הקלדת כתובת URL, הזנת שם משתמש וסיסמה, בחירת הצגת כתוביות בשירות הסטרימינג המועדף על הגולש, ועוד.
בקשה זו נשלחת בצורת חבילת נתונים (Packet) אל השרת המארח את האתר או השירות. מכאן, הדרך שתעשה הבקשה משולה לנסיעה בכבישים עד להגעת החבילה מהגולש אל השרת. חבילת הנתונים תעבור בין צמתים מקשרים, נקודות החלפת נתונים, ועוד ועוד ועוד. מן הסתם, מספר הצמתים, הנקודות וה"חלקים" של הדרך גדל ככל שגדל המרחק בין שני הגורמים.
מאחר ולא כל התשתיות להעברת נתונים בין נקודה לנקודה הן באותה רמה, ניתן להניח שחבילת נתונים זו תחווה האטות משמעותיות בדרכה. מעניין של מילי-שניות בודדות, הדרך התארכה משמעותית בגלל כל העצירות והפיתולים האלה.
השרת, בהנחה שהוא זמין ושהבקשה של הגולש לגיטימית, יענה על הבקשה בחיוב וישלח את הנתונים שהגולש ביקש. תשובתו של השרת (הנתונים) תעבור את אותה הדרך שעברה הבקשה בדרך חזור.
רשתות CDN נוצרו על מנת להתמודד עם המרחק הזה, או יותר נכון, לקצר אותו משמעותית בעבור הגולש.
לכל ה"מסע" הזה שחבילת נתונים עוברת יש שם "מקצועי" – RTT (ר"ת של Round Trip Time), או זמן מסע מעגלי. RTT מתייחס לזמן שלוקח לחבילת נתונים (הבקשה) מהרגע שהיא יוצאת מהמשתמש, עד שהיא חוזרת אל המשתמש בצורת תגובה של השרת. היא נמדדת במילי-שניות.
למעשה, בדיקת פינג (ping) היא בדיקה משוערת של RTT. את הבדיקה ניתן לבצע באמצעות פקודה פשוטה בטרמינל בלינוקס או ב-cmd של ווינדוס (מקביל לטרמינל): המילה ping ואת שם האתר (או כתובת ה-IP).
לדוגמה: ping www.jetserver.co.il
רשתות אלה מורכבות משרתים הפזורים במקומות שונים בעולם. עליהם מאוחסן מטמון של חלקים מסויימים, לרוב הכבדים יותר, של מה שהשרת מארח (אתר, יישום וכדומה). הבקשה הנשלחת מהמכשיר של הלקוח מופנית על ידי שרת ה-DNS המקומי לשרת העברת התוכן הקרוב אליו. כך, מתקבלת תחלופת נתונים קצרה יותר, עקב הדרך הפיזית הקצרה יותר בין הלקוח לבין שרת העברת התוכן.
לצורך העניין, אם השרת המרכזי המאחסן אתר ממוקם בישראל, וג'וני מקליפורניה, ארה"ב, מנסה להיכנס לאתר, הוא יופנה על ידי שרת ה-DNS הרלוונטי לשרת העברת התוכן שממוקם בטקסס, ארה"ב, לבקש את הנתונים שהוא צריך, לפני (ובמקום) שיצטרך לעשות את כל הדרך עד לשרת המרכזי בישראל ובחזרה. כתוצאה מכך, תקשורת הנתונים בין ג'וני לבין האתר תהיה מהירה יותר.
מיקום
כדי לעבוד באופן אופטימלי ולהשיג זמני השהייה קצרים ככל האפשר, השרתים המרכיבים רשת CDN נתונה ממוקמים בנקודות אסטרטגיות ברחבי העולם. מיקומים אלה לרוב יהיו חוות שרתים שמשמשות (בין היתר) כ-"מחלפי אינטרנט", או IXP (ר"ת של Internet Exchange Points.
"מחלפים" אלה הם למעשה מבנים עם סוויצ'ים ונתבים שונים. ספקי האינטרנט של אותו איזור משתמשים בהם כדי "להעביר" ביניהם תעבורת רשת על מנת לקצר זמני חיבור ולהפחית בעלויות תפעול שונות.
אם כך, לא רק ששרתי הרשת להעברת תוכן נמצאים במיקום קרוב יותר לגולשים. המיקום האסטרטגי שלהם מאפשר להם להיות יותר זמינים לאותם גולשים ולהעביר להם את התוכן הנדרש אפילו מהר יותר.
יתרונות
היתרון הגדול והברור ביותר של רשתות CDN הוא כמובן קיצור זמני טעינת האתר או היישום של המשתמשים בהם. לשם כך הן נועדו במקור, וניתן לראות איך זה מצליח להן בחיי היומיום – למעשה, מרבית האתרים והשירותים הגדולים משתמשים בהן. אנחנו, הגולשים והמשתמשים, זוכים לחיבור מהיר ורציף במקום "להתייבש" בהמתנה לרשימת השירים שלנו שתיטען בספוטיפיי, או בשיחות עבודה בלתי רציפות וקטועות דרך זום.
מלבד היתרון העיקרי – זמני טעינה מהירים יותר וזמני השהייה קצרים יותר, ניתן לייחס להן מספר יתרונות נוספים:
פחות עומס על השרת המרכזי
יותר תעבורה ושימוש משמעו יותר עומס על השרת המרכזי. הדבר נכון גם מבחינת חומרה וצריכת משאבים. חלוקת משאבים זו בין שרתים אומרת שעל השרת המרכזי יהיה פחות עומס. כלומר, לאתר/יישום יהיה יותר "מרחב נשימה". ליתרון הזה יש גם היבט אבטחתי, אבל נגיע לזה עוד מעט.
יותר רוחב-פס
מאחר וחלק מהתוכן של האתר "נמסר" לגולשים דרך שרתים אחרים, השרת המרכזי מתמודד עם פחות תעבורת נתונים. פחות תעבורת נתונים משמעו פחות צורך ברוחב פס. מלבד החיסכון בעלויות, משמעות הדבר היא שהשרת המרכזי יכול לקבל ולהוציא יותר נתונים בלי "פקקים" וצווארי בקבוק בדרך.
זמינות גבוהה (יותר) של תוכן
חלק מרשתות העברת התוכן (כמו הרשת של Cloudflare, שאנחנו באופן אישי מאוד אוהבים) מחזיקות במטמון מסויים שכולל דפי אתר אינטרנט שלמים. לרוב, מדובר בשניים או שלושה דפים שיהיו זמינים במקרה של תקלה בשרת הראשי. כך, במקרה של תקלה בתוכן, בעיית זמינות או אפילו קריסה מערכתית כוללת – שרתי CDN יכולים להיות המקור הזמין הבא. נציין שמדובר בתוכן מוגבל ושלא ניתן לשמור מטמון בצורת אתרים שלמים, כך שלא מדובר בגיבוי לאתר או לשרת. עם זאת, עדיפה גישה מוגבלת לתוכן מסויים מחוסר גישה בכלל, עד שהתקלה, תהיה אשר תהיה, תתוקן.
מהירות הטעינה של אתרים ושירותים היא קריטית להצלחה שלהם. יש לה השפעה ישירה על שני מאפיינים שמשפיעים על הצלחת אתר/שירות באופן ישיר:
חוויית המשתמש: בסך הכל, זה הגיוני שחוויית המשתמש משימוש באתר או שירות מסויים תושפע ישירות ממהירותו. דמיינו לכם את ההבדל בין עמוד שנטען תוך מספר שניות בודדות לבין עמוד המצריך קצת יותר מזה. מחקרים שונים, ביניהם The Need for Mobile Speed של גוגל, מצאו כי גולשים ינטשו אתר שלעמודים שלו לוקח יותר מ-3 שניות להיטען. חוויית המשתמש שלהם תיפגם עקב ההמתנה. לעומת זאת, אתר שנטען מהר יעודד גולשים לא רק להמשיך "לשוטט" בו, אלא לחזור אליו שוב.
דירוג במנועי החיפוש (SEO): אמנם מנועי החיפוש לא מספקים מידע מדוייק על מה נחשב מבחינתם למהיר ומה נחשב לפחות מהיר. אך כולם, בראשם גוגל, אינם מסתירים את העובדה שלמהירותו של אתר יש השפעה על דירוגו. למעשה, גוגל, בעלת מנוע החיפוש הגדול והמוכר בעולם, הכריזה על כך עוד ב-2010 – אתר איטי ידורג נמוך יותר, אתר מהיר ידורג גבוה יותר ואף יגיע לתוצאות הראשונות.
נכון, רשתות CDN אינן הגורם העיקרי למהירות הטעינה של אתרים ולתפקודם של שירותים ויישומים. עם זאת, הן גורם מכריע, גם עם החומרה ורוחב הפס שיש לחלק מהאנשים. בכך, הן מהוות יתרון נוסף למי שמשתמש בהן.
קצת (הרבה) על אבטחה
יכולנו לציין את האבטחה שרשתות CDN מספקות ברשימת היתרונות. אבל לדעתנו, מדובר בנושא קצת יותר נרחב. אמנם אבטחת סייבר אינה מטרתן העיקרית, אך מעצם פעולתן, הן מהוות רובד אבטחה נוסף, הן לאבטחת השרת המרכזי והן לבטיחות החיבור של המשתמשים אליו.
נטרול של מתקפות מניעת שירות (DoS ו-DDoS)
על רגל אחת, מתקפות מניעת שירות מתבצעות באמצעות העמסת נתונים או חיבורים ובקשות מצד התוקף על השרת. השרת המותקף מאט או קורס תחת העומס, כך שהוא לא יכול לתת שירות – לא לאתר אותו הוא מארח ולא ללקוחות לגיטימיים, כמו גולשים או משתמשים ביישום. רשתות CDN, מעצם תפקודן כ"שלוחות" של השרת הראשי, "סופגות" חלק מהבקשות הללו, ובכך מורידות עומס מהשרת הראשי.
SSL\TLS
TLS הוא פרוטוקול להצפנת תקשורת בין שני גורמים (לקוח ושרת) ברשת האינטרנט. הוא נועד, כמו קודמו (פרוטוקול SSL) למנוע "האזנות", זיוף ו"הזרקת" נתונים או שינוי למטרות זדוניות של המידע המוחלף בין השרת ללקוח.
שרתי CDN בעלי תעודת TLS למעשה מסייעים לביצוע התקשורת המאובטחת על גבי הפרוטוקול בכמה אופנים:
- מאפשרים שימוש במפתח ציבורי בלבד בתקשורת בינם לבין הלקוח, ללא הצורך לחשוף את המפתח הפרטי של השרת הראשי.
- מקצרים את תהליך "לחיצת היד", שכולל כמה "נגלות" הלוך-חזור של תקשורת נתונים עוד לפני שמתבצע חיבור בין השרת ללקוח.
- מהווים, כאשר גם הם בעלי תעודת TLS, שכבת הגנה והצפנה נוספת של התקשורת בין הלקוח לשרת הראשי.
WAF
חלק מרשתות העברת התוכן כוללות WAF. מערכת WAF היא חומת-אש שייעודה היחידי הוא לנטר תקשורת נכנסת ויוצאת אל ומיישומי רשת, לזהות דפוסים וחריגות ולנטרל איומים שונים במידת הצורך.
כך, למעשה, ניתן להרוויח באחת משתי דרכים:
אם על השרת הראשי לא מותקנת מערכת WAF (אם הוא מארח יישומי רשת, אנו ממליצים להשתמש באחת), שרתי המערכת להעברת נתונים "סוגרים את הפינה" ודואגים ליישם את שכבת האבטחה הזו, גם אם באופן חלקי, כתלות באילו נתונים הם מאחסנים.
ואם כן מותקנת על השרת הראשי מערכת WAF, הרי שששרתי המערכת להעברת תוכן מהווים שכבת הגנה נוספת.
אם אתם רוצים ללמוד עוד על מערכות WAF, כתבנו מאמר בנושא.
הסוואת כתובת IP
נכון, כתובת ה-IP של השרת נחוצה כדי שגורמים אחרים ברשת יוכלו לתקשר איתו. מעצם ידיעת שם הדומיין של אתר או שירות, ניתן לדעת מהי כתובת ה-IP של השרת שלו.
עם זאת, יתכנו מקרים בהם נעדיף שכתובת השרת הראשי לא תהיה ידועה. לדוגמה, כאשר אנו יודעים שהשרת שלנו מכיל נתונים רגישים או מאפשר גישה אליהם. אם ידיעה זו מלווה בידיעה שגורמים זדוניים שונים רוצים להשיג לנתונים אלה גישה, נעדיף שלא ידעו מהי כתובת ה-IP של האתר שלנו. שכן, ידיעת כתובת זו היא הצעד הראשון באיסוף מודיעין ובביצוע מתקפות.
שרתי CDN, מעצם פעולתם, "עומדים בדרך" בין השרת הראשי למשתמשים מרוחקים כדי למסור להם תוכן יותר מהר. כשגורם מרוחק כלשהו מקליד את שם הדומיין, שרתי ה-DNS באיזור יודעים "להפנות" אותו לשרת מסירת התוכן הקרוב אליו. בכך, למעשה, הוא יוצר קשר עם אותו שרת, ולא עם השרת הראשי. משמע, הוא מקבל את כתובת ה-IP של השרת למסירת התוכן. כך, ניתן למנוע את ידיעת כתובת ה-IP של השרת הראשי מגורמים עויינים ולהימנע ממגוון רחב של התקפות ואיומים.
למעשה, אין אפילו צורך ביותר מדי ידע. קיימים בשוק מספר כלים, כמו Shodan ו-Censys, שיכולים לאסוף ללא מאמץ מידע מודיעיני על פגיעויות ופרצות אבטחה שונות במכשירים ובשירותים שונים. כל שצריך הוא את כתובת ה-IP של המכשיר.
חסרונות
לכל מטבע יש שני צדדים, וכך גם לרשתות CDN. וכמו עם לא מעט דברים בלא מעט תחומים, חלק מהיתרונות שלהן מהווים מעין חרב פיפיות. אמנם חלק מהחסרונות הם פוטנציאליים בלבד או "מתקזזים" עם היתרונות, וחלקם משפיעים רק על חלק מהמשתמשים. עדיין, חשוב להיות מודעים אליהם.
עלות נוספת
נכון, בתחשיב הכולל, שימוש ברשתות העברת תוכן תסייע בחיסכון בכסף ואפילו תתרום להכנסת כסף נוסף. עם זאת, אלה יתבצעו בצורה עקיפה הודות לפונקציה שרשתות אלה ממלאות. באופן יותר ישיר, שירות זה לרוב יצריך תשלום נוסף על שירותי האחסון המוצעים. ולא רק השירות עצמו – תעודות SSL ותוספים שונים, בהנחה שאינם באים עם השרתים עצמם, יוסיפו גם הם למחיר.
עוד משהו לעשות
גם לחיסרון זה יש סייג – הוא תקף בעיקרו למערכות לא מנוהלות. בניהול עצמי, קונפיגורציה, אבטחה וכדומה יהיו באחריות המשתמש. המשמעות היא כמה שרתים שיש להקדיש להם תשומת לב וזמן, ולא רק שרת אחד (השרת הראשי).
אינם מיועדים לקהל יעד מקומי
בסופו של דבר, רשתות CDN נועדו לקצר את זמני החיבור לקהל שנמצא במרחק מה מהשרת המרכזי. לרוב, יהיה זה קהל שנמצא מחוץ למדינת המקור של אותו שרת. אם האתר או היישום של משתמש כלשהו מיועדים באופן בלעדי או עיקרי לקהל היעד ה"ביתי" – למשל, אפליקציה למציאת חניה פנויה בתחומי מדינת ישראל – הרי שרשת CDN יכולה רק לסבך את העניינים או להיות מיותרת.
פחות מתאימים לתוכן דינמי
תוכן דינמי, כשמו, הוא תוכן ש"זז" הרבה, או מאבד מהרלוונטיות שלו במהירות. למשל, מבזקי חדשות או עגלות מוצרים בחנויות אינטנרט. תוכן כזה אין צורך לשמור במטמון, שכן, הגישה אליו היא ברובה חד-פעמית או לטווח קצר בלבד. לכן, לפני שמשתמשים ברשתות CDN, כדאי להבין מהו היעוד של האתר או היישום ומה הם צריכים כדי לפעול באופן אופטימלי.
בגלל מגבלות של מיקומים גיאוגרפיים וקונפליקטים פוליטיים שונים, ייתכן שאנשים ממקומות מסויימים לא יקבלו גישה לאתר או ליישום שלכם. לדוגמה, אם גולשים מכתובות IP במדינה X חסומים לגישה לשרתים שממוקמים במדינה Y, והשרת להעברת התוכן הקרוב נמצא במדינה Y, הגולשים ממדינה X יחסמו. אמנם אין מדובר בתרחיש סביר מבחינת המון אנשים, שכן, מדינות כמו מדינה X אינם רבים, אך אנחנו אוהבים להיות יסודיים ותמיד יש מקרי קצה שצריך להביא בחשבון.
ה-CDN שלנו
אנחנו מספקים שירותי ניהול CDN ללקוחותינו, כאשר ניתן לבחור בין שתיים מהחברות הטובות ביותר בשוק כיום: Cloudflare ו-Sucuri. הבחירה ביניהן היא בידי הלקוח, וכל השאר – הגדרות, הטמעות, תמיכה וכדומה – עלינו.
שתי הרשתות כוללות כלי אבטחה והגנה מתקדמים, אך יש ביניהן כמה הבדלים:
רשת ה-CDN של Coudflare
הרשת מונה כ-330 (!) שרתים הנמצאים בחוות השרתים המרובות שלה. עצם עובדה זו מבטיח זמינות מכל מקום בעולם (כולל חלק מהמקומות הנידחים יותר).
למעשה, ניתן להריץ דרכה גם תוכן סטטי וגם תוכן דינמי.
זאת ועוד, הרשת משתמשת בשיטה שנקראת "מטמון מדורג" (Tiered Caching). בשיטה ה"רגילה", אם שרת העברת תוכן לא מכיל את המידע המבוקש על ידי הלקוח, הלקוח "יישלח" לשרת המרכזי, המרוחק, כדי למצוא את אותו מידע. בשיטת המטמון המדורג של Cloudflare, שרת העברת התוכן "ישלח" את הלקוח לחפש את המידע בשרת הקרוב הבא, וכן הלאה, עד שיימצא. מבחינת הלקוח, זה אומר סיכויים גבוהים יותר לתקשורת מהירה.
ברשימת היתרונות של רשתות CDN, הזכרנו פונקציה נוספת של רשת העברת התוכן של Cloudflare, המאפשרת גישה לחלק מדפי האתר כמטמון במקרה שהשרת הראשי או התוכן עליו איננו זמין.
פונקציה זו נקראת Always Online וניתן לקרוא עליה כאן.
רשת ה-CDN של Sucuri
בעלת כמות שרתים יותר מצומצמת – 13 "בלבד" – עם קצת יותר התמקדות באבטחה. הרשת מגיעה עם WAF "מובנה" לשרתיה (בניגוד ל-Cloudflare, המאפשרת להוסיף WAF בתשלום נוסף).
יתרון נוסף של Sucuri הוא שהמערכת שלה מותאמת לפלטפורמות שונות, כמו ג'ומלה (Joomla), וורדפרס (WordPress) ומג'נטו (Magento).
לסיכום
קצת הארכנו בדברים, אבל כמו בכל דבר, חשוב לנו להציג תמונה מלאה ככל האפשר.
אין ספק בתועלות הרבות שמתקבלות משימוש ברשתות CDN.
הן מקצרות את זמני התקשורת בין השירות שעל האתר הראשי לבין המשתמש או הגולש, כאשר מדובר בכאלה הממוקמים רחוק מהשרת הראשי. אם מדובר באתר או שמתבסס על לקוחות או מנויים כלשהם ברמה גלובלית, כמו חנות אינטרנטית או תוכנה כשירות (SaaS), חיבור מהיר יתרום לחוויית משתמש חיובית ולדירוג גבוה במנועי החיפוש, ואם מדובר בפורטל או פלטפורמה המיועדת לעובדים מרוחקים, הרי שהעבודה תוכל להתבצע במהירות וביעילות רבות יותר.
רשתות להעברת תוכן מסייעות גם לאבטחה בלא מעט דרכים. בין דרכים אלה ניתן למנות הורדת עומס מהשרת הראשי, מניעת הסיכוי להצלחת מתקפת מניעת שירות, הענקת תעודות TLS\SSL, ולפעמים הן אפילו מגיעות עם מערכות WAF.
עם זאת, יש לשקול את הצרכים והמטרות לפני השימוש בכלי מועיל שכזה, מפני שלא כל אחד צריך אותו. אם השירות שלכם מתבסס על לקוחות או משתמשים בתוך ישראל בלבד, או שממש אין לכם צורך בחיבור מהיר, ייתכן שלא תצטרכו אותן.
כמובן, הכל תלוי בראש ובראשונה בצרכים ובדרישות של הלקוח. אם הצרכים הללו כוללים הענקת חיבור מהיר למשתמשים ולקוחות מרוחקים, שימוש ברשתות CDN מומלץ מאוד.
למידע נוסף על רשתות CDN ועל שירותים נוספים שאנו מספקים, אתם מוזמנים ליצור איתנו קשר.