Минулого вівторка о 9:15 ранку CTO одного з моїх клієнтів написав мені у Slack: «Ми отримали AWS-рахунок на $43,200 за вересень. У серпні було $14,900. Я нічого не міняв. Що відбувається?» Питання нормальне. Відповідь, як виявилось, — не зовсім нормальна, але повчальна.

Я проаналізувала їхній рахунок і ще 25 рахунків інших українських SaaS за останній квартал. Те, що я знайшла, повторюється з лякаючою регулярністю. Українські стартапи, які виросли з MVP до бізнесу з тисячами користувачів, систематично переплачують AWS у 2-4 рази. Не через те, що неправильно вибрали стек. Через те, що ніхто з них не дивиться на cost-метрики, доки рахунок не вибухне.

Що сталося в конкретному кейсі

У клієнта Lambda-функція, що обробляла webhook від платіжного провайдера. Розробник в одному з мікросервісів додав фічу «replay помилкових платежів». Логіка: якщо webhook не оброблено, retry кожні 5 хвилин до 12 годин. На папері красиво. На практиці — за тиждень у системі назбиралося 2.3 мільйона «помилкових» подій, які не оброблялися (тестова конфігурація з мокованими payments), і Lambda крутилася в цикл 24/7, обробляючи мільйони викликів.

Це коштувало $28K за вересень. Розробник не помітив, бо моніторинг налаштований на час відповіді і помилки, а не на кількість викликів. Ніхто не дивився на CloudWatch invocation count. CTO не дивився на Cost Explorer.

Інші повторювані помилки

З 26 проаналізованих рахунків я виокремила п’ять найчастіших причин переплати:

1. Забуті dev/staging оточення. Команда створила тестове середовище у березні, забула вимкнути. У вересні вона коштувала $3,800 на місяць. У 18 з 26 кейсів цей пункт давав $1-5K зайвих витрат.

2. NAT Gateway замість VPC Endpoint. Дані з Lambda в RDS йдуть через NAT Gateway, який тарифікується за GB. На середньому SaaS це $400-2,000 на місяць зайвих. Перехід на VPC Endpoint — два дні роботи DevOps і економія до 80% на цьому пункті.

3. CloudWatch logs без TTL. Логи накопичуються вічно. У одного клієнта в S3 лежало 4.2 TB логів за два роки. Це $96 на місяць тільки за storage, плюс індексування — ще $200-400. Налаштувати lifecycle policy на 14-30 днів — 30 хвилин роботи.

4. RDS у режимі on-demand для прод-бази. Команда найняла seasonal-проект, забула про резервування. db.t3.medium on-demand коштує $35/місяць. Її ж Reserved (1-річне) — $19. Команди, що сидять на on-demand роками, переплачують 30-60% на базі.

5. S3 в Standard замість Intelligent Tiering. Якщо ваш об’єкт не зчитується частіше за раз на місяць, він має бути в Intelligent Tiering, а не Standard. Різниця в ціні — 30-60%. На середньому SaaS з 500 GB старих файлів — $50-150 на місяць.

Що з цим робити

Найдешевший хід — налаштувати AWS Cost Anomaly Detection з порогом 30% від попереднього періоду. Це безкоштовно. Алерт прийде в Slack коли рахунок раптом зростає. У 6 з 26 кейсів цей простий алерт зекономив би тисячі доларів — команди дізнавалися про проблему через тижні, коли можна було через години.

Друге — щомісячний 30-хвилинний огляд Cost Explorer. Команда DevOps або CTO має раз на місяць дивитися: куди ростуть витрати, які сервіси раптом подорожчали, чи є аномалії. Це не аудит, це гігієна.

Третє — Reserved Instances для прод-середовищ, які ви точно експлуатуватимете 6+ місяців. Це найшвидша економія. 30% від обороту на компуті може покрити квартал найму.

Ця тема — частина ширшої історії про справжню фінансову гігієну українських стартапів. Команди, що не дивляться на свої cloud-витрати, схожі на команди, що не дивляться на свою юніт-економіку. Ти можеш жити так роками. Поки можеш.

Автор
Катерина Сахно
Колишній аналітик Dragon Capital. Розбирає юніт-економіку, runway і фінансову гігієну українських технологічних компаній.