Use case

Jak zmniejszyliśmy koszty infrastruktury AWS o 50%

  • migracja
  • optymalizacja
  • automatyzacja
  • wydajność
POWRÓT

Branża

TSL (transport) + IT (aplikacja dla biznesu)

wyzwania

Optymalizacja wykorzystania zasobów i usług AWS w celu ograniczenia kosztów infrastruktury, przy zachowaniu jej stabilności i wydajności dostosowanej do potrzeb aplikacji.

Rozwiązania

  • AWS EC2 Spot Instances
  • AWS Eventbridge
  • AWS Lambda
  • AWS S3 Bucket

Korzyści biznesowe

  • Wsparcie w zakresie wyboru optymalnych kosztowo rozwiązań
  • Ograniczenie kosztów infrastruktury o ok. 50%
  • Automatyzacja procesów
  • Optymalizacja parametrów instancji
  • Plan rekomendacji i zalecanych wdrożeń w celu dalszej redukcji kosztów

Use Case optymalizacji kosztów w AWS

Projekt optymalizacji kosztów zrealizowany został dla firmy z branży TLS, która posiadała rozbudowaną aplikację w środowisku hyperscalera – Amazon Web Services. Argumentem, który skłonił organizację do skorzystania z usług wsparcia Oktawave było przypuszczenie o generowaniu zbyt wysokich kosztów utrzymania infrastruktury chmurowej.

Wyzwania

Głównym zadaniem, które firma postawiła przed naszym zespołem była redukcja kosztów infrastruktury w chmurze AWS. Działania w ramach optymalizacji miały nie tylko wpłynąć na obniżenie kwot miesięcznych faktur, ale także utrzymać dotychczasowy poziom wydajności. Celem było zachowanie pełnej stabilności infrastruktury i dostosowanie zasobów do potrzeb aplikacji w chmurze, ograniczając generowanie zbędnych i relatywnie wysokich kosztów środowiska.

W momencie rozpoczęcia prac nad projektem optymalizacji środowiska aplikacyjnego pojawiły się również inne wyzwania, związane m.in.:

  • z dyskami starej generacji o bardzo wysokiej pojemności, która wynikała z równie wysokich wymagań dla ich wydajności;
  • z systemem manualnego włączania i wyłączania niektórych instancji serwerowych, których użycie wymagane było tylko w czasie pracy developerów.

Do tej pory firma nie wykorzystywała funkcji automatyzacji tych procesów, co mogło spowodować ryzyko wystąpienia niepotrzebnych naliczeń. Przykładem może być hipotetyczna sytuacja, w której pracownik zapomni o wyłączeniu środowiska testowego po zakończeniu swojej pracy. W takim przypadku infrastruktura będzie uruchomiona przez całą noc bez potrzeby, generując przez wiele godzin wysokie koszty.

Rozwiązania

Zakres przeprowadzonych działań obejmował:

  • Migrację dysku typu GP2 dla instancji EC2 o pojemności 1 TB na mniejszy nowszego typu, z zachowaniem obecnych parametrów wydajnościowych - GP3 (80 GB, max. 250Mbit/s, 8000 IOPS z możliwością modyfikacji parametrów wydajnościowych);
  • Zmniejszenie rozmiaru dysku instancji bazodanowej poprzez migrację bazy danych na nową instancję RDS;
  • ECS Launch Type - zmianę Fargate Spot na EC2 Spot instances;
  • Konfigurację reguł lifecycle dla bucketów S3;
  • Optymalizację parametrów instancji EC2.

Opracowując dedykowany plan działań, w pierwszej kolejności wykonaliśmy analizę architektury środowiska produkcyjnego i developerskiego pod kątem optymalizacji kosztowej. Przedstawiliśmy Klientowi wnioski i rekomendacje w kilku wariantach wraz z informacją o poziomie estymowanej obniżki kosztów. Następnie wspólnie ustaliliśmy priorytety działań i sukcesywnie realizowaliśmy kolejne prace projektowe.

Dokładna analiza byłą podstawą do wskazania obszarów o największym potencjale do optymalizacji. Poprzez wdrożenie zaproponowanych rozwiązań udało się osiągnąć nowe parametry infrastruktury i tym samym odpowiedzieć na wyzwania postawione przed Klienta.

Działania rozpoczęliśmy od migracji dysku typu GP2 o pojemności 1 TB na dysk nowszego typu - GP3. W przypadku generacji GP2 tylko taka pojemność zapewniała wymaganą przez aplikację wydajność, jednakże zwiększała koszty. Dysk GP3 oferował pojemność 80 GB, maksymalną przepustowość 250 Mbit/s, 8000 IOPS z możliwością dalszej modyfikacji parametrów wydajnościowych. Operacja polegała na przeniesieniu danych do nowej instancji EC2 ze wskazanym dyskiem systemowym, co pozwoliło na znaczącą redukcję kosztów.

Kolejnym krokiem były zmiany w instancjach RDS, czyli zmniejszenie rozmiaru dysku poprzez migrację bazy danych na nową instancję. To działanie pozwoliło na obniżenie kosztów związanych z nieużywaną przestrzenią dyskową. Przeprowadzenie procesu migracji instancji bazodanowej RDS PostgreSQL na nową instancję z mniejszym dyskiem było kolejnym istotnym krokiem w procesie redukcji kosztów całej infrastruktury Klienta.

Następnie, w celu optymalizacji kosztów utrzymania aplikacji skonteneryzowanej w ramach usługi ECS Fargate Spot, podjęliśmy decyzję o migracji mniej krytycznych kontenerów do nowego klastra ECS i zmianie strategii alokacji zasobów. Główną korzyścią tego działania było znaczne obniżenie kosztów funkcjonowania klastra na własnych instancjach EC2 w porównaniu z droższym rozwiązaniem serverless. Ponadto, rozwiązanie umożliwiło samodzielne zarządzanie uruchomionymi grupami instancji w zakresie dostosowywania rodzajów i architektury maszyn w zależności od aktualnych potrzeb. Jednocześnie wdrożona została funkcja autoskalowania horyzontalnego, polegająca na dynamicznej zmianie parametrów grupy instancji w momencie, gdy aplikacja generowała większe obciążenie. Cały proces odbywał się “w tle”, czyli był transparentny dla użytkowników. Dzięki tego typu zmianom zużycie zasobów mogło utrzymywać się przez cały czas na optymalnym poziomie, wpływając jednocześnie na obniżenie miesięcznych kosztów chmury.

Do ograniczenia czasu pracy środowiska wykorzystaliśmy rozwiązanie oparte o AWS EventBridge i AWS Lambda. Konfiguracja tych usług umożliwiła wdrożenie procesu, który automatyzował włączanie i wyłączanie środowiska, zgodnie z opracowanym harmonogramem. W sytuacji, gdy środowisko po godzinach pracy nie było wykorzystywane, automat realizował funkcję „stop” dla określonych zasobów. Wyłączone w ten sposób zasoby były później automatycznie uruchamiane przed rozpoczęciem pracy developerów. Mechanizm został zaimplementowany zarówno na środowisku developerskim, jak i produkcyjnym, z uwzględnieniem rzeczywistego zapotrzebowania wybranych komponentów i funkcji aplikacji. Działanie miało na celu minimalizację zużycia, a tym samym poprawę efektywności kosztowej.

Strategia optymalizacji obejmowała również wdrożenie reguł zarządzających automatycznymi operacjami na obiektach znajdujących się w storage S3, czyli automatyczną zmianę klas przechowywania oraz usuwanie niepotrzebnych już obiektów. Wdrożenie reguł pozwoliło na znaczne ograniczenie kosztów przechowywania danych w Object Storage.

Ostatnim etapem w ramach planu redukcji kosztów była optymalizacja konfiguracji instancji EC2. W pierwszym kroku przeprowadziliśmy dokładną analizę względem rzeczywistych potrzeb Klienta. Wyniki pokazały, że parametry maszyn wirtualnych były o wiele wyższe względem historycznych metryk wykorzystania zasobów. W skrócie – instancje serwerowe zakupione na wczesnym etapie konfiguracji okazały się zbyt duże pod względem mocy obliczeniowej i pojemności. Z tego powodu istniała możliwość znaczącej optymalizacji poprzez skalowanie wertykalne w dół.

Okazało się także, że część zasobów praktycznie nie była wykorzystywana i można je było usunąć. Natomiast mniej istotne instancje pracujące w środowisku deweloperskim zostały przeniesione do EC2 Spot, przy zachowaniu aktualnych dysków systemowych EBS. Ponadto, przedstawiliśmy Klientowi propozycję długoterminowej rezerwacji zasobów w środowisku produkcyjnym (Amazon EC2 Reserved Instances).

W dalszej perspektywie nasze rekomendacje opierały się na pełnej konteneryzacji aplikacji i środowiska, a także zakładały migrację większości zasobów do klastra Kubernetes (AWS EKS). Każdy z tych scenariuszy został dokładnie oszacowany kosztowo, co dostarczyło Klientowi podstawę do estymacji potencjalnych oszczędności.

Korzyści

Wdrożenie kompleksowego planu optymalizacyjnego przyniosło znaczące korzyści biznesowe dla firmy z branży TLS. Kluczowym celem projektu była skuteczna redukcja kosztów infrastruktury w chmurze AWS przy utrzymaniu dotychczasowej wydajność aplikacji. Nasze działania koncentrowały się na optymalizacji dysków i instancji oraz automatyzacji procesów, takich jak włączanie i wyłączanie środowiska w celu minimalizacji kosztów utrzymania po godzinach pracy przedsiębiorstwa. Udało nam się osiągnąć założone cele względem znacznej redukcji kosztów infrastruktury chmurowej i utrzymania wysokiej wydajności aplikacji. Dodatkowo wprowadzenie rozwiązań, takich jak konteneryzacja środowiska, otworzyło przed firmą nowe perspektywy i umożliwiło elastyczne reagowanie na zmieniające się potrzeby biznesowe.

Rozwiązania

Przy realizacji projektu wykorzystano usługi:

CLOUD OPERATIONS TEAM


Amazon Web Services

info solution