
Optymalizacja kosztów chmury to głównie trzy rzeczy: eliminacja marnotrawstwa (nieużywane zasoby), dopasowanie mocy (right-sizing) i właściwy model zakupu (on-demand vs rezerwacje vs spot). W praktyce te trzy kroki często obniżają rachunek o 10–30% bez zmian w aplikacji.
Dlaczego chmura potrafi być droższa niż serwery on-prem, mimo że miała „skalować się sama”?
Bo chmura jest jak taksówka z licznikiem, działa świetnie, dopóki wiesz, gdzie jedziesz i kto płaci. Koszty rosną, gdy:
- zasoby działają 24/7, choć potrzebne są 8/5,
- instancje są przewymiarowane “na zapas”,
- storage rośnie bez polityk retencji,
- płacisz za transfer (egress) i ruch między strefami,
- masz duplikację narzędzi monitoringu i logów,
- nikt nie ma właściciela kosztów, więc „jakoś to leci”.
Najczęściej problem nie jest techniczny, tylko organizacyjny: brak odpowiedzialności, brak reguł i brak widoczności.
Czym jest FinOps i dlaczego bez niego optymalizacja kosztów jest jednorazową akcją?
FinOps to praktyka współpracy IT, finansów i biznesu, która sprawia, że koszty chmury są:
- mierzone i przypisane do właścicieli,
- kontrolowane w czasie (nie po fakcie),
- optymalizowane cyklicznie, a nie “w zrywie”.
W firmach, które wdrażam w ten model, różnica jest prosta: wcześniej koszty są „kosztem chmury”, a po wdrożeniu są „kosztem produktu, usługi albo zespołu”, czyli stają się zarządzalne.
Od czego zacząć, żeby w tydzień znaleźć największe oszczędności?
Jeśli chcesz szybkie wyniki, zaczynasz od 5 najczęstszych źródeł marnotrawstwa:
- Nieaktywne zasoby
Stare dyski, snapshoty, adresy IP, load balancery, testowe środowiska, których nikt nie używa. - Przewymiarowane instancje
CPU na 5–15%, RAM na 20% przez większość doby. - Środowiska dev i test działające nocą i w weekendy
To jest klasyczny „cichy wyciek”. - Logi i metryki bez limitów
Za duża retencja, zbyt szczegółowe logowanie, duplikacja telemetryki. - Transfer danych i architektura sieciowa
Ruch między strefami, regionami, a szczególnie egress do Internetu lub innego dostawcy.
W praktyce te pięć obszarów daje najszybsze, najmniej inwazyjne cięcia.
Jak zbudować widoczność kosztów, jeśli dziś widzisz tylko jedną fakturę “za chmurę”?
Zaczynasz od prostego modelu alokacji kosztów.
Tagowanie i ownership
Wprowadź minimalny zestaw tagów/etykiet, bez poezji:
owner(osoba lub zespół),servicealboproduct,env(prod, stage, dev),cost_center(jeśli masz).
Bez tego nie da się prowadzić rozmowy “co optymalizujemy”, bo nie wiadomo “czyje to”.
Budżety i alerty
Ustaw budżety per:
- środowisko,
- produkt,
- zespół.
Najważniejsze są alerty “early warning”, a nie tylko “przekroczyliśmy”.
Raport tygodniowy zamiast miesięcznego
W chmurze miesiąc to wieczność. Tygodniowy rytm pozwala łapać odchylenia zanim urosną.
Jakie decyzje architektoniczne najbardziej wpływają na koszty?
W uproszczeniu: płacisz za to, co działa, co przechowujesz i co przesyłasz.
Compute
- autoscaling zamiast stałej liczby instancji,
- dopasowanie typów instancji do profilu (CPU vs RAM),
- harmonogramy wyłączania dla non-prod.
Storage
- klasy storage dopasowane do użycia (gorące vs archiwalne),
- lifecycle policies, retencja, kasowanie śmieci,
- kontrola snapshotów i backupów.
Network
- minimalizacja cross-zone i cross-region traffic,
- cache i CDN tam, gdzie jest sens,
- trzymanie danych i obliczeń blisko siebie.
Z mojego doświadczenia “najdroższe chmury” to często te, gdzie architektura była robiona jak on-prem, tylko na fakturze widać to szybciej.
Jak dopasować zasoby, żeby nie rozwalić wydajności?
Right-sizing robisz metodycznie:
- Zbierz metryki obciążenia (CPU, RAM, I/O, network) z ostatnich 14–30 dni.
- Wyznacz percentyle, nie średnią (np. P95).
- Zmniejsz zasób stopniowo i obserwuj wpływ na latency i błędy.
- Wprowadź guardrails, czyli minimalne i maksymalne wartości w autoscaling.
- Powtarzaj cyklicznie, bo aplikacje się zmieniają.
Najczęstszy błąd to “cięcie na ślepo”. Najlepszy wzorzec to “zmniejsz, obserwuj, automatyzuj”.
Kiedy opłacają się rezerwacje, Savings Plans i umowy, a kiedy lepiej zostać przy on-demand?
Praktyczna zasada:
- On-demand: gdy obciążenie jest zmienne, krótkotrwałe, eksperymentalne.
- Rezerwacje lub plany oszczędnościowe: gdy masz stabilny baseline w produkcji.
- Spot/Preemptible: gdy praca może zostać przerwana (batch, render, ETL, część CI).
W praktyce robię tak:
- najpierw redukuję marnotrawstwo,
- dopiero potem “zamrażam” koszty rezerwacjami, bo inaczej rezerwujesz źle dobrany rozmiar.
Jak obniżyć koszty Kubernetes i kontenerów, które “miały być taniej”?
Kubernetes bardzo łatwo robi się drogi, bo ukrywa realne zużycie.
Najbardziej skuteczne ruchy:
- ustaw request i limit dla CPU/RAM, bez tego przepalasz node’y,
- używaj autoscalingu (HPA i cluster autoscaler) z rozsądnymi progami,
- wyłączaj środowiska non-prod na noc,
- kontroluj koszty logów z klastra, bo potrafią przebić compute,
- rozdziel klastry lub przynajmniej namespace’y na produkty i środowiska, żeby było wiadomo kto “spala” budżet.
W mojej praktyce pierwsze oszczędności na K8s pochodzą z porządku w requestach i z cięcia logów, dopiero potem z tuningu node pools.
Jak ograniczyć koszty logów, metryk i obserwowalności, bez utraty bezpieczeństwa?
Tu działa zasada: loguj mądrzej, nie więcej.
- skróć retencję tam, gdzie nie jest wymagana,
- rozdziel poziomy logowania dla prod i non-prod,
- filtruj szum (health checks, debug spam),
- przechowuj pełne logi krócej, a dłużej trzymaj agregaty i alerty,
- ujednolić narzędzia, bo duplikacja telemetryki kosztuje podwójnie.
W praktyce koszty obserwowalności potrafią wymknąć się spod kontroli szybciej niż same serwery.
Jakie KPI warto ustawić, żeby optymalizacja była ciągła, a nie jednorazowa?
Polecam 8 KPI, które są proste i działają:
- koszt dzienny i tygodniowy per produkt,
- koszt per środowisko (prod vs non-prod),
- udział kosztów “nieprzypisanych” (untagged),
- wykorzystanie zasobów (CPU/RAM) vs płacony rozmiar,
- koszt logów i metryk per usługa,
- koszt transferu danych,
- koszt per transakcja albo per użytkownik (jeśli da się policzyć),
- liczba “zombie resources” wykrytych i usuniętych miesięcznie.
KPI muszą kończyć się decyzją. Jeśli nikt nie reaguje, to są tylko wykresy.
Jak wygląda sensowny plan optymalizacji kosztów chmury na 90 dni?
Dni 1–14: szybkie oszczędności
- tagging i ownership,
- usunięcie nieużywanych zasobów,
- harmonogramy non-prod,
- podstawowe alerty budżetowe.
Dni 15–45: stabilizacja i automatyzacja
- right-sizing i autoscaling,
- polityki retencji storage i logów,
- wstępny model alokacji kosztów per produkt.
Dni 46–90: optymalizacja zakupu i dojrzałość FinOps
- rezerwacje dla baseline,
- spot dla batch i CI,
- stały rytm raportowania i przeglądów kosztów,
- katalog standardów “jak stawiamy usługi”, żeby nie wracał chaos.
Jakie błędy najczęściej niszczą oszczędności?
- Rezerwacje zrobione przed sprzątaniem marnotrawstwa.
- Brak ownera kosztów, “wszyscy i nikt”.
- Cięcie kosztów bez monitoringu wydajności i SLO.
- Oszczędności tylko w compute, przy ignorowaniu logów i transferu.
- Brak automatyzacji, czyli koszt wraca po 2 miesiącach.
Chmura premiuje dyscyplinę. Bez niej zawsze będzie droższa, nawet jeśli jest nowoczesna.

Jestem administratorem systemów i specjalistą ds. cyberbezpieczeństwa z ponad 10-letnim doświadczeniem w zarządzaniu infrastrukturą IT, serwerami Linux, usługami cloud oraz ochroną systemów produkcyjnych.
Na co dzień w ZdalnyAdmin.com.pl zajmuję się audytami bezpieczeństwa, testami penetracyjnymi, wdrożeniami SOC, hardeningiem serwerów oraz reagowaniem na incydenty bezpieczeństwa.
Pracowałem z infrastrukturą obsługującą sklepy e-commerce, systemy finansowe, aplikacje SaaS oraz środowiska o podwyższonych wymaganiach dostępności i bezpieczeństwa.
W swoich publikacjach dzielę się praktycznym doświadczeniem z zakresu cyberbezpieczeństwa, DevOps i administracji systemami — bez marketingowych uproszczeń, za to z naciskiem na realne scenariusze i obowiązujące regulacje (NIS2, DORA, ISO 27001).