Case Study

Nowa infrastruktura w AWS dla Aimcontrollers

13.03.2023
pan serwer Łukasz Kwaśniewicz
Udostępnij

Zbyt duża liczba użytkowników jednocześnie na serwerze, który nie był na to przygotowany może doprowadzić do jego przeciążenia, co spowoduje brak dostępności strony www, sklepu online czy innej aplikacji.

Co zatem zrobić, aby serwery wytrzymały wzrost obciążenia o ponad 1000%? Jak sprawić, aby podczas uruchamiania aplikacji prędkość była jak najszybsza dla osób z całego świata i jednocześnie zaoszczędzić na transferze?

O kliencie

Te pytania były postawione przed nami podczas współpracy z firmą AimControllers, dla której projektowaliśmy infrastrukturę. AimControllers to czołowy dostawa spersonalizowanych padów do gier na rynku europejskim i amerykańskim.

Firma specjalizuje się w ulepszaniu kontrolerów do gry. Projekty są realizowane zarówno dla profesjonalnych graczy, ale też dla zwykłych użytkowników. Wygląd padów można dostosować całkowicie pod swoje wymagania, ponieważ firma realizuje najbardziej szalone projekty. Dodatkowo AimControllers wyróżnia się na tle konkurencji, tym że oferuje dożywotnią gwarancję na swoje produkty.

Czy współpraca z influencerem przynosi korzyści?

Firma przygotowywała się kampanię marketingową, podczas której nawiązała współpracę z popularnym youtuberem. Zwiększająca się popularność ich firmy sprawiała, że tradycyjny serwer dedykowany przestał być wystarczający. Dodatkowo AimControllers posiadało plany na największą kampanię marketingową w swojej historii. Miała ona znacznie zwiększyć ruch na stronie. Była więc spora szansa, że , że obecna infrastruktura nie wytrzyma napływu dużej liczby użytkowników w tym samym czasie. Poprosili zatem nas o pomoc, a my podjęliśmy wyzwanie, aby pomóc AimControllers przygotować się na kampanię.

Kampania miała dotyczyć współpracy z PewDiePie, który w tamtym czasie był jednym z najbardziej znanych i popularnych youtuberów na świecie. Według rankingu magazynu “Time” PewDiePie w 2016 r. wbił się na listę 50 najbardziej wpływowych ludzi na świecie. Podstawą umieszczenia go w rankingu była liczba jego obserwujących w tamtym czasie, czyli ponad 97 mln osób.

Wyzwania

AimControllers przewidywało zatem, że ruch będzie ogromny. Dodatkowo mieliśmy ograniczony czas do kilkunastu dni. W związku z czym praca nad migracją serwisu trwała do ostatniej chwili.

Naszym zadaniem było nie tylko przygotowanie dopasowanej infrastruktury, ale również optymalizacja serwerów po największej fali ruchu, tak aby AimControllers nie ponosiło zbędnych kosztów.

Współpraca międzykontynentalna

Wyzwaniem był również międzykontynentalny rynek. Kampania odbywała się w Europie i Ameryce. Wykorzystaliśmy w tym momencie dwa regiony AWS. Każdy region AWS łączy się z rejonem geograficznym, a takie rozwiązania stosuje się w celu, aby zasoby obliczeniowe i pamięć masowa znajdowały się jak najbliżej użytkowników końcowych. Dodatkowo proponowane przez nas rozwiązanie musiało uwzględniać latencję w komunikacji dla Klientów z dwóch kontynentów.

Rozwiązanie

Audyt infrastruktury

Pierwszym etapem było przeprowadzenie audytu infrastruktury. Przeanalizowaliśmy obecne środowisko oraz historię aplikacji Klienta. Sprawdziliśmy takie parametry jak miejsce zajmowane na dysku przez wybrane dane oraz strukturę katalogową w jakiej utrzymywana jest aplikacja. Dodatkowo zanalizowaliśmy transfer zużywany przez ruch HTTP/S w wybranych domenach.

Przeniesienie do chmury

Po przeprowadzonym audycie zaproponowaliśmy Klientowi rozwiązanie, które sprawi, że aplikacja będzie działać nieustannie, bez względu na ruch jaki będzie generowany. Naszą propozycją było przeniesienie infrastruktury Klienta do chmury obliczeniowej Amazon Web Services.

AWS Amazon EC2

Nowo projektowana architektura została oparta o usługę Amazon EC2, które zapewnia autoskalowanie. Skalowanie opiera się na usłudze Amazon Cloudwatch, która przesyła informacje do grupy autoskalującej. Na podstawie wcześniejszych reguł i skryptów dostosowuje ona wtedy zasoby do aktualnego zapotrzebowania. Daje to pewność, że architektura jest optymalnie wykorzystywana, a infrastruktura będzie dostępna bez względu na liczbę użytkowników.

Amazon Aurora Serverless

Dodatkowo skorzystanie z jednej z usług AWS, czyli usługi Amazon Aurora Serverless sprawiło, że infrastruktura stała się skalowalna. Jednocześnie pozwoliła nam ona na zoptymalizowanie kosztów.

Usługa ta oferuje relacyjne bazy danych z autonomicznym skalowaniem. A ilość dostępnej mocy obliczeniowej (ACU) zależna jest od aktualnego obciążenia serwera. Wprowadzenie odpowiednich reguł pozwala na dodawanie i odejmowanie zasobów serwera w zależności od potrzeb. Według danych Amazon Web Services, usługa Amazon Aurora jest 5 razy szybsza, w porównaniu do standardowych baz MySQL.

Cloudflare

Podczas projektowania, w ramach infrastruktury skorzystaliśmy również z technologii Cloudflare. Działa ona jako CDN (Content Delivery Network), który ma zadanie cachować statyczne pliki. Oszczędziliśmy w ten sposób na transferze, który jest jedną z opłat przy korzystaniu z rozwiązań chmurowych.

Elastic Load Balancer

Kolejną usługą jaką użyliśmy była ELB (Elastic Load Balancer). ELB odpowiadało za równomierne rozłożenie ruchu w ramach posiadanych instancji oraz regionu, w którym przebywał dany użytkownik.

Amazon S3

Aby zapobiec ewentualnej awarii, zastosowaliśmy usługę Amazon S3, dzięki której możliwe jest szybkie przywrócenie infrastruktury do ostatniego zapisanego stanu. Wdrożona przez nas polityka Disaster Recovery daje poczucie bezpieczeństwa i pewność, że monitorowana infrastruktura będzie mogła wrócić do stanu sprzed awarii.

Amazon Web Services, a indywidualizacja Klienta

Ilość użytych usług może przytłaczać, jednakże wszystkie usługi działają w ramach Amazon Web Services i dzięki nim możliwe jest tak efektywne zarządzanie serwerami, bez względu na ruch na stronie oraz inne czynniki. Amazon AWS pozwala na indywidualne podejście do każdego Klienta poprzez dopasowanie usług zgodnie z potrzebami jakie posiada Klient. Ograniczamy w ten sposób niepotrzebne wydatki, ponieważ nie przepłacamy za całe pakiety, a samodzielnie dobieramy usługi.

Wartość dla klienta

Dzięki migracji do chmury publicznej AWS Klient był gotowy na duży ruch na swojej stronie. Dodatkowo usprawniliśmy działanie jego serwerów na co dzień, przez co działały lepiej bez względu na ruch na stronie internetowej.

Kampania marketingowa odniosła sukces. Strona sklepu online była przygotowana na duże ilości osób jednocześnie. Dzięki wcześniejszemu zaplanowaniu działań, Klient mógł cieszyć się całkowitą dostępnością serwera, bez zmartwień, że coś pójdzie nie tak jak powinno.

Statystyki serwerów

W okresie kampanii marketingowej serwery odnotowały zwiększoną, ponad 20-krotną ilość requestów. Dodatkowo liczba użytkowników wzrosła o ponad 1300%. Cloudflare pozwoliło z kolei zmniejszyć koszty transferu o około 95%.

Przyszłość infrastruktury AimControllers

Dzięki owocnej współpracy, serwery AimControllers były zabezpieczone na czas całej kampanii jak i po niej. Koniec kampanii wiąże się naturalnie ze spadkiem ruchu, w związku z czym infrastruktura została zeskalowana w dół, tak aby zaoszczędzić na wydatkach.

W razie potrzeby, w czasie przeprowadzania kolejnej kampanii marketingowej, istnieje oczywiście możliwość poniesienia infrastruktury do żądanego poziomu.

Chcesz poznać wszystkie szczegóły?

Jeżeli chcesz znać wszystkie konkretne działania, jakie wykonaliśmy podczas współpracy z AimControllers, zerknij do pliku niżej, gdzie możesz zobaczyć jak przebiegała nasza współpraca krok po kroku. Proces wdrożenia chmury AWS nie jest skomplikowany, gdy wiemy co chcemy osiągnąć. Warto podjąć ryzyko, aby szybko uzyskać zwrot z inwestycji.

Kontakt

Masz pytania? Skontaktuj się z nami