Optymalizacja kosztów GCP - zniżki za zobowiązanie, Spot VMs i strategie FinOps
Polskie firmy coraz częściej sięgają po Google Cloud - szczególnie w sektorze fintech, data analytics i AI/ML. Jednocześnie wiele z nich przenosi na GCP nawyki kosztowe z AWS lub Azure, co prowadzi do nieporozumień. GCP ma własną logikę cenową i własne mechanizmy oszczędności. Zrozumienie ich to pierwszy krok do kontroli budżetu.
W tym artykule omawiamy każdą dostępną dźwignię optymalizacji kosztów na GCP - od automatycznych rabatów, przez zobowiązania, po strategie architektoniczne. Wszystko z konkretnymi liczbami i przykładami z naszych projektów.
Model cenowy GCP - czym różni się od AWS
Zanim przejdziemy do optymalizacji, warto zrozumieć fundamentalne różnice:
| Aspekt | GCP | AWS |
|---|---|---|
| Rozliczanie | Per-second billing (min. 1 minuta) | Per-second (EC2), per-hour (niektóre usługi) |
| Automatyczne rabaty | Sustained Use Discounts (do 30%) | Brak automatycznych |
| Zobowiązania | Committed Use Discounts (1 lub 3 lata) | Reserved Instances / Savings Plans |
| Spot/Preemptible | Spot VMs (do 91% rabatu) | Spot Instances (do 90%) |
| Prawo do darmowego poziomu | Always Free (e2-micro, 5GB storage, BigQuery 1TB/mies.) | Free Tier (12 miesięcy + always free) |
| Egress pricing | Zróżnicowany (Premium vs Standard Tier) | Flat per-GB (różny per region) |
Kluczowa różnica: GCP automatycznie nagradza ciągłość używania (Sustained Use Discounts). Nie musisz nic kupować ani rezerwować - jeśli maszyna wirtualna działa przez cały miesiąc, płacisz mniej. To oznacza, że część optymalizacji dzieje się bez Twojej interwencji.
Sustained Use Discounts (SUD) - automatyczny rabat
Sustained Use Discounts to mechanizm unikatowy dla GCP. Działa automatycznie dla maszyn wirtualnych Compute Engine (z wyjątkiem E2 i A2/A3):
- 0-25% miesiąca: pełna cena
- 25-50%: 20% rabatu na nadmiarowe godziny
- 50-75%: 40% rabatu
- 75-100%: 60% rabatu
Efektywny rabat przy 100% użyciu: około 30% w stosunku do ceny on-demand.
SUD działa na poziomie projektu i regionu - GCP agreguje użycie wszystkich instancji tego samego typu w danym regionie. Jeśli wymieniasz maszynę na inną tego samego typu (np. n2-standard-4 -> inna n2-standard-4), rabat się nie resetuje.
Co to oznacza w praktyce: Jeśli masz workload, który działa 24/7 na maszynach N1 lub N2, dostajesz 30% rabatu bez żadnego zobowiązania, bez rezerwacji, bez aktywacji. Po prostu płacisz mniej na koniec miesiąca.
Ograniczenia:
- Nie działa na maszynach E2 (najtańsze) - ale te mają GCP Flex CUD
- Nie działa na maszynach A2/A3 (GPU)
- Nie łączy się z Committed Use Discounts (CUD zastępuje SUD)
- Nie działa na Spot VMs
Committed Use Discounts (CUD) - zobowiązanie za rabat
Committed Use Discounts to odpowiednik AWS Reserved Instances, ale z ważną różnicą: zobowiązujesz się do minimalnego poziomu użycia zasobów (vCPU + pamięć), a nie do konkretnego typu instancji.
Jak działają CUD
Kupujesz zobowiązanie na 1 lub 3 lata:
- 1 rok: 20-28% rabatu (w zależności od typu maszyny)
- 3 lata: 46-55% rabatu
Zobowiązanie dotyczy ilości vCPU i GB pamięci RAM w danym regionie. Nie jesteś przywiązany do konkretnego typu instancji - możesz zmieniać z n2-standard-4 na n2-standard-8 bez utraty rabatu.
Resource-based vs Spend-based CUD
| Typ CUD | Zobowiązanie | Elastyczność | Rabat (3 lata) |
|---|---|---|---|
| Resource-based | Konkretna ilość vCPU + RAM w regionie | Dowolny typ maszyny w tej samej rodzinie | 46-55% |
| Spend-based (Flex CUD) | Minimalna kwota $/godzinę | Dowolny typ maszyny, dowolny region | Mniejszy (typowo 20-25%) |
Spend-based (Flex CUD) to nowszy model, dostępny od 2024. Działa jak AWS Compute Savings Plans - zobowiązujesz się do kwoty wydatków, a nie do konkretnych zasobów. Działa między regionami i rodzinami maszyn. Mniejszy rabat, ale większa elastyczność.
Przykład kalkulacji
Firma w Polsce używa 3 instancje n2-standard-8 (8 vCPU, 32 GB RAM każda) 24/7 w regionie europe-central2 (Warszawa):
Bez CUD (tylko SUD):
- Cena on-demand n2-standard-8: ~$0.3876/godzinę
- SUD 30%: efektywna cena ~$0.2713/godzinę
- 3 maszyny x 730h: ~$594/miesiąc
Z CUD 3-letnim (resource-based):
- Zobowiązanie: 24 vCPU + 96 GB RAM w europe-central2
- Rabat: ~52%
- Efektywna cena: ~$0.1860/godzinę
- 3 maszyny x 730h: ~$407/miesiąc
Oszczędność: ~$187/miesiąc = ~$2,244/rok = ~$6,732 w ciągu 3 lat
Dla większej infrastruktury (20-50 maszyn) oszczędności sięgają dziesiątek tysięcy dolarów rocznie.
Kiedy kupować CUD
- Baseline load: workload, który działa 24/7 od co najmniej 3 miesięcy
- Stabilna wielkość: nie planujesz znaczącego zmniejszenia infrastruktury
- Region ustalony: nie planujesz migracji do innego regionu GCP
Kiedy NIE kupować:
- Workload rośnie szybko (co miesiąc podwajasz zasoby) - kup mniejsze CUD i dokupuj
- Planujesz migrację z GCP do innej chmury
- Workload jest sezonowy (lepiej Spot VMs + on-demand)
Spot VMs - do 91% rabatu za elastyczność
Spot VMs (dawniej Preemptible VMs) to maszyny wirtualne dostępne z rabatami 60-91%, które GCP może wyłączać w każdym momencie (z 30-sekundowym ostrzeżeniem).
Różnice między Spot VM a Preemptible VM
Od 2022 roku GCP oficjalnie zastąpił Preemptible VMs przez Spot VMs:
- Preemptible: max 24h życia, potem automatyczne wyłączenie
- Spot: brak limitu czasu życia (ale GCP może wyłączać w dowolnym momencie)
W praktyce Spot VMs to ulepszona wersja - użyj ich zamiast Preemptible.
Gdzie stosować Spot VMs
| Workload | Nadaje się do Spot? | Uwagi |
|---|---|---|
| CI/CD pipelines | Tak | Runners na GKE z Spot node pool. Przerywanie = restart joba. |
| Batch processing / ETL | Tak | Dataflow, Dataproc z Spot workers. Checkpointing wbudowany. |
| ML training | Tak (z checkpointami) | Vertex AI Training z Spot. Zapisuj checkpoint co N iteracji. |
| Dev/test environments | Tak | Jeśli przerywanie nie blokuje programistów |
| GKE workloads (stateless) | Tak | Deployment z min. 2 replikami, jedna na Spot, jedna na on-demand |
| Bazy danych (produkcja) | Nie | Utrata danych / niedostępność nie do zaakceptowania |
| Single-instance workload krytyczny | Nie | Brak redundancji = ryzyko niedostępności |
Spot na GKE - konfiguracja node pool
W GKE możesz mieszać node poole - część na Spot, część na on-demand:
# GKE node pool - Spot VMs
apiVersion: container.google.com/v1
kind: NodePool
spec:
config:
spot: true
machineType: n2-standard-4
autoscaling:
enabled: true
minNodeCount: 0
maxNodeCount: 10
management:
autoRepair: true
autoUpgrade: true
Kluczowe: ustaw PodDisruptionBudget dla workload na Spot node pool, żeby Kubernetes wiedział, ile replik może być jednocześnie niedostępnych.
Active Assist - rekomendacje optymalizacyjne GCP
Active Assist to zestaw narzędzi ML wbudowanych w GCP Console, które analizują Twoje użycie i sugerują oszczędności:
Recommender
Trzy kluczowe recommender-y dla kosztów:
-
VM Rightsizing Recommender - analizuje użycie CPU i RAM przez 8 dni i sugeruje mniejszy typ maszyny, jeśli zasoby są niewykorzystane
- Idle Resource Recommender - identyfikuje zasoby, które nie są używane:
- Dyski persystentne bez podłączonej instancji
- Statyczne adresy IP bez przypisania
- VM z <1% użycia CPU przez ostatni tydzień
- Nieużywane snapshoty starsze niż 90 dni
- Committed Use Discount Recommender - analizuje stabilność Twojego użycia i sugeruje optymalną wielkość CUD
Billing Export do BigQuery
Do głębszej analizy kosztów, włącz eksport danych billingowych do BigQuery. Daje Ci:
- Koszty per-projekt, per-serwis, per-SKU
- Trend dzienny/tygodniowy/miesięczny
- Możliwość budowania dashboardów w Looker Studio
- Automatyczne alerty na anomalie (Cloud Monitoring)
-- Top 10 najdroższych usług w ostatnim miesiącu
SELECT
service.description AS service,
ROUND(SUM(cost), 2) AS total_cost
FROM `project.billing_dataset.gcp_billing_export_v1_*`
WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY service.description
ORDER BY total_cost DESC
LIMIT 10
Ukryte koszty GCP - na co uważać
Egress (ruch wychodzący)
GCP ma dwa poziomy sieciowe:
- Premium Tier (domyślny): ruch przechodzi przez globalną sieć Google. Droższy egress (~$0.12/GB między kontynentami).
- Standard Tier: ruch wychodzi przez publiczny internet bliżej źródła. Tańszy (~$0.085/GB), ale wyższy czas odpowiedzi (latency).
Dla polskich firm z użytkownikami w Polsce i UE - różnic nie będzie dużo. Ale jeśli serwujesz dane globalnie (CDN, API publiczne), Standard Tier może dać 20-30% oszczędności na egress.
Cross-region replication
Jeśli używasz multi-regionalnego storage (np. Cloud Storage w EU) - płacisz za replikację automatycznie. Dla danych, które nie wymagają wysokiej dostępności między regionami, użyj single-region bucket (europe-central2 dla Polski).
BigQuery
BigQuery rozlicza się per-zapytanie (ilość przetworzonych danych):
- On-demand: $6.25/TB skanowanych danych
- Slots (flat-rate): od $2,000/miesiąc za 100 slotów
Typowe pułapki:
SELECT *na dużej tabeli - skanuje WSZYSTKIE kolumny. Zawsze wybieraj konkretne kolumny.- Brak partycjonowania - zapytanie skanuje całą tabelę zamiast jednej partycji.
- Materializacja widoków zamiast użycia cache.
Cloud NAT
Analogicznie do AWS NAT Gateway - Cloud NAT pobiera opłatę za godzinę działania + per-GB przetworzonych danych. Jeśli Twoje maszyny potrzebują dostępu do internetu tylko do ściągania pakietów (apt-get, pip), rozważ Private Google Access zamiast NAT.
Strategie FinOps dla GCP - lista kontrolna
Poziom 1: Quick wins (tydzień 1)
- Włącz Billing Export do BigQuery
- Przejrzyj rekomendacje Active Assist (VM Rightsizing, Idle Resources)
- Usuń nieużywane dyski, snapshoty, statyczne IP
- Włącz automatyczne wyłączanie środowisk dev/test poza godzinami pracy
- Sprawdź, czy BigQuery używa partycjonowania i clustering
Poziom 2: Średniookresowe (miesiąc 1-2)
- Zidentyfikuj baseline load i kup CUD (resource-based lub Flex)
- Wdróż Spot VMs dla CI/CD i batch processing
- Skonfiguruj budżety i alerty w Cloud Billing
- Wdróż labele (labels) na wszystkich zasobach - per-zespół, per-środowisko, per-projekt
- Rozważ Standard Tier networking dla niekrytycznych workload
Poziom 3: Strategiczne (kwartał)
- Wdróż model showback/chargeback między zespołami
- Automatyzacja lifecycle management (nieużywane zasoby -> alert -> usuń po 14 dniach)
- Analiza kosztów multi-cloud vs single-cloud (jeśli używasz również AWS/Azure)
- Renegocjacja CUD (jeśli zbliża się koniec zobowiązania)
- Ocena custom machine types vs predefined (czy płacisz za zasoby, których nie używasz)
Custom Machine Types - oszczędność na granularności
GCP pozwala definiować własne typy maszyn z dokładną ilością vCPU i RAM. W AWS/Azure musisz wybrać z predefined sizes - jeśli potrzebujesz 6 vCPU i 24 GB RAM, kupujesz 8 vCPU / 32 GB.
Na GCP możesz stworzyć maszynę dokładnie 6 vCPU / 24 GB RAM - i zapłacisz mniej.
Kiedy warto:
- Workload, który potrzebuje dużo RAM, ale mało CPU (np. caching, in-memory databases)
- Workload, który potrzebuje dużo CPU, ale mało RAM (np. encoding, kompresja)
- Każda sytuacja, gdzie predefined type marnuje >20% zasobów
Ograniczenia:
- Custom machine types nie łączą się z resource-based CUD (tylko Flex CUD)
- Minimum: 1 vCPU, 0.9 GB RAM na vCPU
- Maximum: 96 vCPU, 624 GB RAM (N2)
GCP w regionie europe-central2 (Warszawa)
Od 2021 roku GCP posiada region europe-central2 w Warszawie. Dla polskich firm to istotne z kilku powodów:
- Czas odpowiedzi: <5ms do użytkowników w Polsce (vs 20-40ms z Frankfurt/Holandia)
- Zgodność z RODO: dane pozostają fizycznie w Polsce
- Zgodność z KNF: dla sektora finansowego - dane przetwarzane w kraju
- Koszty: porównywalne z europe-west1 (Belgia), często identyczne
Dostępność usług w europe-central2:
- Compute Engine, GKE, Cloud Run - tak
- BigQuery - tak (multi-region EU obejmuje PL)
- Cloud SQL, AlloyDB - tak
- Vertex AI - częściowo (nie wszystkie modele)
- Cloud Spanner - tak (multi-region)
Jeśli Twoja firma działa w Polsce i nie potrzebuje globalnego zasięgu - użyj europe-central2 jako primary region. Oszczędzisz na czasie odpowiedzi i spełnisz wymagania regulacyjne.
Porównanie oszczędności - co daje ile
| Mechanizm | Typowy rabat | Wymagane zobowiązanie | Ryzyko |
|---|---|---|---|
| Sustained Use Discounts | Do 30% | Żadne (automatyczny) | Brak |
| CUD 1-roczny | 20-28% | 1 rok, nieodwołalny | Niskie (jeśli baseline stabilny) |
| CUD 3-letni | 46-55% | 3 lata, nieodwołalny | Średnie (lock-in) |
| Spot VMs | 60-91% | Żadne | Przerywanie w dowolnym momencie |
| VM Rightsizing | 20-50% | Żadne | Brak (jeśli dobrze zmierzono) |
| Idle Resource cleanup | 100% (eliminacja) | Żadne | Brak |
| Custom Machine Types | 10-30% | Żadne | Brak |
Łącznie, typowa organizacja może osiągnąć 40-60% redukcji kosztów GCP stosując kombinację tych mechanizmów. Klucz to zaczynanie od bezryzykownych optymalizacji (rightsizing, idle cleanup, SUD) i stopniowe dodawanie zobowiązań (CUD) w miarę ustabilizowania się użycia.
Jak możemy pomóc
W Devopsity wdrażamy strategie FinOps na GCP dla polskich organizacji - od startupów po firmy klasy korporacyjnej. Typowe zaangażowanie obejmuje:
- Audyt obecnych kosztów GCP i identyfikacja quick wins (1 dzień)
- Analiza użycia i rekomendacja optymalnych CUD (1-2 dni)
- Wdrożenie Spot VMs, autoskalowania i lifecycle policies (2-3 dni)
- Konfiguracja dashboardów kosztowych i alertów (1 dzień)
Jeśli Twoje rachunki za GCP rosną szybciej niż przychody - to sygnał, że potrzebujesz strategii FinOps, a nie większego budżetu.
Potrzebujesz audytu kosztów GCP?
Umów się na bezpłatną 30-minutową rozmowę. Bez sprzedaży - techniczna dyskusja o Twoim środowisku.
Najczęściej zadawane pytania
Czy Committed Use Discounts można anulować?
Nie. CUD to zobowiązanie nieodwołalne - płacisz niezależnie od tego, czy używasz zasobów. Dlatego kupuj CUD tylko na baseline load, który jesteś pewien, że utrzymasz. Jeśli workload jest zmienny, rozważ Flex CUD (spend-based) - mniejszy rabat, ale więcej elastyczności.
Czy Spot VMs są odpowiednie dla produkcji?
Tak, jeśli architektura jest odporna na przerywanie. Stateless workload na GKE z min. 2 replikami, batch processing z checkpointami, CI/CD - to wszystko działa dobrze na Spot. Bazy danych i single-instance workload krytyczne - nie.
Ile trwa wdrożenie strategii FinOps na GCP?
Quick wins (idle cleanup, rightsizing) - 1-2 dni. Pełna strategia z CUD, Spot, dashboardami i procesami - 2-4 tygodnie. Najdłużej trwa zmiana kultury organizacyjnej (inżynierowie biorą odpowiedzialność za koszty swoich środowisk).
Czy region europe-central2 (Warszawa) jest droższy?
Nie znacząco. Ceny są porównywalne z europe-west1 (Belgia) - różnice są minimalne (0-5%). Za to zyskujesz niższy czas odpowiedzi i zgodność z regulacjami (RODO, KNF).
Jak CUD łączą się z SUD?
Nie łączą się - CUD zastępuje SUD. Jeśli kupujesz CUD na dany zasób, SUD nie jest naliczany. CUD daje większy rabat niż SUD (55% vs 30%), więc to i tak korzystniejsze.