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 «масштабироваться» дорого и не всегда возможно — сначала фильтрация, потом масштаб.
Что делать прямо во время атаки
- Убедиться, что это атака, а не реклама: посмотреть источники и географию запросов в мониторинге.
- Включить режим «под атакой» или челлендж на CDN/в защите — отсекает ботов проверкой.
- Поднять агрессивность кэша: кэшировать больше страниц и дольше, чтобы разгрузить бэкенд.
- Ужесточить rate limit, при необходимости — временно закрыть тяжёлые эндпоинты.
- Не менять DNS впопыхах: смена записей размазана по TTL и мгновенного эффекта не даст.
Мониторинг и алерты
Реагировать вовремя можно, только если вы узнаёте о проблеме раньше клиентов. Минимум:
- Аптайм-проверка извне с оповещением в мессенджер при недоступности.
- Алерты по RPS, времени ответа и ошибкам 5xx — резкий скачок виден сразу.
- Дашборд с трафиком по IP и странам, чтобы отличить атаку от честного наплыва.
Грабли
- Защита «на потом»: подключать её под атакой поздно и нервно — настройте заранее.
- Открытый реальный IP сервера в обход CDN — атакующий бьёт напрямую. Закройте доступ только через CDN/защиту.
- Ставка только на автоскейл — под DDoS это счёт за трафик, а не решение.
- Нет алертов — вы узнаёте о падении от клиентов, теряя часы.
Вывод
Устойчивость собирается заранее: фильтрация L3/L4 и L7 на платформе, CDN и кэш как буфер, rate limit, автоскейл и мониторинг с алертами. Тогда и рекламный наплыв, и атака проходят без падения. Если хотите подготовить инфраструктуру к пикам и защитить сайт, оптимизируем скорость вашего сайта — от диагностики до внедрения CDN и кэша.