Команда из пяти разработчиков пережила «адские холодные старты» на AWS Lambda и приняла решение перейти на контейнеры Fargate, что значительно упростило обработку машинного обучения. Это важно, ведь многие компании всё ещё полагаются на серверлесс-технологии, не учитывая их лимитации.
Предыстория перехода
Весь прошлый год команда использовала AWS Lambda для обработки огромного потока данных. Приёмы серверлесс подхода позволяли обрабатывать до 3 миллионов событий ежедневно. Однако с введением собственных машинных моделей система начала демонстрировать довольно значительные ограничения.
При расчёте затраты на AWS Lambda они свидетельствовали о значительной экономии, особенно в периоды низкой загрузки, когда расходы сокращались почти до нуля. Но когда команде понадобилось работать с объемными моделями, такими как sentence-transformers, возникли проблемы, связанные с обременительными холодными стартами: время отклика увеличивалось до 12 секунд!
Переключение на контейнеры
Переход на ECS Fargate был обусловлен необходимостью эффективного выполнения ML-заданий. Процесс миграции оказался не таким простым, как ожидалось: потребовалось создание задач, настройка ролей IAM и оптимизация ресурсов. Но результат превзошёл ожидания — команда получила возможность использовать контейнеры с Python 3.12 и нужными библиотеками без ограничений по размеру.
Теперь они используют FastAPI вместо Lambda, что позволило исключить проблемы с холодными стартами. Модель загружается единожды при запуске контейнера, а затем используется подготовленным и готовым к работе сервисом.
Выводы для разработчиков
Для российской ИТ-аудитории опыт команды показывает, что использование серверлесс технологий может иметь свои ограничения, особенно при внедрении сложных ML-процессов. Если ваша команда планирует интеграцию в области машинного обучения, стоит рассмотреть альтернативы, такие как контейнерные решения, которые более масштабируемы и гибки, чем традиционные серверлесс-сервисы.
Впереди команда планирует оптимизацию своих Pipeline на базе Fargate и изучение новых возможностей контейнеризации в облаках. Это направление обещает стать важной частью их долгосрочной стратегии.