Как оптимизировать инфраструктуру с помощью AWS Serverless
Можно ли сократить расходы на инфраструктуру в разы, просто изменив архитектуру? CTO Freedom Cloud Kazakhstan Арман Нургалиев объясняет, когда serverless действительно экономит бюджеты, почему Lambda — не универсальное решение и в каких сценариях она работает лучше Kubernetes.
О себе
Мой путь начался в электроэнергетике, позже я перешел в IT. Сейчас мы с командой строим публичные и вычислительные облака в Казахстане, и я хочу поделиться опытом в сфере облачных решений.
Что такое serverless
В инфраструктуре есть три классические модели:
- IaaS — вы покупаете машину и сами обслуживаете ее.
- PaaS — берете машину в лизинг, а компания помогает с обслуживанием.
- SaaS — вы просто вызываете такси, не думая о машине.
К ним добавилась четвертая модель — FaaS, Function as a Service, или serverless. Здесь код запускается только по запросу. Это дает абстракцию, эластичность и экономию: вы платите только за выполненные операции.
Пример: вендинговый автомат работает только тогда, когда вы делаете заказ. Ночью он простаивает — и вам не нужно оплачивать его работу. Так же и с serverless: если нагрузка непостоянная, расходы снижаются в разы.
Практика
Я работал в Саудовской Аравии с тикетинговой платформой для концертов. В сезон мы платили $12 000 в месяц за Kubernetes и базы данных. После перехода на AWS Lambda расходы сократились до $6000 в сезон и $3000 в несезон.
Lambda автоматически масштабируется: приходит запрос — функция запускается, обрабатывает его и завершает работу. Вы платите только за выполненный запрос.
Ограничения Lambda
— выполнение максимум 15 минут
— поддержка не всех языков
— cold start — задержка при первом запуске
— сложный мониторинг и дебаг — нужны инструменты вроде AWS CloudWatch.
Где использовать
Serverless подходит для задач с нерегулярной нагрузкой: отчеты, HR‑системы, пиковые события, бэкапы. Например, бухгалтерия Aviasales формирует отчеты несколько раз в день — контейнер держать 24/7 не нужно, Lambda справляется за минуты.
Serverless снижает расходы, ускоряет масштабирование и позволяет стартапам обходиться без больших DevOps‑команд. Но это не универсальное решение: при постоянной нагрузке выгоднее использовать кластеры.
