CDN چیست و چگونه عمل میکند؟
این مفهوم خلاصهی عبارت «Content Delivery Networks» و به معنای «شبکه توزیع محتوا» است؛ اما دقیقاً این شبکه چهکاری را انجام میدهد؟ در این مقاله به بررسی عملکرد CDN و چند نمونه مشهورترین ارائهدهندگان آن میپردازیم.
مبانی CDN
CDN شبکهای از کامپیوترهایی است که محتوا را توزیع میکنند.
CDN درواقع، مجموعهای از سرورهایی است که ازلحاظ موقعیت جغرافیایی اطراف سرور اصلی ارائهدهندهی محتوا هستند و زمانی که کاربر برای محتوای مورد نظر خود، درخواست ارسال میکند بدون فوت وقت، از طریق نزدیکترین سرور، محتوای خود را دریافت میکند. هدف اولیهی این سیستم، صرفهجویی در وقت و بالا بردن سرعت پاسخ به درخواست کاربران است.
به سرورهای نزدیک به هم نیز «PoP» یا «Points of Presence» گفته میشود که محتوای قابل ذخیره را بهمنظور کاهش بار از سرور اصلی، کَش میکنند.
انواع مختلفی از CDN وجود دارند که سرویسهای متفاوتی را نیز ارائه میدهند و البته توپولوژی شبکههای آنها با یکدیگر متفاوت است. هدف از ایجاد CDN ها بهصورت پراکنده، در دسترس قرار دادن سرورهای متعدد در نقاط مختلف جهان است. CDN های ادغامی، امتیازات کمتری نسبت به دیگر CDN ها دارند، اما بزرگترین آنها برای دست یافتن به عملکرد و بازده بیشتر شبکه و البته مقاومت در برابر حملات DDoS ایجاد شدهاند.
انواع CDN
قبلاً گفتیم که هدف اولیه و اصلی این شبکهها، کاهش زمان بارگیری و بالا بردن سرعت توزیع محتواست؛ اما در این دنیای مدرن که حجم هرکدام از تصاویر حدود ۲ مگابایت و کتابخانههای جاوا اسکریپت حدود ۵۰۰ کیلوبایت است، بارگیری کامل هر سایت تقریباً ۳ دقیقاً زمان میبرد که امروزه کم کردن این زمان مورد بحث است. البته اهداف دیگری نیز از ایجاد انواع CDN وجود دارد که باگذشت زمان کاملتر میشود.
CDN های محتوا-محور
در ابتدا، این شبکهها تنها به محتواهای استاتیک یعنی HTML، CSS و JS اختصاص داشتند. در صورت ایجاد و آپلود محتوای جدید باید حتماً آن را برای شبکه تعریف میکردید، چراکه خود این شبکهها قدرت تشخیص زمان مناسب برای بروز کردن محتواها را نداشتند.
بعد از مدتها، متخصصان توانستند این وضعیت را بهبود بخشند و این ویژگی را ایجاد کنند که وظایف در شبکهها بهصورت خودکار انجام شوند. به این معنی که کاربر درخواستی برای یک URL به CDN ارسال میکند، سپس CDN، بهصورت خودکار، درخواستی برای URL وبسایت اصلی ارسال خواهد کرد و تمام پاسخهای دریافتی خود را کَش میکند.
علاوه بر این موارد، «در دسترس بودن» به یکی از مهمترین عوامل تبدیل شده است. امروزه، اکثر CDN ها از فعالیتهای اخیر وبسایتها کَش تهیه میکنند تا در صورت Down شدن سایت، محتواهای آن از دسترس کاربران خارج نشود و در واقع تا زمان برگشتن سایت به حالت اصلی، همهچیز طبیعی به نظر برسد.
همچنین، CDN های مدرن امروزی لایههایی را ارائه دادهاند که بهصورت خودکار عمل بهینهسازی را انجام میدهند، در واقع اندازهی تصاویر را بهصورت اتوماتیک تغییر داده و آنها را ذخیره میکند و در زمان نیاز طبق اندازهی درخواستی، آن تصاویر را ارائه میدهد. به این معناست که اگر وبسایت شما دارای تصویری با حجم ۲ مگابایت در هدر است و کسی با صفحهنمایش ۳۰۰ پیکسل برای مشاهده وبسایتتان درخواست ارسال کند، CDN یک کپی از تصویر با حجم kb۳۰ و اندازهی px۳۰۰ ایجاد کرده و از این پس آن را بهتمامی کاربران موبایل نمایش خواهد داد. این موضوع باعث بالا رفتن سرعت لود سایت میشود.
CDN های امنیتگرا
لایهی نهایی CDN ها، وظیفهی تأمین امنیت در برابر حملات دیداس و باتها را بر عهده دارد.
زمانی که CDN، خارجیترین لایهی زیرساخت و اولین دریافتکنندهی ترافیک یک وبسایت باشد پس میتواند خیلی سریع توسط سرورهای حفاظت در برابر حملات DDoS، از هرگونه اتفاقی جلوگیری کند.
علاوه بر این، CDN با بررسی کاربران متعدد میتواند IP های مشکوک، اسپمرها و حتی انواع خزندهها و رفتارهای آنها را نیز تشخیص دهد و در زمان مشاهدهی آنها بهسرعت از سایت در برابر خطرات آنها محافظت خواهد کرد.
زمانی که CDN به مشتریان اجازه میدهد گواهینامهی SSL خود را بر روی آن آپلود کنند به افراد پیشنهاد میکند SSL خود CDN را نیز نصب کنند؛ اما مزیتهای این SSL چیست؟
- زمانی که مشکلی در این گواهینامه به وجود میآید، CDN معمولاً خیلی سریع و پیش از آنکه اکثر کاربران متوجه حفرهی امنیتی شوند مسئله را حل میکند.
- سرعت ارتباطات با استفاده از آن بالاتر است و اگر وبسایتهای زیادی از CDN مشابه استفاده کنند از طریق SSL آن، ارتباطی معتبر و البته اعتمادی دوطرفه به وجود خواهد آمد و در این شرایط، دیگر نیازی به تکرار فرآیند ایمنسازی برای تکتک وبسایتهایی که از آن CDN استفاده میکنند نیست. تأثیر این امر بر روی کل فضای وب قابل مشاهده خواهد بود.
مشهورترین ارائهدهندگان CDN
کمپانیهایی از جمله Akamai، Cloudfront AWS، Cloudinary، Incapsula، MaxCDN، Fastly بزرگترین بازیگران این حوزه هستند.
در ادامه خدمات برتر هر کمپانی را با هم بررسی میکنیم:
مقابله با وب اسکرپینگ (استخراج داده از صفحات وب) و حملات DDoS
Incapsula در این مورد، بسیار قوی عمل میکند. این سرویس با داشتن دیتابیسی گسترده، نهتنها از ورود آدرس IP های پراکسی جلوگیری میکند بلکه الگوهای جستجوی باتها و اسکرپرها را نیز تشخیص داده و با آنها نیز مقابله میکند. Incapsula اکثر حملههای خودکار را در مسیر خودشان متوقف میکند.
اگر شما نیز وبسایت فروشگاهی دارید و نمیخواهید که موارد جزئی و لیستهای محرمانهی سایتتان توسط رقبا استخراج شود، این سرویسدهنده را انتخاب کنید.
سرعت و دسترسی جهانی
شبکه توزیع محتوای Akamai، به دلیل دسترسی بالا و فراگیر آن، مورد توجه فیسبوک نیز قرارگرفته است. مدل توپولوژی این شبکه بهصورت پراکنده است بهطوریکه حتی در نقاط دوردست نیز این شبکه قابلدسترسی است. با این سیستم حتی در مناطقی با اینترنت ضعیف، فرآیند توزیع بهخوبی انجام میشود. Cloudfront نیز در داشتن این ویژگی بعد از Akamai قرار دارد.
قیمت مناسب
از لحاظ قیمت، Amazon Cloudfront ارزانترین پلنها را ارائه میدهد. از نظر میزان دسترسی نیز بعد از Akamai قرار میگیرد که البته قیمتهای Akamai بههیچعنوان ارزان نیستند.
اگر به هزینهی کمتر فکر میکنید، این سرویسدهنده بسیار مناسب است.
جلوگیری از هات لینک کردن
هات لینک زمانی اتفاق میافتد که شخصی بهصورت مستقیم، قصد استفاده از تصاویر وبسایت شما را دارد. در واقع URL اصلی تصاویر شما را در سایت خود میگذارند و از پهنای باند شما برای این کار استفاده میکنند. این امر در حجم بالا تأثیراتی منفی بر روی سایتتان خواهد گذاشت. به این منظور کمپانیهای MaxCDN و KeyCDN برای مقابله با چنین تهدیداتی، اقداماتی را انجام دادهاند که با استفاده از سرویس آنها، افراد سودجو قادر به سوءاستفاده از محتوای سایتهای دیگر را نداشته باشند.
فرآیند راهاندازی CDN
معمولاً برای نصب و راهاندازی CDN، باید در پنل مدیریتی ریجسترار، یک سری تغییراتی را در برخی رکوردهای DNS ایجاد کرد.
گاهی اوقات، برخی وبسایتها زیردامنهای را به دامنهی اصلی خود اختصاص میدهند و محتواهای استاتیک خود را ازجمله تصاویر، کدهای جاوا اسکریپت و CSS را به آن اختصاص میدهند. اگر به کنسول دولوپر مرورگر خود و یا تب Network سایتهایی مثل فیسبوک در حین بارگیری توجه کنید، URL های زیادی را به همراه عبارت «cdn» خواهید دید. این امر به این معناست که چنین محتواهایی از سمت CDN بارگیری خواهند شد.
اما چرا تمام محتواها را در CDN قرار ندهیم؟ همانطور که گفتیم محتواهایی با حجم بالا تأثیری منفی بر لود سایت میگذارند و تنها با قرار دادن آنها در CDN مشکل کندی سایت نیز برطرف خواهد شد.
با مطالب گفتهشده در این مقاله و مقایسهی ویژگیهای هرکدام از ارائهدهندگان شبکه توزیع محتوا، میتوانید بهترین انتخاب را داشته باشید و با این کار، بار سنگینی را از روی سایت خود برداشته و کیفیت کار خود را بالا ببرید.