شبکه توزیع محتوای ستون چگونه کار میکند؟
اگرچه ممکن است ندانیم، اما هریک از ما بهصورت روزانه هنگام خواندن مقالهها بر روی سایتهای خبری، فروشگاههای آنلاین، هنگام تماشای ویدیوهای یوتیوب یا بررسی محتوای شبکههای اجتماعی، با شبکههای توزیع محتوا ارتباط برقرار میکنیم. اهمیتی ندارد که چه کاری انجام میدهیم یا از چه محتوایی استفاده میکنیم، در هرصورت، احتمالا پشت هر کاراکتر از یک متن، هر پیکسل از یک تصویر یا هر فریم از یک فیلم، شبکههای توزیع محتوایی وجود دارد که آن را به مرورگر موبایل یا کامپیوتر ما تحویل میدهند.
برای درک اینکه چرا شبکههای توزیع محتوا تا این حد مورد استفاده قرار میگیرند، ابتدا باید مسئلهای را که برای حل آن طراحی شدهاند، بشناسید.
مسئلهای که شبکههای توزیع محتوا حل میکنند «تاخیر (delay)» نام دارد. این مسئله در واقع همان تاخیر آزاردهندهایست که از لحظهی درخواست بارگیری یک صفحهی وب تا لحظهی ظاهر شدن محتوای آن بر روی صفحهی نمایش، رخ میدهد. اگرچه که این وقفه تحت تاثیر عوامل مختلفی قرار دارد اما درهمهی موارد، طول تاخیر تحت تاثیر فاصلهی فیزیکی بین شما و سرور میزبان وبسایت مورد نظرتان است. یکی از ماموریتهای شبکههای توزیع محتوا، کوتاه کردن فاصلهی فیزیکیست که به بهبود عملکرد و سرعت رندر سایت کمک میکند.
شبکهی توزیع محتوا، شبکهای از سرورهاست که به یکدیگر مرتبط شدهاند و هدف آنها توزیع هرچه سریعتر، ارزانتر، قابل اطمینانتر و امنتر محتواست. یک شبکه توزیع محتوا، بهمنظور بهبود سرعت و اتصال، سرورهایش را در نقاط تبادل بین شبکههای مختلف (لبهی شبکه) قرار میدهد.
این نقاط تبادل اینترنت (IXPها)، موقعیتهای اولیهای هستند که فراهمکنندگان اینترنت به آن متصل میشوند تا امکان دسترسی به ترافیک نشئتگرفته از شبکههای مختلفشان را برای یکدیگر فراهم کنند. یک فراهمکنندهی CDN، با داشتن اتصال به این موقعیتهای بسیار پرسرعت و به هم پیوسته، قادر به کاهش هزینهها و همچنین کاهش زمان انتقال دادههاست. یک شبکه توزیع محتوا با قرار دادن سرورها در نقاط تبادل اینترنت میتواند بهینهسازیهایی را در نقل و انتقال داده بین کلاینت و سرور رقم بزند. شبکههای توزیع محتوا، مراکز داده را در موقعیتهای استراتژیک قرار میدهند، امنیت را تقویت میکنند و بهگونهای طراحی شدهاند تا بتوانند انواع مختلف خرابی و تراکم اینترنت را از سر بگذرانند.
یک شبکه توزیع محتوا برای کاهش فاصلهی بین بازدیدکنندگان و سرور وبسایت شما، یک نسخهی کش شده از محتوای وبسایت را در موقعیتهای جغرافیایی مختلف (نقاط حضور یا points of presence یا PoPها) ذخیره میکند. هر PoP شامل تعدادی سرور کش (caching server) است که هرکدام مسئول توزیع محتوا به بازدیدکنندگان نزدیکشان هستند. در اصل، شبکه توزیع محتوا، محتوای شما را بهطور همزمان، در مکانهای مختلف قرار میدهد تا کاربران بتوانند از طریق نزدیکترین سرور به آن دست یابند. بهعنوان مثال، وقتی شخصی در شرق آسیا به وبسایت میزبانیشدهی شما در تهران دسترسی پیدا میکند، این کار را از طریق PoP محلی همانجا انجام میدهد. این، بسیار سریعتر از آن است که درخواستهای بازدیدکننده و پاسخهای شما، کل عرض اقیانوس هند را رفته و برگردند.
میتوانید یک شبکه توزیع محتوا را مانند زنجیرهای از فروشگاههای مواد غذایی تصور کنید. بهجای اینکه صدها کیلومتر راه طی کنید تا مواد غذایی را از مزارعی که در آن کشت میشوند خریداری کنید، میتوانید به نزدیکترین فروشگاه محلی بروید و مواد مورد نیازتان را خریداری کنید، احتمالا مسیری را برای رسیدن به فروشگاه باید طی کنید، اما قاعدتا این مسیر بسیار کمتر از مسیر تا مزرعه است. از آنجایی که فروشگاهها همان مواد غذایی مورد نیاز را از مزرعه دریافت و انبار میکنند، شما میتوانید برای خرید خود به جای چند روز فقط چند دقیقه صرف کنید. به همین ترتیب، CDN محتوای موجود را ذخیره میکند بهطوری که صفحات وب خیلی سریعتر بارگذاری میشوند.
هنگامی که یک کاربر محتوایی را از یک وبسایت که از سرویس شبکه توزیع محتوا استفاده میکند بازدید میکند، شبکه توزیع محتوا، محتوای مورد نظر را از سرور مبدا دریافت کرده و یک کپی از آن را بر اساس شرایطی، برای درخواستهای آینده ذخیره میکند. محتوای کش شده تا زمانی که کاربران آن را درخواست میکنند، در کش سرورهای شبکه توزیع محتوا باقی خواهد ماند.
زمانی که یک کلاینت، درخواستی را به سرورکش (chaching server) شبکه توزیع محتوا ارسال میکند و محتوای درخواستی در کش، موجود باشد، اصطلاحا cache hit اتفاق میافتد و بدین ترتیب شبکه توزیع محتوا، پاسخ کششده را به کاربر ارسال میکند. در این موارد پاسخ، مستقیما از سرور کش به کابر ارسال میشود و علاوه بر صرفهجویی در زمان، سرور مبدا (origin server) از درگیر شدن در فرآیند پردازش درخواست، مصون میماند.
زمانی که محتوایی برای اولین بار مورد درخواست قرار میگیرد، شبکهی توزیع محتوا تشخیص میدهد که نمیتواند از طریق سرور کش به آن درخواست رسیدگی کند. به این مورد cache miss گفته میشود. زمانی که cache miss اتفاق میافتد، شبکه توزیع محتوا تلاش میکند تا محتوای درخواستی را از نزدیکترین سرور کش دریافت کند. اگر سرورهای مجاور، محتوای درخواستی را داشته باشند، محتوا به اولین سرور کش ارسال میشود، در غیر این صورت، درخواست به لودبالانسر HTTP(S) خارجی ارسال میشود. پس از آن، لودبالانسر درخواست را به سرورمبدا مربوطه ارسال میکند. هنگامی که سرور کش، محتوا را دریافت کند، آن را برای کاربر ارسال میکند.
اگر پاسخ سرورمبدا به درخواست ارسال شده قابل کششدن باشد، شبکه توزیع محتوا، بهمنظور پاسخدهی به درخواستهای آینده، آن پاسخ را کش خواهد کرد. دادهای که از یک سرور کش به یک کلاینت منتقل میشود، cache egress نامیده میشود. دادهای که به یک سرور کش منتقل میشود، cache fill نامیده میشود. Cache fill میتواند از سرور کش یک شبکه توزیع محتوای دیگر و یا از یک سرور مبدا دریافت شود.
هیچ فرآیندی تحت عنوان تغییر مسیر URL (به اصطلاح URL redirection) انجام نمیشود. این به این معنی است که:
- چه شبکه توزیع محتوا فعال باشد و چه فعال نباشد، URLی که یک کاربر درخواست میکند، همان URL باقی میماند.
- حتی اگر cache hit اتفاق بیفتد، URLی که کاربر درخواست میکند، همان URL اولیه باقی خواهد ماند.
شبکهی توزیع محتوای ستون این امکان را برای شما فراهم میکند که بتوانید از طریق پنل، رفتار کش شبکه توزیع محتوا را بهراحتی و براساس نیاز خود تنظیم کنید. این سرویس ستون، از هدر استاندارد cache-control برای تنظیم رفتار کش، پشتیبانی کرده و همچنین امکان چشمپوشی از هدر cache-control سرور پشت شبکه توزیع محتوا و تعریف کامل رفتارCDN و رفتار کش از طریق پنل ستون را برای شما فراهم میکند.
نقشهای از پیش تعریف شدهی شبکهی توزیع محتوا
در سرویس مدیریت و احراز هویت (IAM) ستون، نقشهایی به صورت پیشفرض تعریف شده که برخی از آنها هم به طور خاص مربوط به یک سرویس هستند. در ادامه نقشهای مربوط به سرویس شبکهی توزیع محتوا به همراه تعریف هر نقش آمده است.