Описание проекта
Главная причина выбора такого подхода — экономика и масштабирование. Трафик рваный и непредсказуемый: часами тишина, потом резкий всплеск. Мы хотим, чтобы бэкенд масштабировался до нуля, когда им никто не пользуется, и мы платили только за фактические вызовы и потреблённые ресурсы, а под нагрузкой автоматически разворачивался вширь без нашего участия. Холодные старты нужно держать в разумных пределах: адекватный подбор памяти, лёгкие зависимости и provisioned concurrency только там, где критичный путь действительно этого требует. Схему доступа к DynamoDB важно спроектировать заранее, а не прикручивать потом, — именно это решение определяет большую часть производительности и стоимости.
Всё должно воспроизводиться как Infrastructure as Code — Terraform или AWS SAM/CDK на ваш выбор, но никаких ручных кликов в консоли. Нужны отдельные окружения dev, staging и production, поднимаемые из одних шаблонов, IAM-роли с минимальными правами на каждую функцию, структурированное логирование и трассировка (CloudWatch, X-Ray), алармы на ошибки и троттлинг, а также CI/CD-пайплайн с деплоем по мержу. Просим включить:
— API Gateway и обработчики Lambda с валидацией входных данных и внятными ответами об ошибках;
— проектирование DynamoDB (одно- или многотабличное) с задокументированными паттернами доступа;
— EventBridge/SQS для фоновых задач, ретраи и dead-letter-очереди;
— полный IaC, разделение окружений и рабочий пайплайн деплоя.