CDN: что это простыми словами
Тяжесть сайтов увеличивается с каждым годом. Для сравнения: в 2018 году средний вес веб-страниц составлял 1,8 Мб, а в первом полугодии 2024 года достиг 2,3 Мб. При этом пользователи не спешат снижать требования к скорости загрузки сайта и покидают его, если контент не успевает появиться в течение 3 секунд. Согласно исследованиям Google, такое поведение характерно для 53% пользователей. Поведенческие показатели падают, а вместе с ними ухудшается ранжирование сайта в поисковых системах. Если тяжелый сайт находится далеко от части своих целевых посетителей, то для них время ожидания контента может достигнуть еще более критичных значений. Процент отказов продолжит расти с каждой дополнительной секундой до загрузки страницы. Для онлайн-бизнеса, который имеет клиентов по всей стране и за ее пределами, это грозит нулевой конверсией и потерей дохода. Решением проблемы медленной работы сайта является content delivery network (сеть доставки содержимого). В статье рассказываем о том, что такое CDN, когда использовать технологию и что выбрать в качестве альтернативы.
CDN (Content Delivery Network): определение
CDN (Content Delivery Network) — это сеть расположенных в разных географических точках серверов, которые помогают сайтам быстро доставлять пользователям контент и снижают нагрузку на основной сервер (хранящий оригинал данных). CDN-серверы являются дополнительными узлами хранения и передачи данных. В их кэше содержится статический контент. Когда запрос на загрузку сайта поступает от пользователя, который находится на большом расстоянии от центра обработки данных главного сервера, часть его выполняет CDN. Самый близкий к посетителю веб-ресурса CDN-сервер отдает браузеру неизменяемое содержимое сайта, освобождая от выполнения этой задачи основной сервер. Сокращается путь трафика, увеличивается скорость соединения между устройствами, снижается риск перегрузки сервера.
Как работает CDN
Сайт хранится на сервере, который еще можно назвать источником контента или просто — ориджином. Обычно запрос браузера обрабатывается сервером-источником напрямую. Это значит, что он самостоятельно отдает все файлы. Если пользователи веб-ресурса живут в разных уголках Европы, Азии и других частей света, ответ сервера должен преодолеть тысячи километров по оптоволоконным кабелям и несколько раз получать инструкции по прохождению маршрута от разных ретрансляторов. Если ориджин располагается в москвом ЦОД, то для жителей данного региона получение данных пройдет моментально. Расстояние от Москвы до Якутска — 8370 км, отдельные точки подключения могут располагаться еще дальше. Загрузка информации будет длиться несколько минут, дождаться результата смогут единицы пользователей с очень высокой мотивацией. Чтобы сократить время до получения контента клиентом, «тяжелую» часть сайта (бинарные файлы, тексты, изображения, стримы, скрипты) кэшируют на распределенных серверах CDN-сети. Позволить себе сеть CDN-серверов может не каждая компания, поэтому владельцы веб-ресурсов обращаются к CDN-провайдеру.
Распределение контента
Сервер в составе CDN является «точкой присутствия» (Point of Presence) проекта в той или иной локации. Провайдер услуги выбирается по наличию оборудования в нужных зонах. Региональные PoP также носят название edge-серверы. Они подключаются к ориджину и кэшируют данные, когда получают первый запрос от пользователя. Для него загрузка сайта может быть продолжительной. При дальнейших обращениях edge быстро отдает файлы браузерам, так как они уже есть в его памяти. Чтобы убрать неудобство для первых клиентов каждой PoP, владелец проекта может заранее прогреть CDN-сеть.
Для распределения контента между пользователя из разных регионов CDN-сеть использует две популярные технологии: GeoDNS и AnyCast.
GeoDNS. Когда веб-браузер обращается к DNS-серверу сайта, последний находит в пакете запроса публичный IP-адрес пользователя и по нему выбирает ближайшую к клиенту точку присутствия. В основе лежит geoIP — преобразование IP в географические координаты.
AnyCast. Технология использует протокол BGP, являющийся источником информации о соседний сетях и расстоянии до них. CDN устанавливает связь с несколькими маршрутизаторами, которые узнают и через какое-то время сообщают о том, какой из них может обеспечить кратчайший путь к нужному IP адресу, и направляют трафик к нему.
Умение определять IP-адреса пользователей позволяет устанавливать на CDN-сервере географические ограничения на доступ к веб-ресурсу из определенных географических зон.
Кэширование
Со временем устареть может даже статический контент. Чтобы пользователи видели сайт в его актуальном виде, устанавливаются правила кэширования (Caching Rule). Они определяют параметр Time to Live — время жизни. Он устанавливает продолжительность хранения информации в кэше до ного обращения edge к серверу-источнику. Перед новым кэшированием CDN-сервер проходит очистку и подготавливается к загрузке актуальной информации. Данный механизм обозначается термином Purge.
Шилдинг
Во время обновления информации в точках присутствия возникает повышенная нагрузка на основной сервер. Высокая интенсивность входящих запросов может вызвать его перегрузку. Чтобы защитить работоспособность проекта с широкой CDN-сетью, используют шилдинг. Между ориджином и PoP устанавливается дополнительный сервер, который первым проводит кэширование и раздает его результаты CDN-серверам. Промежуточный сервер выполняет функцию щита.
В каких случаях нужно подключать CDN
CDN помогает решать разные задачи проекта от сохранения репутации до экономии на аренде VPS/VDS. Разберем ситуации, в которых проекты не смогут обойтись без CDN:
- широкая география пользователей (характерно для интернет-магазинов, стриминговых платформ, игровых серверов, крупных новостных порталов, онлайн-банков);
- быстрое развитие и масштабирование проекта;
- потребность в стабильной работе веб-проекта (без перегрузки);
- повышенный риск DDoS-атак (атака на сеть серверов требует очень высоких затрат);
- обслуживание «медленных запросов» (наличие на сайте ресурсоемких программ и интерактивного медиаконтента);
- необходимость улучшения пользовательского опыта и индексации поисковыми роботами за счет быстрого ответа сервера;
- высокие затраты на хостинг (CDN позволяет выбирать менее мощный VDS).
Таким образом, подключение к CDN-сети положительно влияет продвижение проекта в Сети.
Преимущества использования CDN
Без CDN некоторые проекты не смогли бы выдержать конкуренции. Чем больше альтернативных предложений ваш клиент может получить на сторонних веб-ресурсах, тем ниже его мотивация оставаться на сайте с долгой загрузкой. Разберем основные преимущества CDN:
- Улучшение SEO — пользователь в считанные секунды получает контент, поисковые роботы учитываю это при индексации и лучше ранжируют сайт.
- Отсутствие потребности в приобретении и содержании дорогой ИТ-инфраструктуры — не нужно покупать дополнительные серверы и комплектующие к ним, создавать для их размещения ЦОДы.
- Повышение аптайма сайта — низкий риск DDoS-атак, отсутствие нагрузок, превышающих вычислительные возможности сервера, множественное резервирование информации.
- Широкий охват аудитории — пользователей привлекает высокая скорость ответа сервера.
С CDN сервер-источник имеет высокую доступность для своих пользователей.
Недостатки и альтернативы CDN
В некоторых случаях настройка CDN-сети может оказаться бесполезной и убыточной. Прежде чем обратиться к провайдеру content delivery network, убедитесь, что технология подходит вашему сайту. Если основным наполнением веб-ресурса является динамический контент, edge-серверы не смогут взять их на себя. Кроме того, обновление данных на CDN-серверах может занимать сутки. Для некоторых проектов такая задержка в отображении актуальной информации может быть критичной. Не подойдет CDN малому бизнесу, клиенты которого живут в одном регионе. Аренда дополнительных серверов не приносит пользы и не окупится.
Оптимизировать работу сайта в этих случаях можно более классическими методами и инструментами SEO:
- сжать фото, видео и иллюстрации на сайте (с помощью плагинов CMS, графических редакторов, онлайн-сервисов и т. д.);
- упорядочить подключение JS-скриптов и CSS-стилей;
- выбор более мощной конфигурации сервера для быстрой генерации HTML-страниц;
- проверить настройки систем управления базами данных и веб-приложений.
Заключение
CDN-сеть — полезный инструмент, который может сократить количество и длительность периодов в работе сайта, когда он не доступен для конечных пользователей. Он улучшает характеристики веб-ресурса, которые важны для удобного взаимодействия с ним. Однако он подойдет не всем проектам. Иногда сокращать скорость загрузки сайта лучше с помощью обычных SEO-инструментов.