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

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


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



    Преамбула


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


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


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


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


    Фабула


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


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


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


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


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


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


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



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


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



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



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


    Средний 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/

    Southbridge

    265,00

    Обеспечиваем стабильную работу серверов

    Поделиться публикацией
    Комментарии 25
      0
      Хочется процитиовать: «Неправильно ты дядя Федор бутерброд ешь»…
        +1

        Насколько я помню, в период ковровых блокировок servers.com тоже прилично прилетало…

          +2

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

          +3
          А рефералка с трекингом конверсии на Селектел это нормально?
            0
            Селектел — партнеры Саусбриджа и спонсоры Слерма. Пишем об этом везде.
              +1
              А какое это имеет отношение к рефералу на ссылке?
                –1
                Рефералка от компании, не чья-то лично. У нас есть обязательства перед Селектел, поэтому ссылки с трекингом.
                  +1
                  А, понятно. Обязательств к читателям у вас нет. Nothing personal, just a business.
                    0
                    А можно в двух словах — чем рефералка ухудшает положение читателей? Мне казалось, что это чистое улучшение по Парето: читателям все равно, а нам хорошо.
                    Если я пойму вашу позицию, я исправлю ситуацию.
                      +2
                      Когда вы ставите реферальную ссылку — это момент, когда у вас (как у автора) возникает конфликт интересов с читателем. Эта ссылка точно должна была быть тут по нарративу, или она была добавлена потому, что была реферальной?

                      Например, представьте себе врача, который вам советует препарат с реферальной ссылкой. Он вам точно нужен? Именно этот? Или врачу важно «с реферальной ссылкой»?

                      Этика, этика.
                        0
                        Нарратив сам по себе вызван шкурными интересами. habr.com/company/mosigra кроме того, что интересно пишет, пиарит себя и свою компанию. Описанный конфликт интересов имманентен для хабра. Для меня единственное этическое требование к повествованию на хабре — это честность.

                        Вадим не советовал Селектел. Когда мы говорим про рекомендацию, можно усомниться в честности: я советую, потому что мне нравится решение, или я советую, потому что мне заплатили?

                        PS. Если врач советует вам лекарство без реферальной ссылки, он может получить взятку хотя бы в виде того, что фармпредставитель вывез его в хороший отель, где обстоятельно рассказал про свой препарат. Логичнее предположить, что статья проплачена Сloudflare, хотя на него вообще нет ссылки. :)
                          0
                          Вопрос этики каждый решает для себя сам. Окружающие могут транслировать только мораль.
                            0
                            Как раз с этическим давлением тут все в порядке: «Вот тебе минус, не хотим тебя читать». Меня удивляет избирательность срабатывания, примерно как с посадками за репосты. Но это моя личная проблема, желание везде найти логику и систему. :)
                              –1
                              Этическое давление не может происходить через «санкции» со стороны окружающих. Главная разница между этикой и моралью — мораль, это то, что навязывает общество (окружающие) человеку, а этика, это правила, которым человек подчиняется из собственных убеждений. Мораль может влиять на этику, но не посредством «вот минус тебе».
                                +2
                                Семантический разрыв: не получится обсуждать этику, мораль и нравственность, не убедившись, что все участники понимают под этими словами одно и то же.

                                Если мы определим этику «по википедии», то это вообще наука, исследующая мораль.
                                Если определим этику как внутреннее ощущение, что такое хорошо и что такое плохо, то действительно, «вопросы этики каждый решает для себя сам», но тогда странно выглядит отсылка к неэтичности реферальной ссылки.
                                Если же мы определим этику как инструмент сосуществования, искусство жить в одном пространстве, не поубивав друг друга, то адекватен и ваш упрек в неэтичности, и моя формулировка про этическое давление.

                                Амарао-сан, так получилось, что лет 10 назад я читал ваш ЖЖ, и с вашей же подачи познакомился с творчеством Розова. Мне нравится наша беседа, я люблю проверять и уточнять свои убеждения, но мне неловко втягивать вас в философскую беседу на ровном месте.

                                Что касается вашей претензии к реферальной ссылке, я понял ее смысл и ссылку убрал.

                                Если же вы хотите обсудить этичность/моральность маркетинга и рекламы, разницу между контентом и творчеством, конфликт интересов между читателем и писателем — я всегда к вашим услугам. :)
                                  +1
                                  Ты чего брюзжишь как недовольный старик?
                                  Ссылки — основа интернета.
                                  Ссылки с отслеживанием — основа маркетинга. В своём блоге могут делать что угодно, вставлять любые ссылки. Не нравится — не читай, не переходи. Развели тут слюни на ровном месте на 4 экрана.
                            0
                            Безотносительно прошлого комментария я грохнул ссылку, раз она вызывает такую реакцию.
                      0
                      Ссылку в таком виде я получил от Селектел и передал Вадиму. Она соответствует двум договорам между компаниями: партнерскому (реферал Саусбриджа) и спорсорскому (трекинг).
                        +1
                        Еще я бы хотел сказать спасибо и выразить уважение amarao за многочисленные статьи и созданные облачные услуги. Комментарий от такого человека дорогого стоит))
                    +1
                    Сам пользуюсь и обожаю cloudflare, но сама статья хоть и и понравилась, но содержит много букв, специально для TL;DR можно было бы добавить: «если вас заблокировал РКН, подключите за $20 cloudflare и будет вам счастье.»
                      0
                      Прошу прощения, если не понял статьи, но интересно, CF и кешировал картинки заодно, или только проксировал?
                        0
                        И кешировал, и проксировал.
                        У нас как раз были сомнения — достаточно ли хорошо работает проксирование в таком случае? Трафика много, и он идет не только от серверов к посетителям, но и от посетителей к серверам (заливка новых фотографий). Сработало неплохо.
                        0
                        Ещё есть бесплатная альтернатива в РФ, cloud-shield.ru. Когда мой клиентский хостинг попал под раздачу РКН (DigitalOcean), решал через данный сервис проблему обхода блокировок. Скорость очень порадовала!!!
                          0
                          Да, слышал про них) Когда-то размещал проекты на одной площадке с ними.
                          Вообще в Рунете есть не меньше 10 «живых» antiddos сервисов. Сталкивался, когда работал в хостинг-индустрии и хостинг получал по несколько десятков атак в месяц. Можно сделать обзор, если это кому-то интересно.
                            +1
                            Было бы очень здорово!

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое