Serverless w małej firmie: 3 błędy, które windują koszty
Serverless brzmi jak marzenie: płacisz tylko za to, co używasz, nie martwisz się serwerami, skaluje się automatycznie.
W teorii to idealne rozwiązanie dla małej firmy, która chce szybko wystartować bez dużych inwestycji w infrastrukturę. W praktyce… bywa drożej niż myślisz.
Widziałem już startupy, które po miesiącu na AWS Lambda dostały rachunek na kilkanaście tysięcy złotych. I to nie przez duży ruch, tylko przez pozornie niewinne błędy w konfiguracji.
Oto trzy najczęstsze pułapki, które windują koszty serverless w małych firmach – i jak ich uniknąć.
1. Brak timeoutów i nieoptymalne wywołania
Serverless to nie „magiczny worek”. Każde wywołanie funkcji to czas i pamięć, które kosztują.
Najczęstszy błąd? Funkcje, które czekają na odpowiedź z zewnętrznego API bez timeoutu. Jeśli API nie odpowiada, funkcja wisi i płacisz za każdą sekundę.
Przykład z życia:
Klient zbudował system synchronizacji zamówień z Shopify. Funkcja Lambda odpytywała API co 5 minut. Niestety, API czasami zwracało błąd, a funkcja czekała 30 sekund na timeout. W skali miesiąca – setki darmowych sekund, które złożyły się na 40% wzrost rachunku.
Rozwiązanie:
- Zawsze ustawiaj timeout funkcji na maksymalnie 5 sekund (chyba że masz konkretny powód).
- Używaj asynchronicznych wywołań (np. SQS, EventBridge) tam, gdzie możesz.
- Unikaj pollingu – zamiast tego korzystaj z webhooków.
2. Zbyt duże funkcje i niepotrzebne zależności
Każda funkcja serverless ma swój rozmiar, który wpływa na czas zimnego startu (cold start). Im większy pakiet, tym dłużej trwa inicjalizacja – i tym więcej płacisz.
Co gorsza, dołączanie całych bibliotek tylko po to, by użyć jednej metody, to proszenie się o wyższe rachunki.
Przykład z życia:
Firma e-commerce wrzuciła cały SDK AWS do każdej funkcji – przez lenistwo, żeby nie importować tylko potrzebnych modułów. Efekt: cold start wydłużył się z 200 ms do 1,2 s, a koszty wzrosły o 30%.
Rozwiązanie:
- Optymalizuj rozmiar pakietu: używaj tylko niezbędnych zależności.
- Rozważ użycie warstw Lambda (Layers) dla wspólnych bibliotek.
- Jeśli używasz Node.js, tree-shaking to Twój przyjaciel.
3. Brak monitoringu i alertów na koszty
Najbardziej niebezpieczne jest to, że koszty serverless potrafią rosnąć liniowo z każdym błędem. Jeden błąd w kodzie może wygenerować milion wywołań w godzinę.
Bez odpowiedniego monitoringu możesz dowiedzieć się o problemie dopiero przy fakturze.
Przykład z życia:
Firma SaaS wdrożyła funkcję przetwarzającą webhooki. Z powodu błędu w logice, funkcja wywoływała się rekurencyjnie co 100 ms przez 10 godzin. Koszt: 8000 zł zamiast typowych 200 zł.
Rozwiązanie:
- Ustaw budżety i alerty w AWS Budgets (lub odpowiedniku w GCP/Azure).
- Monitoruj liczbę wywołań, czas wykonania i błędy – CloudWatch to podstawa, ale rozważ narzędzia jak Dashbird lub Lumigo.
- Wprowadź circuit breaker – jeśli funkcja wywołuje się zbyt często, zablokuj ją.
Podsumowanie
Serverless to potężne narzędzie, ale jak każde narzędzie – wymaga rozsądku. Małe firmy często traktują go jak „zapomnij i działaj”, a potem płacą frycowe.
Trzy rzeczy, które warto wdrożyć:
- Ustawiaj timeouty i preferuj asynchroniczność.
- Optymalizuj rozmiar funkcji i zależności.
- Monitoruj koszty i ustaw alerty.
Jeśli potrzebujesz pomocy w optymalizacji swojej infrastruktury serverless – daj znać. W JurskiTech.pl pomagamy firmom wycisnąć maksimum z chmury bez przepłacania.


