Automatyczne skalowanie sklepu w chmurze AWS. Jak przygotować się na duży ruch?

Jednym z najpopularniejszych czynników obciążających nadmiernie serwer jest wzmożony ruch na stronie internetowej. Dzieje się tak na przykład podczas akcji promocyjnej w sklepie internetowym. Kiedy zaczynasz swoją przygodę z e-commerce, hosting współdzielony jest idealnym rozwiązaniem, bo prawdopodobnie nie potrzebujesz dużo miejsca na swoje dane. Co jednak zrobić w sytuacji, kiedy popularność Twojego sklepu wzrasta? Jak zabezpieczyć się przed wyczerpaniem zasobów i zapewnić witrynie ciągłość działania?

4 minuty czytania

Jednym z najpopularniejszych czynników obciążających nadmiernie serwer jest wzmożony ruch na stronie internetowej. Dzieje się tak na przykład podczas akcji promocyjnej w sklepie internetowym. Kiedy zaczynasz swoją przygodę z e-commerce, hosting współdzielony jest idealnym rozwiązaniem, bo prawdopodobnie nie potrzebujesz dużo miejsca na swoje dane. Co jednak zrobić w sytuacji, kiedy popularność Twojego sklepu wzrasta? Jak zabezpieczyć się przed wyczerpaniem zasobów i zapewnić witrynie ciągłość działania?

Posiadając sklep internetowy, nie możesz pozwolić sobie na przerwy w działaniu usługi. Każda minuta, w której sklep nie działa poprawnie, negatywnie wpływa na wizerunek Twojej marki, powoduje starty finansowe i negatywnie oddziałuje na wrażenia użytkowników robiących zakupy. 

W uproszczeniu możemy wyróżnić trzy podstawowe elementy, które mają wpływ na wysycenie zasobów na serwerze oraz przerwę w działaniu usługi. Czyli Twój sklep może przestać działać, bo…

  1. Po pierwsze, to naturalna konsekwencja rozwoju serwisu i jego rosnącej popularności. 
  2. Po drugie, może to być wynikiem nagłego wzrostu liczby użytkowników, na przykład w wyniku nasilenia działań promocyjnych (m.in. wprowadzenie nowego produktu do sklepu internetowego). 
  3. Po trzecie, problemy z wydajnością są często spowodowane przez niezoptymalizowane strony internetowe i skrypty.

Dlaczego e-commerce powinien być w chmurze?

Zwiększenie ruchu na stronie internetowej, jest czymś, na co czeka wielu właścicieli sklepów internetowych. Dlatego, rodzaj infrastruktury serwerowej, z której korzystasz, ma tak duże znaczenie. 

Niestety, w pewnym momencie hosting współdzielony jest niewystarczający i nie przetworzy tak dużej liczby zapytań ze względu na ograniczone zasoby. Po prostu na fizycznym sprzęcie nie ma wystarczająco dużo miejsca na dane, gdy liczba użytkowników czy transakcji niespodziewanie wzrośnie.  W konsekwencji Twój sklep internetowy przestaje działać. 

Co wówczas zrobić? Idealnym rozwiązaniem dla e-commerce i strony www ze zmieniającym się natężeniem ruchu na stronie internetowej jest skalowalna i wysoko dostępna chmurowa obliczeniowa. Poza skalowalnością zasobów ma ona jeszcze jeden kluczowy benefit ważny z perspektywy przedsiębiorców. Mianowicie płacisz wyłącznie za przetworzenie danych, które realnie zużyłeś. Czyli gdy w Twoim sklepie miało się dzieje, rachunki za utrzymanie IT będą niższe niż w momencie wzmożonej promocji i większej liczby transakcji. Oznacza to wysoką wydajność przy urealnionych kosztach. 

Czym jest i jak działa AWS AutoScaling?

Jednym z rozwiązań w chmurze Amazon Web Services, które pozwala na elastyczne zarządzanie zasobami jest AWS AutoScaling. Warto zwrócić na nie uwagę zarówno, jeśli jesteś developerem, jak i po prostu właścicielem sklepu, który szuka partnera potrafiącego poruszać się w tej technlogii.  

Dzięki AWS AutoScaling możesz dostosować ustawienia serwera w chmurze do konkretnej sytuacji związanej ze zwiększonym lub zmniejszonym ruchem na stronie sklepu (np. podczas promocji, wyprzedaży, świąt, itd.). 

Skalowanie witryny odbywa się na podstawie automatycznej weryfikacji ruchu na stronie internetowej. Przykładem może być strona oparta o popularny CMS WordPress, gdzie  w dzień ruch na stronie jest stosunkowo duży, natomiast w nocy znacznie mniejszy. Autoskalowanie pozwoli na zaoszczędzenie pieniędzy, gdyż płacisz za zasoby dopiero w sytuacji, kiedy będą faktycznie potrzebne, a przy tym nie musisz niczego ustawiać ręcznie. Takie rozwiązanie pozwala na zachowanie najwyższego poziomu wydajności także pod kątem czasu pracy poświęconego na opiekę nad witryną. 

Tip dla developerów: Instancja EC2 a AWS AutoScaling

W przypadku instancji EC2 masz możliwość skalowania w górę lub w dół zgodnie z wprowadzonymi wcześniej ustawieniami. Wszelkie parametry oraz maksymalna liczba instancji definiowana jest przez użytkownika. Taka konfiguracja pozwala na automatyczne zwiększenie instancji EC2 w przypadku zapotrzebowania, pozwalając tym samym na zachowanie poziomu wydajności. 

Wykorzystując autoscaling, to Ty definiujesz maksymalną, minimalną czy też oczekiwaną pojemność, która przedstawiona jest w liczbie instancji EC2. Zdefiniowanie maksymalnej oraz minimalnej pojemności to nic innego jak określenie górnej oraz dolnej granicy grupy autoskalingu. 

Skalowanie predykcyjne AWS ma możliwość zdefiniowania także przewidywanej pojemności. 

Jak to działa w praktyce? Codziennie skalowanie predykcyjne określa potencjalną wydajność w ciągu godziny, potrzebną na kolejne 48 godzin. W momencie, kiedy rozpocznie się każda kolejna godzina, wartość prognozowanej przepustowości jest ustawiana względem prognozowanej wydajności, jaka jest niezbędna w danej godzinie. Takie rozwiązanie powoduje, że: 

  1. W momencie, gdy prognozowana pojemność jest większa niż wskazany uprzednio zakres minimalny oraz maksymalny, to automatyczne skalowanie instancji EC2 nie dokonuje żadnej zmiany w limitach. 
  2. W sytuacji, gdy rzeczywista pojemność jest większa niż prognozowana, to automatyczne skalowanie instancji EC2 nie jest skalowane w grupie automatycznego skalowania.
  3. Kiedy, rzeczywista pojemność jest mniejsza niż prognozowana, to automatyczne skalowanie instancji EC2 dokonuje skalowania grupy automatycznego skalowania, doprowadzając do takiej sytuacji, aby żądana wydajność była równa tej prognozowanej. 

Warto podkreślić, że zasady skalowania predykcyjnego funkcjonują w trybie tylko prognoza lub prognoza i skalowanie – są tylko dwa tryby. 

Jaka jest główna różnica między skalowaniem Amazon EC2 a automatycznym skalowaniem AWS?

Ogólnie rzecz biorąc, automatyczne skalowanie AWS to uproszczona opcja skalowania wielu usług chmurowych Amazon w oparciu o cele użytkowania. Automatyczne skalowanie Amazon EC2 koncentruje się wyłącznie na instancjach EC2, aby umożliwić programistom skonfigurowanie bardziej szczegółowego skalowania. 

AWS AutoScaling jest w stanie chronić Cię, w sytuacji, kiedy maszyna z jakiegoś powodu jest niesprawna, a Twój serwis przestaje działać – istnieje możliwość automatycznego zastąpienia nową zdrową instancją lub dostawieniem nowej tak, aby zachować ciągłość działania. 

Czy wiesz, czym jest Amazon CloudWatch? To narzędzie, które wykorzystywane jest do monitorowania zasobów w chmurze AWS, jak również aplikacji, które są hostowane. Pozwala na dokładne podejrzenie statystyk, raportów oraz pomiarów.

Podsumowanie

Wiesz już, jak wykorzystać chmurę AWS, aby przygotować swój sklep na duży ruch. AWS AutoScaling jest doskonałym rozwiązanie. Przy nieregularnym wzroście ruchu na swojej stronie internetowej nie musisz martwić się kosztami nowej infrastruktury. To właśnie elastyczność oraz skalowalność, która występuje w rozwiązaniach chmurowych AWS powoduje, że płacisz tylko za wykorzystane zasoby. Dodatkowo wysoka dostępność usług takich jak AWS zapobieganie awariom Twojej witryny w okresach wzmożonego ruchu. W ten sposób nie stracisz więcej odwiedzających ani cennych transakcji.