Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

DDoS-Guard желісіндегі заңды трафик жақында секундына жүз гигабиттен асты. Қазіргі уақытта біздің барлық трафиктің 50% клиенттік веб-қызметтермен жасалады. Бұл өте әртүрлі және көп жағдайда жеке көзқарасты қажет ететін көптеген ондаған мың домендер.

Төменде біз алдыңғы түйіндерді қалай басқарамыз және жүздеген мың сайттар үшін SSL сертификаттарын шығарамыз.

Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

Бір сайттың, тіпті өте үлкен сайттың алдыңғы бөлігін орнату оңай. Біз nginx немесе haproxy немесе lighttpd аламыз, оны нұсқаулықтарға сәйкес конфигурациялаймыз және бұл туралы ұмытамыз. Егер бір нәрсені өзгерту қажет болса, біз қайта жүктеп, қайтадан ұмытып кетеміз.

Үлкен көлемдегі трафикті жылдам өңдегенде, сұраулардың заңдылығын бағалағанда, пайдаланушы мазмұнын қысып, кэштегенде және сонымен бірге секундына бірнеше рет параметрлерді өзгерткенде бәрі өзгереді. Пайдаланушы өзінің жеке кабинетіндегі параметрлерді өзгерткеннен кейін бірден барлық сыртқы түйіндерде нәтижені көргісі келеді. Пайдаланушы сонымен қатар API арқылы трафикті өңдеудің жеке параметрлері бар бірнеше мың (кейде ондаған мың) домендерді жүктей алады. Мұның бәрі Америкада да, Еуропада да, Азияда да дереу жұмыс істеуі керек - тек Мәскеуде бірнеше физикалық бөлінген фильтрация түйіндері бар екенін ескере отырып, тапсырма ең маңызды емес.

Неліктен бүкіл әлемде көптеген үлкен сенімді түйіндер бар?

  • Клиент трафигіне қызмет көрсету сапасы - АҚШ-тан келген сұраныстар АҚШ-та өңделуі керек (соның ішінде шабуылдар, талдау және басқа да ауытқулар үшін) және Мәскеуге немесе Еуропаға жіберілмеуі, өңдеу кідірісін күтпеген жерден арттырады.

  • Шабуыл трафигі локализациялануы керек - транзиттік операторлар көлемі жиі 1Тбит/с асатын шабуылдар кезінде нашарлауы мүмкін. Шабуыл трафигін трансатлантикалық немесе трансазиялық байланыстар арқылы тасымалдау жақсы идея емес. Бізде 1-деңгейдегі операторлар: «Сіз алған шабуылдардың көлемі біз үшін қауіпті» деген нақты жағдайлар болды. Сондықтан біз кіріс ағындарын олардың көздеріне мүмкіндігінше жақын қабылдаймыз.

  • Қызмет көрсетудің үздіксіздігіне қойылатын қатаң талаптар – тазалау орталықтары біздің жылдам өзгеретін әлемде бір-біріне де, жергілікті оқиғаларға да тәуелді болмауы керек. Бір апта бойы ММТС-11-ның барлық 9 қабатын электр қуатын өшірдіңіз бе? - ештеңе етпейді. Осы нақты жерде физикалық байланысы жоқ бірде-бір клиент зардап шекпейді және веб-қызмет ешбір жағдайда зардап шекпейді.

Мұның бәрін қалай басқаруға болады?

Қызмет конфигурациялары барлық алдыңғы түйіндерге мүмкіндігінше тез таратылуы керек (идеалдысы бірден). Сіз жай ғана мәтіндік конфигурацияларды алып, қайта құра алмайсыз және әр өзгеріс кезінде демондарды қайта жүктей алмайсыз - сол nginx процестерді тағы бірнеше минутқа (немесе ұзақ веб-розеткалар сеанстары болса, бірнеше сағатқа) өшіруді (жұмысшының өшіруін) сақтайды.

Nginx конфигурациясын қайта жүктеген кезде келесі сурет қалыпты болады:

Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

Жадты пайдалану туралы:

Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

Ескі жұмысшылар жадты, оның ішінде қосылымдар санына сызықтық тәуелді емес жадты жейді - бұл қалыпты жағдай. Клиент қосылымдары жабылған кезде бұл жад босатылады.

Неліктен nginx жаңадан басталған кезде бұл мәселе болмады? Ешқандай HTTP/2, WebSocket жоқ, ұзақ уақытқа созылатын ауқымды қосылымдар болмады. Біздің веб-трафиктің 70% HTTP/2 болып табылады, бұл өте ұзақ қосылымдарды білдіреді.

Шешім қарапайым - nginx қолданбаңыз, мәтіндік файлдарға негізделген фронттарды басқармаңыз және ықшамдалған мәтін конфигурацияларын транспацификалық арналар арқылы жібермеңіз. Арналар, әрине, кепілдендірілген және сақталған, бірақ бұл оларды трансконтиненталды етіп көрсетпейді.

Бізде өзіміздің алдыңғы сервер-балансеріміз бар, оның ішкі бөліктері мен келесі мақалаларда айтатын боламын. Оның жасай алатын ең бастысы - секундына мыңдаған конфигурация өзгерістерін қайта қосусыз, қайта жүктеусіз, жадты тұтынудың кенеттен ұлғаюынсыз және т.б. Бұл Hot Code Reload бағдарламасына өте ұқсас, мысалы, Эрлангта. Деректер гео-үлестірілген кілт-мән дерекқорында сақталады және алдыңғы жетектер бірден оқылады. Анау. сіз Мәскеудегі веб-интерфейс немесе API арқылы SSL сертификатын жүктейсіз және бірнеше секундтан кейін ол Лос-Анджелестегі тазалау орталығына баруға дайын. Егер кенеттен дүниежүзілік соғыс болып, бүкіл әлемде Интернет жоғалып кетсе, Лос-Анджелес-Амстердам-Мәскеу, Мәскеу-Амстердам-Гонконг- арналарының бірі ретінде біздің түйіндеріміз автономды түрде жұмысын жалғастырады және бөлінген миды жөндейді. Лос-Лос қолжетімді болады. Анджелес немесе GRE сақтық көшірмелерінің кем дегенде біреуі.

Дәл осы механизм бізге Let's Encrypt сертификаттарын лезде шығаруға және жаңартуға мүмкіндік береді. Бұл өте қарапайым түрде жұмыс істейді:

  1. Клиентіміздің доменіне сертификатсыз (немесе мерзімі өткен сертификаты бар) кем дегенде бір HTTPS сұрауын көрген бойда сұрауды қабылдаған сыртқы түйін бұл туралы ішкі сертификаттау орталығына хабарлайды.

    Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

  2. Егер пайдаланушы Let's Encrypt шығаруға тыйым салмаса, сертификаттау орталығы CSR жасайды, LE растау белгісін алады және оны шифрланған арна арқылы барлық фронттарға жібереді. Енді кез келген түйін LE-ден тексеру сұрауын растай алады.

    Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

  3. Біраз уақыттан кейін біз дұрыс сертификат пен жеке кілтті алып, оны майдандарға жібереміз. Тағы да, демондарды қайта іске қоспай

    Web HighLoad - ондаған мың домендердің трафигін қалай басқарамыз

  4. Қолданылу мерзімінің аяқталуына 7 күн қалғанда сертификатты қайта алу рәсімі басталады

Дәл қазір біз нақты уақытта 350 мың сертификатты айналдырып жатырмыз, бұл пайдаланушылар үшін толығымен ашық.

Серияның келесі мақалаларында мен үлкен веб-трафикті нақты уақыт режимінде өңдеудің басқа мүмкіндіктері туралы - мысалы, транзиттік клиенттерге қызмет көрсету сапасын жақсарту үшін толық емес деректерді пайдаланып RTT талдауы туралы және тұтастай алғанда транзиттік трафикті трафиктен қорғау туралы айтатын боламын. terabit шабуылдары, трафик ақпаратын жеткізу және біріктіру туралы, WAF туралы, шексіз дерлік CDN және мазмұнды жеткізуді оңтайландырудың көптеген механизмдері.

Сауалнамаға тек тіркелген пайдаланушылар қатыса алады. Кіру, өтінемін.

Сіз бірінші нені білгіңіз келеді?

  • 14,3%Веб-трафик сапасын кластерлеу және талдау алгоритмдері<3

  • 33,3%DDoS-Guard7 балансизаторларының ішкі элементтері

  • 9,5%L3/L4 транзиттік трафикті қорғау2

  • 0,0%Веб-сайттарды трафик бойынша қорғау0

  • 14,3%Веб қолданбалы желіаралық қалқан3

  • 28,6%Талдау мен басудан қорғау6

21 қолданушы дауыс берді. 6 қолданушы қалыс қалды.

Ақпарат көзі: www.habr.com

пікір қалдыру