Jak przygotować witrynę na sporadyczne wzrosty ruchu?

Jak przygotować witrynę na sporadyczne wzrosty ruchu?

Niektóre strony internetowe generują niewielki lub średni ruch przez większą część roku. Czasami dochodzi jednak do nagłych wzrostów. Może się tak zdarzyć, gdy na witrynach oferowane są produkty lub usługi sezonowe – takie jak ozdoby świąteczne, kostiumy kąpielowe, czy wakacyjne wyjazdy. Duża liczba odwiedzających stronę w takich okresach może nawet powodować jej awarie. Na szczęście istnieje możliwość takiej konfiguracji serwerów, aby były w stanie obsłużyć sporadyczne wzrosty ruchu. Pokażemy Ci skalowalne i opłacalne rozwiązanie, które wdrożyliśmy w jednym z naszych projektów.

Czy przejście na hosting dla witryn o dużym natężeniu ruchu jest konieczne?

Wzrost ruchu na Twojej stronie internetowej to coś, co – jako jej właściciel – zdecydowanie świętujesz. Ludzie są zainteresowani Twoimi produktami lub usługami, a to napędza sprzedaż. Jednak rodzaj używanej przez Ciebie infrastruktury serwerowej może nie być w stanie przetworzyć większej liczby zapytań, ponieważ jej podstawowe wymagania dotyczące hostingu były prawdopodobnie inne. Może wówczas dojść do awarii witryny, w efekcie czego możesz stracić wiele cennych transakcji. Konieczne będzie ponowne zastanowienie się nad hostingiem Twojej witryny. Nie musisz od razu wybierać drogich rozwiązań dedykowanych dla stron internetowych o wysokim natężeniu ruchu i płacić za nie nawet wtedy, gdy ruch na Twojej stronie nie jest duży.

Odpowiedzią na Twoje problemy będzie skalowalna i wysoce dostępna infrastruktura chmurowa. Będzie w stanie obsłużyć zwykły ruch na Twojej stronie przy minimalnych kosztach. Wydatki zwiększą się podczas wzrostu ruchu, ale wydajność nadal pozostanie bardzo wysoka, a witryna będzie ciągle dostępna dla odwiedzających.

Amazon Web Services

Jednym z rozwiązań chmurowych zapewniających elastyczność są Amazon Web Services wraz z ich opcjami Amazon Aurora i AWS AutoScaling. Pierwsza jest relacyjną bazą danych, zgodną z MySQL i PostgreSQL, stworzoną pod kątem chmury. Gdy natężenie ruchu wzrasta, strona internetowa nadal ładuje się szybko, ponieważ taka baza danych działa pięć razy szybciej niż zwykłe bazy danych MySQL. Dzięki skalowalności możesz dostosować ustawienia zarówno do mniejszego, jak i zwiększonego ruchu na stronie internetowej.

AWS AutoScaling przenosi skalowalność na wyższy poziom, ponieważ monitoruje witrynę lub aplikację i dostosowuje jej wydajność w celu zapewnienia stabilnego działania za najniższą możliwą cenę. Optymalizacja kosztów w tej usłudze oznacza, że płacisz jedynie za zasoby, których potrzebujesz w danym momencie. Gdy ruch na stronie spada, AWS AutoScaling automatycznie wyłącza dodatkowe zasoby związane z pojemnością, co zmniejsza Twoje wydatki.

Przyjrzyjmy się teraz, jak rozwiązania oferowane przez AWS mogą działać w praktyce, analizując stronę internetową 911day.org, którą zbudowaliśmy i przygotowaliśmy do radzenia sobie ze sporadycznym dużym wzrostem ruchu .

Zarządzanie wzrostem ruchu na stronie 911day.org

Fundacja MyGoodDeed oddaje hołd osobom zabitym i rannym w zamachach terrorystycznych z 11 września 2001 roku, zachęcając Amerykanów i wszystkich innych do robienia dobrych uczynków. Fundacja organizuje takie działania, jak projekty wolontariackie i dostarczanie posiłków potrzebującym, do których mogą dołączyć inne osoby, jak również zachęca do tworzenia własnych akcji.

Wyzwanie

Ruch na stronie internetowej 911day.org jest umiarkowany przez większą część roku. W miarę zbliżania się rocznicy zaczyna gwałtownie wzrastać. Szczyt następuje 11 września.

Dane Google Analytics dotyczące witryny 911day.org, pokazujące wzrost ruchu

Dane Google Analytics dotyczące witryny 911day.org, pokazujące wzrost ruchu

Wiedząc, że ruch znacznie wzrasta jedynie raz w roku, właściciele witryny nie chcieli utrzymywać infrastruktury dla dużego natężenia ruchu przez cały rok.

Rozwiązanie

Aby rozwiązać problem tej strony internetowej, stworzyliśmy dynamiczną, łatwo dostępną i skalowalną infrastrukturę chmurową w Amazon Web Services. Pozwala ona obniżyć koszty do minimum w okresach normalnego ruchu w witrynie. Kiedy ruch wzrasta, wydatki rosną, aby zapewnić stronie internetowej 911day.org najwyższą możliwą wydajność.

Szczegóły architektury

Jako eksperci od usług drupalowych, zbudowaliśmy witrynę 911day.org w aplikacji Drupal CMS, która wykorzystuje PHP i MySQL. Biorąc pod uwagę ten drugi, wybraliśmy Amazon Aurora – bazę danych zgodną z MySQL. Skaluje się automatycznie wraz ze wzrostem obciążenia, co było kluczowe dla tego projektu.

Przenieśliśmy kod strony do Amazon Elastic Compute Cloud (Amazon EC2) i umieściliśmy udostępnione pliki – takie jak multimedia, style i sesje – w Amazon Elastic File System (Amazon EFS). W ten sposób udostępnione pliki mogą być synchronizowane pomiędzy wieloma instancjami.

Architektura witryny jest zdefiniowana jako kod i zarządzana przez Terraform, narzędzie dla infrastruktury w postaci kodu. Pozwoliło nam to stworzyć skonfigurowane i gotowe do użycia maszyny wirtualne w kilka minut. Następnie podłączyliśmy maszyny do usługi Elastic Load Balancer, która równomiernie rozdziela ruch pomiędzy wszystkie maszyny.

W okresach zwykłego ruchu strona internetowa 911day.org korzysta z dwóch maszyn, co jest domyślnym ustawieniem. Poniżej możesz zobaczyć, jak wygląda cała architektura.

Architektura strony internetowej 911day.org w czasie regularnego ruchu

Gdy natężenie ruchu wzrasta, zwiększamy wartość zmiennej związanej z liczbą maszyn, a Terraform dostosowuje swoją konfigurację. W okolicach 11 września 2020 roku dodawaliśmy kolejne maszyny (aż do ośmiu), aby obsłużyć duży ruch. Oto, w jaki sposób zmieniło to architekturę witryny:

Architektura strony 911day.org podczas wzmożonego ruchu

Dzięki naszej konfiguracji infrastruktury AWS, strona internetowa 911day.org bezproblemowo obsługuje duży wzrost natężenia ruchu w dniu 11 września. Indywidualne rozwiązanie hostingowe okazało się najbardziej efektywne dla potrzeb fundacji MyGoodDeed.

Elastyczna i skalowalna infrastruktura

W przypadku sporadycznych wzrostów ruchu na stronie internetowej nie musisz martwić się kosztami nowej infrastruktury. Dzięki elastyczności i skalowalności rozwiązań chmurowych zapłacisz więcej jedynie wtedy, gdy wzrośnie obciążenie. Natomiast wysoka dostępność usług takich jak AWS pozwoli zapobiec awariom Twojej witryny w okresach zwiększonego ruchu. W ten sposób nie stracisz kolejnych odwiedzających ani cennych transakcji.

2. SEO dla strony internetowej na Drupalu