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:

Zarządzanie wydatkami w chmurze 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. 

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 zarządzania i rozliczania kosztów. Przydatne  są również rapoty rozliczeniowe, które dają wgląd w koszty. 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. Umożliwiają one monitorowanie trendów oraz prognozowanie ich w czasie, z uwzględnieniem możliwych różnic w budżecie.

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

Pierwszą kwestią, która pozwoli na obniżenie kosztów 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. 

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ądzanianimi na dużą skalę.

Trzecią kwestią jest odopwiedni 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.
Ostatnią kwestią związaną z maszynami wirtualnymi;  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 infrastrukturą. Jednak w chmurze, gdzie pamięć masowa jest rozliczana jako osobna pozycja, zwracanie uwagi na jej wykorzystanie i konfigurację może przynieść znaczne oszczędności. 

Oto 3 zasady, które pomogą w zaoszczędzeniu miejsca, czasu i kosztów pamięci masowej. 

  1. Klasy pamięci masowej w usłudze Cloud Storage. Każda z dostępnych klas posiada konkretny sposób użycia oraz cennik. Odpowiednie wykorzystanie klasy zgodnie z jej przeznaczeniem, pozwala zoptymalizować wydatki. 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.
  2. 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. 
  3. De-duplikacja. Kolejną kwestią generującą koszty 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 Cloud Storage. Odpowiednia konfiguracja zapobiega nadpisaniu lub przypadkowemu usunięciu danych.

Kolejną przydatną usługą przy 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 – 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 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 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 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.

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.

  1. 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. 
  2. Ustal jaki poziom usługi sieciowej jest Ci niezbędny. Google Cloud 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. 
  3. Kontroluj ruch sieciowy. W chmurze posiadasz 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. 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.

Mądre zarządzanie kosztami w chmurze pozwoli nie tylko na ich optymalizację, 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, która jest aktualizowana na bieżąco. 

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