Optymalizacja serwera. CDN lekiem na całe zło?

Sieć CDN - Content Delivery NetworkPrzy aktualnych wysokich oczekiwaniach użytkowników, właściciele serwisów internetowych mają przed sobą nie lada wyzwanie. Komfort i płynność poruszania się po stronie to kluczowe zagadnienia dla sukcesu portalu. Optymalizując stronę www, nie można zapominać o optymalizacji serwera, od którego zależy całe powodzenie akcji promocyjnych.

Możliwości wykorzystania usługi CDN

Zwiększyć wydajność strony można na kilka sposobów, między innymi przy wykorzystaniu usługi CDN. Sieci CDN (content delivery network, czyli sieć dostarczania treści) funkcjonują na rynku już od kilkunastu lat. Bardzo wiele osób błędnie kojarzy je z usługami, które używane są tylko przez wielkie korporacje o globalnym zasięgu. O CDN myśli się jako o dodatku, który jest kompletnie nieistotnym z punktu widzenia mniejszych podmiotów działających lokalnie. Na szczęście powoli to błędne przekonanie zmieniane jest przez takie firmy jak: Cloudflare, czy też Incapsula, które pozwalają na testowanie sposobu działania sieci CDN. Oczywiście należy liczyć się z tym, że takie darmowe rozwiązania mają pewne limity i w większości nie posiadają wszystkich funkcjonalności. Niemniej, pozwalają na bezproblemowe sprawdzenie, jak zachowa się nasza strona i czy w ogóle zastosowanie CDN przyniesie jakikolwiek zysk.

Darmowe i płatne rozwiązania

Obecnie na rynku dostępna jest cała gama rozwiązań CDN. Począwszy od wyżej wspomnianych które dostępne są częściowo za darmo, poprzez droższe, ale wciąż z cenami przystępnymi dla mniejszych firm, aż po pełne rozwiązania stricte korporacyjne dla świadczących swoje usługi na całym globie. Wśród usługodawców CDN wyodrębniła się także pewna grupa która specjalizuje się we wspieraniu konkretnych typów CMS (np. Wordpress, Joomla!). Jej działania polegają na udostępnianiu odpowiednich wtyczek, dzięki czemu nawet niedoświadczony użytkownik nie będzie miał najmniejszego problemu z jej uruchomieniem. Tematem CDN może zatem zainteresować się każdy.

Szybkość ładowania strony

Głównym celem dla którego sieci CDN w ogóle zostały stworzone, jest przyspieszanie ładowania treści na stronach WWW (np. obrazki, skrypty js i inne dokumenty statyczne). Z taką usługą treści mogą ładować się szybciej, gdyż serwery usługodawcy CDN znajdują się bliżej odbiorcy niż sam serwer WWW. Przez bliżej należy rozumieć kombinację zarówno odległości geograficznej, jak i sieciowej. Przez odległość sieciową rozumiemy liczbę urządzeń aktywnych, przez które przechodzi pakiet danych, tzw. hopów, a która wpływa na czas odpowiedzi serwera (im więcej hoopów tym potencjalnie jest on większy). Dzięki temu, że obsługę części ruchu przejmują na siebie serwery CDN, możemy zaobserwować zmniejszenie obciążenia serwera źródłowego. Będzie to dotyczyć głównie zapotrzebowania na transfer. Nasz serwer będzie odpytywany o dokumenty przeważnie raz na jakiś ściśle określony czas. Pozostałe wywołania będą już wysyłane tylko z serwerów naszego usługodawcy.

W dalszej kolejności będzie to zmniejszenie obciążenia procesora. Dlatego, że wywołania plików statycznych mają dużo mniejszy udział w całkowitym obciążeniu procesora. Najczęściej odebranie żądania i wysłanie na nie odpowiedzi zajmuje ok. 1 milisekundy, podczas gdy wywołanie np. skryptu PHP zajmuje od kilku do często kilkuset milisekund. Przy prawidłowej konfiguracji nasz źródłowy serwer powinien zajmować się w zasadzie tylko i wyłącznie wywołaniami generującymi treści dynamiczne.

Bezpieczeństwo strony z CDN

W obecnych czasach CDN to także, a być może nawet przede wszystkim, ochrona przed atakami DDoS. Większość systemów dostarczania treści automatycznie przeprowadza mitygację tego typu ataków, często nie dając nam żadnej kontroli nad tą funkcjonalnością. Nie stanowi to jednak problemu. Wręcz przeciwnie… Należy jednak pamiętać, że użycie CDN w celu ochrony przed atakami DDoS bez zmiany adresu naszego serwera może być bezcelowe. Jeśli atakujący zna nasz oryginalny adres IP, jest już w stanie przeprowadzić atak bezpośrednio na nasz serwer.

Opcją dostępną w zasadzie tylko w płatnych planach jest firewall aplikacyjny. Niezaprzeczalnie jego wadą jest brak dostępności w darmowych rozwiązaniach. Ale… nie ma nic za darmo. Jak wiadomo prowadzenie biznesu wiąże się z ponoszeniem kosztów i odpowiednimi inwestycjami, które przyczyniają się do jego rozwoju. Brak zabezpieczeń to znaczne ryzyko, szczególnie w obecnych czasach. Dlatego warto postawić na firewall. Pozwala on na zatrzymywanie dobrze znanych ataków (co może być pomocne, gdy używamy popularnych rozwiązań CMS typu Wordpress, Joomla!), jak i ataków których nie przewidzieli autorzy oprogramowania, a które są uniwersalne dla każdego typu strony (np. próby zgadywania haseł, wgrywanie plików z backdoorami). Nie ciężko znaleźć przykład, który pokazuje skalę zagrożenia. Pod koniec 2017 roku miał miejsc największy atak Brute Force, w ciągu jednej godziny zaatakowanych zostało aż 14 milionów serwisów. Według przypuszczeń WordFence atak mógł mieć związek z wyciekiem miliarda haseł.

Przy użyciu firewalla aplikacyjnego możliwe jest zablokowanie wykrytej podatności nawet w sytuacji, gdy nie ma jeszcze oficjalnej poprawki bezpieczeństwa. Jednym z dodatkowych efektów jego działania jest częściowe odciążenie naszego serwera poprzez blokowanie wcześniej wspomnianych ataków brute force, które potrafią generować bardzo duże obciążenie. Z obserwacji specjalistów z Centrum Danych Kei.pl wynika, że za ponad połowę nagłych przekroczeń obciążenia odpowiadają botnety, które próbują co kilka dni zgadywać hasła i tak do skutku.

Lokalizacja serwera - jak duże ma znaczenie?

Popularne jest także używanie CDN do ukrycia informacji o miejscu utrzymywania swojego serwera. Poza zamaskowaniem faktycznego IP pod którym działa serwer, można użyć serwerów DNSów wybranego operatora, dzięki czemu potencjalni atakujący nie są w stanie zlokalizować miejsca kolokowania naszego serwera (np. przez korelację faktu gdzie zakupiona jest domena i gdzie znajdują się serwery DNS obsługujące ją, gdzie często może to być nasz własny serwer DNS) przez co nie są oni w stanie przeprowadzić bezpośredniego ataku. Konieczne jest oczywiście zadbanie aby nasza strona sama nie ujawniła tych danych. Bardzo często atakujący generują niepoprawne wywołanie (np. błędne dane w formularzach licząc na brak walidacji danych), które w wyniku wykonania zwracają stronę błędu na której mogą zostać ujawnione np. faktyczne adresy IP. Ukrywanie położenia serwera pozwala na umieszczenie swoich usług u mniejszego operatora. Takiego, który nie posiada infrastruktury odpowiedniej do odparcia ataków, ale dzięki czemu ma ofertę dużo korzystniejszą cenowo od większych serwerowni.

Akcje promocyjne i sezon wyprzedaży

Jedną z najczęstszych sytuacji w której CDN okazuje się bardzo pomocny jest przeprowadzanie akcji promocyjnych i kampanii reklamowych o większym zasięgu. Mimo iż nasz serwer bez problemu jest w stanie unieść codzienny ruch na stronie, najczęściej okazuje się, że nie jest on w stanie poradzić sobie w sytuacji zwiększonego zainteresowania. W rezultacie strona staje się niedostępna lub też ładuje się ekstremalnie długo. To całkowicie zniechęca użytkowników i w efekcie prowadzi do fiaska całej akcji. Sytuacji tej można zaradzić także poprzez zwiększenie zasobów serwera. W dzisiejszych czasach, gdzie królują rozwiązania chmurowe, jest to stosunkowo łatwe i szybkie. Jednak jeśli postawimy stronę na podstawowych usługach hostingowych nie otrzymamy takiej możliwości. Dlatego ważne jest, aby dla sklepów internetowych wybierać rozwiązania im dedykowane, które pozwolą na zabezpieczenie działania strony w każdej sytuacji.

Magiczna moc CDN?

Oczywiście CDN nie jest lekiem na wszelkie bolączki wydajnościowe i nie odczaruje strony, która nie jest odpowiednio zoptymalizowana. Może się okazać, że przy zwiększonym ruchu nie starcza zasobów serwera, aby odpowiednio szybko przetworzyć wszystkie żądania. Plusem jest działanie części CDN w zasadzie od razu z każdą stroną, co nie wymaga niemal żadnych przygotowań. Aby jednak wykorzystać wszystkie możliwości oferowane przez sieci CDN pewien nakład pracy jest niezbędny. Na szczęście, jeśli używamy popularnego rozwiązania typu Magento czy Wordpress można użyć odpowiednich wtyczek do współpracy z konkretnymi sieciami CDN, co znacznie ułatwia cały proces.

Jeśli nasza strona jest już dość popularna i na horyzoncie widać pierwsze oznaki przeciążenia, warto od razu porównać, jak zachowa się nasz serwer przy użyciu CDN. Wykorzystanie CDN może stać się bardziej opłacalne niż zwiększanie zasobów.

Marcin Szopa
Architekt IT w Kei.pl

Ocena: 5.0

Komentarze