DDoS и всплески трафика — как удержать сайт под нагрузкой

Как удержать сайт под нагрузкой: защита от DDoS на уровнях L3/L4 и L7, CDN и кэш как буфер, rate limit, автоскейл и мониторинг. Что настроить заранее и что делать во время атаки.

Всплеск трафика бывает добрым (реклама выстрелила, попали в топ) и злым (DDoS). Для сервера разница небольшая: в обоих случаях запросов кратно больше, чем он тянет, и сайт ложится. Разберём, как подготовить инфраструктуру заранее и что делать прямо во время атаки.

L3/L4 и L7: разные атаки — разная защита

Атаки бьют по разным уровням, и защита от них тоже разная:

  • L3/L4 (объёмные) — заваливают канал и сеть пакетами (SYN-флуд, UDP-флуд). Отражаются на уровне провайдера или платформы фильтрацией трафика ещё до вашего сервера.
  • L7 (прикладные) — маскируются под обычные запросы к тяжёлым страницам и API. Их сложнее отличить от людей; тут работают WAF, анализ поведения и лимиты.

Платформенные сервисы вроде Yandex Smart Web Security или защиты Selectel закрывают оба уровня и берут фильтрацию на себя — надёжнее, чем оборонять сервер вручную.

CDN и кэш как буфер под пиками

CDN — первая линия и от честного наплыва, и от L7. Запросы приходят на распределённую сеть точек, а не на ваш единственный сервер:

  • Закэшированная статика и страницы отдаются с edge, до бэкенда доходит малая часть запросов.
  • Чем больше кэшируется, тем выше «потолок» нагрузки, который сайт держит без падения.
  • Даже HTML можно кэшировать на короткие секунды — под пиком это спасает бэкенд.

Rate limit и автоскейл

Два инструмента на стороне инфраструктуры:

  • Rate limit — ограничение частоты запросов с одного IP. Защищает логин, поиск и API от перебора и простого флуда. В nginx — limit_req_zone.
  • Автоскейл — автоматическое добавление серверов под ростом нагрузки. Помогает от честных пиков, но от DDoS «масштабироваться» дорого и не всегда возможно — сначала фильтрация, потом масштаб.

Что делать прямо во время атаки

  1. Убедиться, что это атака, а не реклама: посмотреть источники и географию запросов в мониторинге.
  2. Включить режим «под атакой» или челлендж на CDN/в защите — отсекает ботов проверкой.
  3. Поднять агрессивность кэша: кэшировать больше страниц и дольше, чтобы разгрузить бэкенд.
  4. Ужесточить rate limit, при необходимости — временно закрыть тяжёлые эндпоинты.
  5. Не менять DNS впопыхах: смена записей размазана по TTL и мгновенного эффекта не даст.

Мониторинг и алерты

Реагировать вовремя можно, только если вы узнаёте о проблеме раньше клиентов. Минимум:

  • Аптайм-проверка извне с оповещением в мессенджер при недоступности.
  • Алерты по RPS, времени ответа и ошибкам 5xx — резкий скачок виден сразу.
  • Дашборд с трафиком по IP и странам, чтобы отличить атаку от честного наплыва.

Грабли

  • Защита «на потом»: подключать её под атакой поздно и нервно — настройте заранее.
  • Открытый реальный IP сервера в обход CDN — атакующий бьёт напрямую. Закройте доступ только через CDN/защиту.
  • Ставка только на автоскейл — под DDoS это счёт за трафик, а не решение.
  • Нет алертов — вы узнаёте о падении от клиентов, теряя часы.

Вывод

Устойчивость собирается заранее: фильтрация L3/L4 и L7 на платформе, CDN и кэш как буфер, rate limit, автоскейл и мониторинг с алертами. Тогда и рекламный наплыв, и атака проходят без падения. Если хотите подготовить инфраструктуру к пикам и защитить сайт, оптимизируем скорость вашего сайта — от диагностики до внедрения CDN и кэша.

Оптимизация скорости и CDN
Услуга по теме — обсудим ваш проект.