Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies. Sprawdź jej szczegóły Polityki Prywatności i Cookies.

Akceptuję arrow

Optymalizacja kosztów Google Cloud

17.11.2020 | LCloud
Udostępnij:

Optymalizacja kosztów infrastruktury chmurowej jest jedną z ważniejszych kwestii podczas projektowania rozwiązania cloudowego. Zastosowanie odpowiednich zasad dobrego projektowania pozwoli nie tylko na zapewnienie wysokiej dostępności rozwiązania, ale również na zaspokojenie popytu i optymalizację kontroli kosztów operacyjnych środowiska. 

Oszczędności na chmurze Google Cloud Platform

Monitorowanie kosztów to niełatwe zadanie, nawet jeśli wydaje się tak oczywistym, że płacimy za zasoby chmurowe dostępne na żądanie. By odpowiednio zoptymalizować wydatki, najpierw należy zrozumieć istotę generowania  kosztów. W tym celu przydatne będą narzędzia do optymalizacji kosztów chmury, które Google Cloud oferuje. Przydatne  są również rapoty rozliczeniowe, które dają wgląd w koszty korzystania z chmury. Istotną czynnością jest odpowiednie etykietowanie (tagowanie) przypisywanych kosztów dla poszczególnych działów. Użycie etykiet pozwala na stworzenie spersonalizowanych dashboardów z niezbędnymi informacjami. W celu dokładnego kontrolowania kosztów można również skorzystać z quotas, budżetów i alertów. Dzięki usługom Google Cloud mamy możliwość monitorowania trendów oraz prognozowanie ich w czasie, z uwzględnieniem możliwych różnic w budżecie.

Narzędzia do zarządzania kosztami chmury

Mając już wiedzę na temat narzędzi do optymalizacji kosztów infrastruktury chmurowej, kolejnym etapem jest zidentyfikowanie zasobów, które nie dostarczają wartości biznesowej dla organizacji. 

Identyfikacja maszyn wirtualnych i dysków

Możliwości optymalizacji kosztów jest wiele. Jedną z nich będzie identyfikacja bezczynnych maszyn wirtualnych (VMs) i dysków, i rezygnacja z zasobów, z których się nie korzysta. W tym celu powstała usługa Recommender, która identyfikuje nieaktywne maszyny wirtualne (VM) i dyski stałe, na podstawie wskaźników użycia. Warto pamiętać o konsekwencjach usunięcia zasobów, usunięcie instancji powoduje usunięcie bazowego dysku (dysków) i wszystkich jego danych. Dobrą praktyka jest wykonanie snapshota instancji, a alternatywą jest jedynie zatrzymanie maszyny wirtualnej, co z kolei pozwoli na zachowanie zasobów. Działania te pozwalają na optymalizację kosztów środowiska.

Działania na maszynach wirtualnych

Drugą kwestią jest planowanie uruchamiania i zatrzymywania maszyn wirtualnych. Systemy produkcyjne zwykle pracują w trybie 24/7. Ale już maszyny wirtualne w środowiskach developerskich, testowych lub osobistych są zwykle używane tylko w godzinach pracy. Toteż ich wyłączenie może przyczynić się do sporych oszczędności. Tutaj przyda się specjalnie przygotowane przez GCP Team rozwiązanie oparte na technologii Serverless, które pozwoli na zautomatyzowanie procesu automatycznego zamykania maszyn wirtualnych i zarządzania zasobami chmury na dużą skalę.

Typ maszyn wirtualnych

Trzecią kwestią jest odpowiedni typ (rozmiar) maszyn wirtualnych (VMs) – tzw. rightsizing. Custom Machine Types to funkcjonalność usługi Compute Engine, która pozwala na łatwe tworzenie typów maszyn dostosowanego do aktualnych potrzeb.

Weryfikacja instancji

Warto również rozważyć opcje instancji, które działają w przedziale 24 godzinnym i są z reguły do 80% tańsze niż rozwiązania długoterminowe. Preemptible VM, bo tak nazywa się ten typ instancji, nadają się do obciążeń odpornych na błędy, takich jak duże zbiory danych, genomika, transkodowanie nośników, modelowanie finansowe i symulacja. Dzięki odpowiedniemu planowi i narzędziu Flexible Resource Scheduling, można obniżyć koszty analizy strumieniowej i wsadowej.

Pamięć masowa, przechowywanie danych i zarządzanie kosztami, mogą zniknąć w całkowitym ujęciu kosztów podczas zarządzania zasobami chmury. Jednak usługi chmurowe, gdzie pamięć masowa jest rozliczana jako osobna pozycja, zwracanie uwagi na jej wykorzystanie i konfigurację może przynieść znaczne oszczędności. 

Proces optymalizacji kosztów chmury GCP

Oto 3 zasady, które mogą zostać zastosowane przez użytkowników chmury Google, które pomogą w zaoszczędzeniu miejsca, czasu i kosztów pamięci masowej. 

  • Klasy pamięci masowej w usłudze Google Cloud Storage.
    Każda z dostępnych klas posiada konkretny sposób użycia oraz cennik. Odpowiednie wykorzystanie klasy zgodnie z jej przeznaczeniem, pozwala zrealizować proces optymalizacji kosztów chmury publicznej. Dzięki wykorzystaniu np. typu coldline lub archiwalnej można znacząco obniżyć koszt przechowywania danych, do których dostęp jest potrzebny niezbyt często.
  • Polityki lifecycle.
    Odpowiednie wykorzystanie klas w połączeniu z automatyzacją zarządzania cyklem życia obiektów, może wpłynąć na obniżenie kosztów archiwizacji danych. Konfiguracja cyklu życia obiektów powinna być dostosowana klasą pamięci do obiektu, na podstawie zestawu warunków lub uwzględniać jego całkowite usunięcie, jeśli nie jest potrzebny. 
  • De-duplikacja.
    Kolejną kwestią generującą koszty chmury obliczeniowej jest duplikacja przechowywanych danych. Oczywiście są sytuacje, kiedy duplikacja jest wymagana np. przez zespół pracujący w różnych regionach, który potrzebuje natychmiastowego dostępu do danych. Rozsądnym jest więc tworzenie wieloregionowego bucketa,  zamiast wielu kopii w różnych zasobnikach. Warto również zapoznać się z wersjonowaniem obiektów w usłudze Google Cloud Storage. Odpowiednia konfiguracja zapobiega nadpisaniu lub przypadkowemu usunięciu danych.

Możliwości optymalizacji kosztów chmury publicznej jest wiele. Kolejną przydatną usługą optymalizacji kosztów jest BigQuery, która pozwala na nowoczesne podejście do analizy danych i odpowiednią konfigurację, a w efekcie umożliwia obniżenie kosztów. Pierwszą kwestią jest kontrola zapytań, która umożliwi monitorowanie naliczeń. W tym celu przydatnym będzie ustawienie limitów (maksymalnej liczby bajtów). Pozwoli to na nadzór, a przekroczenie ustalonego progu nie spowoduje dodatkowych kosztów chmury obliczeniowej – tak jak to jest zobrazowane na poniższym przykładzie:

Warto również skorzystać z  partycjonowania i klastrowania tabel. Partycjonowanie pozwala  podzielić tabelę na partycje na podstawie: czasu przetwarzania, daty, sygnatury czasowej lub kolumny zakresu liczb całkowitych. Wykorzystanie filtra Require partition pozwala upewnić się, że zapytania i zadania korzystają z tabel partycjonowanych. Dodatkowym atutem wykorzystania partycji w BigQuery jest możliwość obniżenia kosztów przechowywania danych o 50% za każdą partycję lub tabelę. Nieedytowalne tabele są przenoszone do pamięci długoterminowej, a samo przeniesienie tabeli czy partycji nie ma wpływu na wydajność, trwałości czy dostępność i pogorszenie funkcjonalności. W tym miejscu zwróćmy uwagę na przesył/wgrywanie danych. Dane do usługi optymalizacji kosztów – BigQuery mogą być wgrywane na dwa sposoby:

  • za pomocą wczytywania zbiorczego (wsadowego), 
  • w ramach przesyłania strumieniowego, w czasie rzeczywistym-  za pomocą wstawiania strumieniowego.

Podczas analizy rachunku usługi BigQuery ważnym jest ustalenie czy przesyłane dane muszą być dostępne od ręki lub są wykorzystywane natychmiast w czasie rzeczywistym. Jeśli nie – zalecanym jest skorzystanie z pierwszego sposobu wgrywania danych, który jest po prostu bezpłatny. Ostatnim aspektem, na który warto zwrócić uwagę przy usłudze zarządzania kosztami BigQuery jest naliczanie opłat, na podstawie wykorzystanych bajtów. Najczęściej wykorzystywana jest opcja on-demand pricing. Taki scenariusz sprawdzi się w przypadku małych ilości danych. Jednak, gdy mamy duże wolumeny ze stabilnymi obciążeniami, korzystniejszą będzie rate pricing, który pozwala na przetwarzanie nieograniczonej ilości bajtów w stałej cenie. By klient mógł poradzić sobie z odpowiednim wyborem, Google Cloud Platform wprowadziło dla BigQuery opcję Flex Slots, która pozwala na zakup slotów BigQuery na okres zaledwie 60 sekund, oprócz miesięcznych i rocznych zobowiązań ryczałtowych. Przed optymalizacją kosztów środowiska zweryfikuj wszystkie możliwości.

Strategia optymalizacji kosztów

Na koniec kilka najlepszych praktyk związanych z rejestrowaniem i monitorowanie zużycia zasobów w chmurze. Są fundamentem jeśli chodzi o operacje sieciowe i bezpieczeństwo.

  • Sprawdź ile wydajesz na konkretne usługi i skorzystaj z Cloud Platform SKUs. Poznaj topologię sieci, przy której przyda się Network Topology wraz z Network Intelligence Center, zapewniające wgląd w globalne wdrożenie GCP i interakcję z Internetem publicznym. Dzięki temu mamy możliwość identyfikacji nieefektywnych wdrożeń i podjęcie niezbędnych działań, w celu optymalizacji kosztów ruchu wychodzącego z sieci regionalnej i międzykontynentalnej. 
  • Ustal jaki poziom usługi sieciowej jest Ci niezbędny. Chmura Google umożliwia wybór usług na dwóch poziomach: standard i premium. Opcja premium zapewnia najwyższą wydajność, natomiast opcja standard może być doskonałą alternatywą dla obciążeń wrażliwych na wysokie koszty korzystania z chmury. 
  • Kontroluj ruch sieciowy. Google Cloud oferuje dostęp do ruchu sieciowego, filtrując logi, których już nie potrzebujesz. Istotnymi są dzienniki kontroli dostępu do danych, których użycie może generować dodatkowe koszty środowiska chmurowego. A w przypadku dzienników przepływu VPC i równoważenia obciążenia w chmurze można również włączyć próbkowanie. Efektem tego może być znaczne zmniejszenie wielkości ruchu dziennika zapisywanego w bazie danych.

FinOps

FinOps w kontekście optymalizacji kosztów infrastruktury chmurowej w Google Cloud Platform odnosi się do praktyk zarządzania kosztami chmury, które łączą zespoły finansowe, operacyjne i inżynierskie w celu monitorowania, kontrolowania i optymalizowania wydatków związanych z chmurą. Google Cloud Pricing oraz Google Cloud Calculator to jedne z narzędzi, które umożliwiają szczegółową analizę wydatków, identyfikowanie nieefektywności oraz wprowadzenie polityk optymalizacji kosztów chmury publicznej.

Przykładowe techniki optymalizacji kosztów w GCP obejmują automatyczne skalowanie usług, wybór odpowiednich typów maszyn wirtualnych oraz wykorzystanie zniżek za długotrwałe użycie (Committed use discounts). Dodatkowo, ważne jest monitorowanie wykorzystania zasobów i wprowadzenie ograniczeń na poziomie projektów, aby uniknąć nieplanowanego wzrostu kosztów korzystania z chmury. Recommender to narzędzie wspierające w procesie optymalizacji kosztów chmury dzięki rekomendacjom dotyczącym Google Compute Engine i Google Kubernetes Engine. FinOps w GCP wspiera ścisłą współpracę między zespołami IT i finansowymi, co pozwala na lepsze prognozowanie kosztów środowiska chmurowego i dostosowywanie wydatków do rzeczywistych potrzeb organizacji.

Podsumowanie

Mądre zarządzanie zasobami chmury pozwoli nie tylko na ich optymalizację kosztów, ale również na wypracowanie najlepszych praktyk dla danej organizacji, bez względu czy to startup czy globalne przedsiębiorstwo. Warto zapoznać się również z serią video dotyczącą zarządzania kosztami w chmurze przygotowaną przez GCP team. Zachęcamy również do samodzielnego przeglądania dokumentacji dotyczących. poszczególnych usług zarządzania kosztami, która jest aktualizowana na bieżąco. 

Jeśli jesteś zainteresowany kwestiami optymalizacji kosztów chmury obliczeniowej w swojej firmie, zastanawiasz się nad migracją danych do chmury lub chcesz wykorzystać darmowe 300 USD na sprawdzenie swojego pomysłu w Google Cloud Platform napisz do nas na adres: kontakt@lcloud.pl