Кэширование CDN: Стратегия распределения CloudFront

Эта статья объясняет, как мы используем CDN CloudFront для кэширования контента и повышения глобальной производительности.

Проблема: Глобальная задержка

Пользователи заходят на наш сайт со всего мира:

  • Индия: задержка 50 мс

  • США: задержка 200 мс

  • Европа: задержка 250 мс

  • Азия: задержка 150 мс

Обслуживание всего трафика из Индии приводит к медленной загрузке страниц для международных пользователей.

Решение: CDN CloudFront

CloudFront: Сеть доставки контента AWS

Пограничные локации: 400+ локаций по всему миру

Преимущество: Контент доставляется из ближайшей локации

Что кэшируется

Статические ресурсы (Долгий TTL)

Контент: Изображения, CSS, JavaScript, шрифты

TTL: 1 год

Путь: /s/*

Преимущество: Редко меняется, кэшировать агрессивно

Страницы товаров (Средний TTL)

Контент: Спецификации товаров, изображения

TTL: 1 час

Путь: /p/*

Преимущество: Баланс актуальности и производительности

Страницы запросов (Короткий TTL)

Контент: Результаты поиска, фильтрованные представления

TTL: 5 минут

Путь: /q/*

Преимущество: Частые обновления, короткий кэш

Статьи (Долгий TTL)

Контент: Техническая документация

TTL: 24 часа

Путь: /a/*

Преимущество: Редко меняется

Что НЕ кэшируется

Динамический контент:

  • Результаты поиска (/q/?q=<запрос>)

  • Персонализированный контент (корзина, аккаунт)

  • API-эндпоинты (/api/*)

Причина: Должен быть актуальным, пользовательским

Поведение кэша

Ключ кэша

CloudFront использует URL как ключ кэша:

Одинаковый URL: Обслуживается из кэша

Разный URL: Новая запись в кэше

Параметры запроса: Включаются в ключ (кроме параметров отслеживания)

Заголовки кэша

Исходный сервер устанавливает заголовки кэша:

Cache-Control: public, max-age=3600

public: Может кэшироваться CDN

max-age: Длительность кэширования в секундах

Инвалидация кэша

Вручную: Создать запрос на инвалидацию

Автоматически: Дождаться истечения TTL

Стоимость: Первые 1000 путей бесплатно в месяц

Смотрите: CACHE_INVALIDATION_RULE.md для политики

Защита источника

CDN защищает исходный сервер:

Поглощение трафика: CDN обрабатывает всплески трафика

Смягчение DDoS: Фильтрует вредоносный трафик

Ограничение скорости: Предотвращает перегрузку источника

Преимущество: Источник остается отзывчивым

SSL/TLS

Сертификат: AWS Certificate Manager

Протокол: TLS 1.2+

Преимущество: Зашифрованный трафик, бесплатный сертификат

Сжатие

Gzip: Включено для текстового контента

Brotli: Включено для современных браузеров

Преимущество: Более быстрая загрузка, меньшая пропускная способность

Географические ограничения

Нет: Доступно по всему миру

Преимущество: Глобальный охват

Мониторинг

Метрики:

  • Процент попаданий в кэш

  • Запросы к источнику

  • Процент ошибок

  • Задержка по регионам

CloudWatch: Сервис мониторинга AWS

Оптимизация затрат

Процент попаданий в кэш: Выше = ниже затраты

Запросы к источнику: Меньше = ниже затраты

Передача данных: Кэшированные = дешевле

Преимущество: CDN снижает затраты на инфраструктуру

Ссылки

Сервисы AWS

Связанные статьи

Итог

CDN CloudFront улучшает глобальную производительность:

Кэшируемый контент:

  • ✅ Статические ресурсы (TTL 1 год)

  • ✅ Страницы товаров (TTL 1 час)

  • ✅ Страницы запросов (TTL 5 минут)

  • ✅ Статьи (TTL 24 часа)

Не кэшируется:

  • ✅ Динамический поиск

  • ✅ Персонализированный контент

  • ✅ API-эндпоинты

Преимущества:

  • ✅ Меньшая задержка (пограничные локации)

  • ✅ Защита источника (поглощение трафика)

  • ✅ Смягчение DDoS

  • ✅ Снижение затрат (меньше запросов к источнику)

Функции:

  • ✅ Шифрование SSL/TLS

  • ✅ Сжатие Gzip/Brotli

  • ✅ Глобальная доступность

Эта стратегия CDN балансирует производительность, актуальность и стоимость.


← Назад к указателю документации