Jeden z našich fintech klientů za námi přišel s problémem: jejich účet za AWS tiše narostl z 5 000 EUR na 14 000 EUR měsíčně za 18 měsíců, bez odpovídajícího nárůstu provozu. Systém nebyl pomalý — ale byl drahý. Požádali nás o nalezení úspor bez dopadu na dostupnost.
Strávili jsme dva týdny profilováním, optimalizací a restrukturalizací jejich infrastruktury. Výsledek: 41% snížení nákladů s měřitelně lepšími odezvovými časy. Zde je popis toho, co jsme zjistili a opravili.
Audit: Kam odcházely peníze
Prvním krokem bylo namapování každého eura na konkrétní službu. Použili jsme AWS Cost Explorer s tagováním na úrovni zdrojů a identifikovali tři hlavní nákladové položky:
- RDS (PostgreSQL): 4 200 EUR/měsíc — instance db.r6g.2xlarge běžící 24/7
- EC2/ECS: 5 100 EUR/měsíc — 12 permanentně běžících kontejnerů ve 3 službách
- Datové přenosy + S3: 2 800 EUR/měsíc — cross-region replikace, kterou už nepotřebovali
- Ostatní (CloudWatch, Lambda atd.): 1 900 EUR/měsíc
Samotná databáze tvořila 30% účtu — a byla dramaticky předimenzovaná.
Oprava 1: Správné dimenzování databáze
RDS instance měla 64 GB RAM, ale špičkové využití paměti nikdy nepřekročilo 18 GB. CPU mělo průměr 12% se špičkami na 35% během dávkových úloh.
Migrovali jsme na db.r6g.large (16 GB RAM) a přesunuli dávkové zpracování do hodin mimo špičku pomocí naplánovaných ECS tasků. Také jsme zapnuli RDS Proxy pro connection pooling — což ve skutečnosti zlepšilo latenci dotazů díky snížení režie spojení.
Úspora: 2 800 EUR/měsíc
Oprava 2: Auto-scaling místo trvalého běhu
Všech 12 kontejnerů běželo 24/7, ale analýza provozu ukázala jasné vzorce: 80% požadavků přicházelo mezi 7:00 a 22:00 CET, s prudkým poklesem přes noc. Víkendový provoz byl na 40% objemu pracovních dnů.
Nakonfigurovali jsme ECS auto-scaling na základě metrik CPU a počtu požadavků: minimum 3 kontejnery mimo špičku, škálování až na 12 v pracovních hodinách. Také jsme sloučili dvě mikroslužby, které vždy škálovaly společně, do jedné služby — čímž se výchozí počet kontejnerů snížil z 12 na 8.
Úspora: 1 900 EUR/měsíc
Oprava 3: Eliminace zbytečných datových přenosů
Systém replikoval veškerá data v S3 do druhého regionu — disaster recovery nastavení z doby prvotního spuštění. Klient ale mezitím přešel na multi-AZ architekturu v rámci eu-central-1, čímž se cross-region replikace stala zbytečnou. Nikdo ji nevypnul.
Odstranili jsme replikaci, vyčistili 2,3 TB duplicitních dat a přepnuli zbývající S3 přístupy na VPC endpointy, abychom se vyhnuli poplatkům za datové přenosy.
Úspora: 1 100 EUR/měsíc
Výsledky
Před: 14 000 EUR/měsíc Po: 8 200 EUR/měsíc Úspora: 5 800 EUR/měsíc (41%)
Ale čísla vypovídají jen o části příběhu. Odezvové časy se ve skutečnosti zlepšily o 15% — částečně díky connection poolingu přes RDS Proxy, částečně díky sloučeným službám s menší síťovou režií.
Poučení pro jakékoli cloudové prostředí
1. Tagujte vše
Nemůžete optimalizovat to, co nemůžete měřit. Každý zdroj by měl být otagován projektem, prostředím a týmem. Bez tagů je přiřazování nákladů pouhým odhadováním.
2. Revidujte Reserved Instances čtvrtletně
Náš klient platil on-demand ceny za instance, které běžely 24/7. Stabilní workloady jsme převedli na 1leté Reserved Instances bez zálohy — což přineslo dalších 25% úspor na těchto zdrojích.
3. Nastavte cenové alerty dříve, než je budete potřebovat
AWS Budgets s alertem na 80% a 100% cílových výdajů by zachytily tento růst o měsíce dříve. V rámci optimalizace jsme nakonfigurovali alerty pro každé nákladové středisko.
4. Plánujte nekritické workloady
Vývojová a staging prostředí nemusí běžet o víkendech. Naplánované spouštění a zastavování neprodukčních prostředí ušetřilo dalších 400 EUR/měsíc, které nejsou ani zahrnuty ve výše uvedených číslech.
Závěr
Optimalizace cloudových nákladů není o škrtání — je o eliminaci plýtvání. Většina firem má předimenzovanou infrastrukturu, protože ji nastavily pro špičkovou zátěž a nikdy ji nerevidovaly. Cílený dvoutýdenní audit typicky odhalí 30–50% úspor. Otázkou není, zda utrácíte víc, než musíte — ale kolik. Pokud vaše cloudové náklady rostou rychleji než byznys, proberme optimalizaci.