Главная » Хабрахабр » Про дешевые датацентры, РКН и защиту от DDoS

Про дешевые датацентры, РКН и защиту от DDoS

Иногда проект живет в недорогом зарубежном датацентре, попадает под ковровые блокировки Роскомнадзора, периодически оказывается под DDoS атаками, но при этом имеет терабайты данных и трафика.

Как с этим жить?

Преамбула

Не будем называть имя и страну, только некоторые технические данные:
50 Тб данных для хранения, ежемесячно обновляется порядка 100 Гб, «горячие данные» (к ним идет 95% запросов) — 200 Гб.
Средний трафик — 50 Тб/мес. У нас на поддержке есть небольшой фотобанк.

Для размещения фотографий несколько лет назад выбрали несколько серверов SX серии от Hetzner с большими дисками (для хранения ПД пришлось придумывать более сложное решение, но об этом в другой раз).

В Southbridge сомневались, что Hetzner подходит для такого проекта, но требуемый уровень доступности и качества связности достигался.

Плюс для такого проекта использование CDN окажется на порядок дороже, чем раздача статики с серверов в недорогом датацентре.

Фабула

Весной 18 года начались ковровые блокировки, и к маю они накрыли многих наших клиентов. Тут в нашей истории появляется Роскомнадзор, да не будет упомянуто его имя всуе.

Некоторые клиенты решили проблему с доступом к Hetzner, Amazon, MS Azure, GCE, Digitalocean кардинально: перенесли в Россию серверы целиком (привет, Selectel!), но для нашего героя, небольшого фотобанка, постоянно возить туда-сюда 50 Тб данных — слишком накладно, а оставлять серверы проекта в России после окончания блокировок мы не собирались.

Для больших и неадекватных проблем нужны небольшие и адекватные решения.

Решение проблемы

Смена диапазона ip-адресов помогала не на 100%, т.к. Например, использовать другие (незаблокированные) серверы или сервисы для фронтенд. Вдруг кто не знает, они не только защищают от DDoS атак (не так хорошо, как лучшие игроки этого рынка), но и дают CDN сервис (и делают это хорошо). РКН каждый день блокировал новые и новые IP-подсети, поэтому мы решили подключить проксирование через Сloudflare.com.

Это отличное решение проблемы, если используемые вами адреса Cloudflare не заблокированы )

После подключения CF мы увидели вот такую картину на графике подсчета трафика с одного из серверов (картинка из статистики Hetzner): Ок, включили — и начали мониторить стабильность работы и отдачу трафика.

Общий реальный трафик упал не в 3 раза, просто CF стал по-другому распределять трафик между серверами. Входящий трафик изменился в пределах погрешности (что подтверждает и график загрузки новых фотографий, для чего сделана отдельная метрика мониторинга), исходящий на этом сервере на момент подключения CF упал в 3+ раза.

Для примера, график по этому же серверу из нашей системы мониторинга (за 3 месяца, чтобы он был не слишком мелким):

И по одному из других:

CF сэкономил проекту часть трафика. Но общий трафик все же упал на 20%, т.е.

Средний latency увеличился, но эти графики мы не покажем.

В Европе и Северной Америке он действует уже намного эффективнее. Причина: у Cloudflare мало точек раздачи трафика в России.

В сервис загружаются новые фотографии, и мы мониторим их число (и входящий трафик). И параллельно с трафиком мы мониторим активность использования сервиса.

График за 3 месяца (апрель-июнь) с одного из серверов, обрабатывающих запросы по загрузке фото:

А вот еще один сервер:

Но контент при этом продолжал загружаться, сервис работал, катастрофического падения качества не произошло (по отзывам пользователей сервиса, разница в принципе не была заметна). Cloudflare начал распределять трафик по бэкендам несколько по-другому.

Риск получить в Сloudflare заблокированный адрес тоже есть, но его можно снизить, взяв платный тариф.
После завершения «ковровых блокировок имени РКН» мы отключили Cloudflare.

Каков итог?

  • За 5–20$/мес (в нашем случае было как раз 5$/мес) можно решить подобную проблему и не тратить тысячи долларов на аренду более дорогих серверов и перенос данных.
  • Даже для проектов с терабайтами трафика подходят бесплатные или почти бесплатные решения. Проверено на практике.

Как альтернатива:

  • DDoS-GUARD предлагает бесплатный тариф с проксированием трафика и защитой от DDoS-атак.
  • У нескольких провайдеров услуги по защите от DDoS была услуга бесплатной помощи при таких блокировках. (Кстати, мы тоже не брали дополнительные деньги за решение проблемы с блокировками).
  • Вы можете взять один из известных CDN сервисов: keycdn.com, cdn77.com, Akamai CDN, CDNVideo, Ngenix.net и др. Проблему защиты от блокировок для своих клиентов они решают сами. Но это а) дороже б) не решает проблемы отдачи не статического контента.
  • Можно подключить другой сервис проксирования и защиты от DDoS атак (мы много работали с Qrator и SkyparkCDN / G-Core Labs, например), но им нужно будет платить за каждый мегабит полезного трафика, и это будет действительно дорого.
  • «Свой незаблокированный frontend» можно развернуть у любого из провайдеров мира, при этом нужно выбрать незаблокированный диапазон адресов, и обеспечить хорошую связность между вашими серверами и серверами «фронтенда». Если вам всерьез понадобится этим заниматься — предварительно можно проверить адрес автоматически по списку или вручную здесь.

Лично я для подобных «фронтендов» рекомендую packet.net и servers.com — отличная связность и возможность взять сервер с почасовой оплатой.

Если что — я один из докладчиков «РедСлёрм». p.s. Приезжайте, будет интересно:
https://slurm.io/redslurm/


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

У нас DevOps. Давайте уволим всех тестировщиков

Можно ли автоматизировать всё, что угодно? Потом всех тестировщиков уволим, конечно. Зачем они теперь нужны, «ручного» тестирования не осталось. Правильно ведь? Здесь будут конкретные цифры и чисто практические выводы, как так получается, что у хороших специалистов всегда есть работа. Это ...

Современный PHP — прекрасен и продуктивен

Почти 8 месяцев тому назад я пересел с проектов python/java на проект на php (мне предложили условия от которых было бы глупо отказываться), и я внезапно не ощутил боли и отчаяния, о которых проповедуют бывшие разработчики на ПХП. И вот ...