Content Delivery Network (CDN)
CDN (Сеть доставки контента) — сеть серверов, которые:
- распределены по разным регионам
- совместно работают для ускорения доставки контента пользователям
Основная задача: быстро и надёжно доставлять статические и медиа-данные (изображения, видео, стили, скрипты) независимо от местоположения пользователя.
Применение
Когда важно быстро и стабильно доставлять контент:
- в крупных веб-приложениях
- онлайн- магазинах
- стриминговых платформах и соц сетях и тд
Примеры:
Основные понятия
-
Ориджин (Origin): сервер, где хранятся первоначальные файлы или данные, которые распространяются через CDN. При первом запросе контент загружается с него. Может быть несколько.
-
PoP (Point of Presence) / Edge Node (пограничный узел): кэширующий сервер, размещенный близко к конечным пользователям. Узлы принимают и кэшируют запросы, уменьшают расстояние между пользователем и данными. Это повышает скорость доступа.
-
Purge (очистка): удаление контента на пограничных узлах для последующего обновления из ориджинов.
-
Restriction (ограничение): кто может / не мож ет получать доступ к содержимому из кэша. Например, разрешение запросов только из определенных доменных зон, регионов или групп IP-адресов.
-
Time to Live (TTL, время жизни): период кэширования на пограничном узле (Edge Node, PoP) до нового извлечения данных.
Виды контента
- Динамический: данные изменяются в реальном времени или по запросу пользователя (данные профиля, месторасположение, корзина покупок). Уникален для каждого пользователя, его нельзя кэшировать. Но CDN позволяет ускорять его передачу за счет:
- оптимальных маршрутов к ближайшему PoP-узлу
- шифрования / дешифрования SSL на PoP-узлах для сокращения времени обработки
- протоколов ускорения: HTTP/2 и QUIC
- Статический: неизменные в течение указанного TTL (изображения, CSS, JavaScript и тд). Кэшируется и доставляется с PoP.
Пример работы CDN
- Запрос контента (веб-страниц или видео).
- Браузер проверяет локальный кэш. Если данных нет / устарели, запрос идет к CDN, то есть к ближайшей точке присутствия (PoP) на основе местоположения пользователя и анализа сети.
- PoP проверяет, есть ли запрашиваемый контент в кэше:
- если контент уже есть, PoP отправляет его
- если нет, запрос передается на сервер ориджина (к бэкэнду) для получения контента
- PoP кэширует данные для последующих запросов.
- Пользователь получает контент с ближайшего PoP с минимальными задержками.
Кэширование в CDN
- Контент хранится в точках присутствия (PoP) рядом с пользователями.
- CDN-кэш обновляется через инвалидацию или истечение срока хранения (TTL).
Связь с бэкэнд и фронтенд кэшем:
- Бэкэнд может отправлять данные в CDN с TTL или правилами инвалидации в заголовке. При обновлении данных на бэке CDN-кэш может очищаться.
- Фронтенд: браузерный кэш использует HTTP-заголовки и часто кэширует содержимое после CDN.
Синхронизация: по правилам инвалидации и версиями URL для одновременного обновления всех уровней кэша — от бэка до фронта через CDN.
Балансировка нагрузки
Распределяет трафик между PoP-узлами и серверами внутри них.
Для направления запросов к ближайшему PoP-узлу используются способы:
- GeoDNS, который ориентируется на геолокацию пользователя
- Anycast, на сетевое расстояние до ближайшего узла
Внутри PoP-узлов локальный балансировщик распределяет трафик между серверами в узле, учитывает их загрузку и задержки.
Плюсы и минусы CDN
Плюсы:
- сокращение времени загрузки за счёт доставки контента с ближайшего сервера
- сеть серверов уменьшает нагрузку на основной сервер
- защита от DDoS-атак (проверка IP, ограничения по географическим запросам и тд)
Минусы:
- дорого при большом трафике
- настройка и поддержка времязатратна
- эффективнее со статикой, сложнее с динамическими данными
Подборка материалов
- CDN
- CDN: что такое и как работает технология
- Content Delivery Network (сеть распространения контента)
- Что такое CDN и как это работает?
- Что такое CDN: смотрим на примерах
- Что такое CDN, и как это вообще работает
- 10 интересных фактов про CDN и скорость сайтов
- Разбираемся в статусах кеша CDN
- CDN или Кэширование?
- Сказ о CDN, чтение на ночь
- Почему CDN не нужны: развенчиваем старый миф
- Работа Content Delivery Networks (CDN) и DNS
- Как выбрать CDN для доставки динамического контента и не облажаться: 8 условий и must-have технологий
- Неисповедимы пути контента или про CDN замолвим слово
- Знакомство с Content Delivery Network
- Как сделать CDN для своего сайта и почему это полезно для высоконагруженных проектов
- Как сделать и настроить свой CDN
- CDN для 70 000 сайтов одной кнопкой
- Создаём и настраиваем собственную CDN
- 6 бесплатных CDN для ускорения и улучшения безопасности вашего сайта
- 10 Лучших поставщиков CDN (Сравнение)
Видео
- Что такое CDN и как это работает
- Ускорение сайтов с помощью CDN - плюсы и минусы
- CDN
- Строим свой CDN с кешированием и GeoDNS [GeekBrains]