AWS Lambda — флагманский FaaS-сервис Amazon Web Services, запущенный в 2014 году. Выполняет функции (фрагменты кода) в ответ на события без необходимости настраивать или поддерживать серверы. Lambda поддерживает Node.js, Python, Java, Go, .NET, Ruby и контейнерные образы (до 10 ГБ).
Как работает
Lambda-функция — код + конфигурация (память, timeout, IAM-роль). Триггеры: API Gateway (HTTP), S3 (событие загрузки файла), SQS/SNS (очереди сообщений), DynamoDB Streams, EventBridge (cron-расписание), Kinesis, ALB. При первом вызове Lambda создаёт execution environment (Cold Start): скачивает пакет функции, инициализирует runtime. Время cold start: Go ~50 мс, Node.js ~100 мс, Python ~200 мс, Java ~1000 мс.
Execution environment остаётся тёплым после первого вызова ~5–15 минут (Warm Start ~1–10 мс). Для критически low-latency задач — Provisioned Concurrency: Lambda держит N инстанций тёплыми (доп. оплата). Максимальное время выполнения: 15 минут. Максимальный объём памяти: 10 240 МБ. CPU пропорционален памяти (нет прямой настройки CPU).
Free Tier: первый миллион вызовов в месяц бесплатен, затем $0.20 за 1 млн вызовов + $0.0000166667 за GB-секунду. Типичная функция (128 МБ, 200 мс) стоит $0.33 за миллион вызовов.
История
AWS Lambda анонсирована на AWS re:Invent в ноябре 2014 года. Создатель концепции — Тим Вагнер (Tim Wagner), VP Lambda в Amazon. Первоначально поддерживал только Node.js. Python добавлен в 2015 году. Java в 2015 году. Go в 2018 году. Поддержка контейнерных образов OCI добавлена в декабре 2020 года. Lambda popularized serverless-вычисления как парадигму; Azure Functions и Google Cloud Functions появились в 2016 году как прямые конкуренты.
AWS Lambda: интеграция с AWS-сервисами
Lambda органично интегрируется со всей экосистемой AWS: S3 (trigger при загрузке файла), DynamoDB (Streams — реакция на изменение записей), SQS/SNS (обработка сообщений), API Gateway (HTTP trigger для serverless REST API), EventBridge (cron-триггеры). Паттерн: S3 → Lambda → DynamoDB реализует простой ETL-пайплайн без серверов.
Яндекс Cloud Functions — российский аналог AWS Lambda. Поддерживает Node.js, Python, Go, Java, PHP, Bash. Триггеры: Message Queue (аналог SQS), Object Storage (аналог S3), Cron. Совместимость с AWS SDK минимальная — нужна переработка под Yandex SDK. Для проектов с требованием хранения данных в РФ Yandex Cloud Functions + Yandex Object Storage — рабочая serverless-альтернатива.
На что обращать внимание
Lambda vs VPS: для непостоянной нагрузки (несколько тысяч запросов в сутки) Lambda значительно дешевле VPS. При постоянной нагрузке 10 000+ запросов/мин выгоднее VPS или контейнеры. Vendor lock-in: Lambda тесно интегрирована с AWS-экосистемой; перенос на Azure/GCP требует рефакторинга. Localstack позволяет эмулировать Lambda локально для разработки и тестирования.
Lambda vs традиционный хостинг
AWS Lambda — serverless: нет сервера для управления, оплата за миллисекунды выполнения. Lambda поддерживает: Node.js, Python, Java, Go, Ruby. Docker-образы до 10 ГБ — с Lambda Container Images. Для нерегулярных задач Lambda дешевле, чем VPS: 1 млн вызовов в месяц — бесплатно (Free Tier). Выше — $0.20 за каждый следующий миллион. Холодный старт: первый вызов после простоя — 100-500 мс задержки. Provisioned Concurrency устраняет холодный старт ценой постоянных расходов. Хранилище S3 + Lambda — классический паттерн: загрузка файла в S3 триггерит Lambda для обработки (ресайз изображений, конвертация документов). FaaS-аналоги: Яндекс Cloud Functions, Google Cloud Functions, Azure Functions. nginx + Lambda через AWS API Gateway — типичная serverless архитектура.