AWS Lambda: хранение кода в собственном S3 и увеличение квоты до 300 ГБ

Новое обновление AWS Lambda позволяет хранить код функций в собственных S3-бакетах клиента, что снимает прежнюю региональную квоту на хранение кода и увеличивает управляемый лимит по умолчанию с 75 до 300 ГБ на регион. При этом ограничение на размер отдельной функции не изменилось, и после замены об

AWS Lambda: хранение кода в собственном S3 и увеличение квоты до 300 ГБ

Новое обновление AWS Lambda позволяет хранить код функций в собственных S3-бакетах клиента, что снимает прежнюю региональную квоту на хранение кода и увеличивает управляемый лимит по умолчанию с 75 до 300 ГБ на регион. При этом ограничение на размер отдельной функции не изменилось, и после замены объекта в S3 требуется вызов UpdateFunctionCode для применения изменений. Это нововведение, названное Self-Managed Code Storage, даёт разработчикам больше гибкости и контроля над развёртыванием.

Что такое Self-Managed Code Storage и как это работает

Self-Managed Code Storage — это функция, которая позволяет задавать до пяти ссылок на S3-объекты, используемые Lambda как источники кода. Каждая ссылка может вести на объект размером до 225 ГБ, что значительно превышает предыдущие лимиты. Однако сама функция по-прежнему ограничена 50 МБ сжатого пакета (250 МБ распакованного). При создании или обновлении функции через API, CLI или SDK разработчик указывает ARN S3-объекта, и Lambda обращается к нему при каждом холодном старте. Для этого необходимо предоставить сервису права на чтение из бакета через IAM-роль выполнения функции.

Почему AWS увеличила квоту на хранение кода до 300 ГБ?

Ранее весь код Lambda-функций хранился в управляемом AWS слое, и квота на регион составляла 75 ГБ. Многие клиенты с большим количеством функций или частыми обновлениями упирались в этот лимит, особенно в активно развивающихся проектах. Увеличение квоты до 300 ГБ и возможность вынести хранение кода в инфраструктуру клиента снимает одно из ключевых ограничений сервиса. Это продолжает тренд на увеличение гибкости Lambda, включая увеличение лимитов на количество функций, поддержку контейнеров и расширение сетевых возможностей.

Технические ограничения и особенности использования

Несмотря на возможность ссылаться на объекты до 225 ГБ, размер развёрнутого кода функции остаётся прежним: 50 МБ в сжатом виде и 250 МБ распакованного. 225 ГБ — это запас для хранения нескольких версий или связанных артефактов в одном объекте. Lambda не кэширует код из S3 на уровне сервиса — каждый раз при холодном старте он загружается заново, что может незначительно увеличить задержку первого вызова. AWS рекомендует использовать этот режим для функций с большими пакетами или для централизованного управления кодом.

Как обновить код функции при хранении в S3?

При обновлении объекта в S3 Lambda не подхватывает новую версию автоматически — нужно явно вызвать UpdateFunctionCode с тем же ARN. Это сделано для сохранения контроля над версиями. Нововведение не затрагивает существующие рабочие процессы, и разработчики могут продолжать использовать привычные методы развёртывания. Поддержка со стороны Terraform-провайдера пока находится в статусе открытого запроса на улучшение (terraform-provider-aws41234), поэтому для автоматизации через Terraform могут потребоваться временные обходные пути.

Кому будет полезно это обновление

Нововведение в первую очередь полезно DevOps-инженерам и платформенным командам, управляющим десятками и сотнями Lambda-функций. Им больше не нужно следить за региональной квотой в 75 ГБ — можно хранить код в собственном S3, где лимиты определяются самим клиентом. Также это упрощает аудит: все артефакты находятся в одном месте под контролем клиента. Для разработчиков, использующих Lambda в небольших проектах, изменение менее значимо, но возможность хранить код в S3 может быть полезна для быстрого переключения между версиями или совместного использования пакетов между несколькими функциями.

Какие регионы поддерживают Self-Managed Code Storage?

S3-бакеты должны находиться в том же регионе, что и Lambda-функция, иначе возникнут задержки или ошибки доступа. Российским и СНГ-пользователям стоит учитывать, что если бакет находится в регионе, недоступном из-за санкций, может потребоваться дополнительная настройка сетевого доступа. AWS планирует добавить поддержку в консоль управления и расширить документацию в ближайшие месяцы.

Будущее управляемого хранения кода в Lambda

Ожидается, что AWS в ближайшее время добавит поддержку Self-Managed Code Storage в консоль управления и обновит Terraform-провайдер. В долгосрочной перспективе можно ожидать, что AWS вовсе откажется от управляемого хранения кода в пользу S3, полностью переложив ответственность на клиента. Это важный шаг к более масштабируемой и управляемой серверлесс-архитектуре.

Итог

Нововведение AWS Lambda снимает одно из главных ограничений сервиса — региональную квоту на хранение кода. Увеличение лимита до 300 ГБ и возможность использовать собственный S3 дают больше гибкости и контроля. Хотя размер функции остался прежним, это важный шаг к более масштабируемой и управляемой серверлесс-архитектуре. Следите за обновлениями Terraform-провайдера, чтобы полностью автоматизировать новый процесс.