Pull to refresh

Comments 12

UFO landed and left these words here

Ох ничего себе опыт взлом! По умолчанию параллельно может быть запущенно 1000 лямбд. Если нужно больше - надо запрашивать

Вопрос как я понял наоборот про ограничение количества запусков

У AWS на этом построен бизнес. Вы либо платите хорошо обученным спецам, и за консалт, а они помогают вам ответить на основные вопросы и собрать нормальное решение. Либо с ужасом собираете всевозможные золотые грабли на бесплатных планах.

Есть возможность ораничить максимальное количество параллельно запущенных лямбд. Например разрешить запускаться только по одному экземпляру лямбды на запрос. В таком случае стоит расчитывать что один экземпляр этой лямбды в теории сможет работать без остановки и можно расчитать итоговую сумму.

В принципе, внутри самого aws есть информация о текущих расходах, и можно настроить так, чтобы он сдал письма.

Но ситуацию это лечит слабо. Выж выключать проект не будете. И вот тут вся эта масштабируемость может сыграть злую шутку. В варианте без масштабирования у вас все будет тормозить, и возможно клиенты даже получат контент, но больше какой-то суммы вы не заплатите, и много запросов вы просто не обслужите. Если в вас придет сколькото гигабит запросов в лябды, боюсь счётчик начнет крутится адски быстро...

В целом ещё вопрос что будет дешевле и при штатном использовании, лямбда, или свой небольшой инстанс/инстанцы.

Насколько мне известно, использование warmers для решения проблем с холодным стартом не рекомендуется. AWS раскидывает запросы по разным инстансам в разных AZ и создать "вручную" соответствующий паттерн будет проблематично. Реальный запрос может все равно прилететь в непрогретую лямбду. Вместо этого лучше использовать штатный Provisioned Concurrency.

Лимит в 250Mb на код легко обходится, если вместо zip архивов использовать docker images (для них лимит 10Gb). Как вариант, для некритичных вещей, можно закинуть разделяемый код/данные на EFS и монтировать при старте лямбд.

а она навсегда дается? у Амазона тоже есть на первый год аккаунта бесплатный микро инстанс.

Навсегда, но там нюанс, надо следить за лимитами самостоятельно, если вдруг за них выйти или подключить услуги без "Always Free" тогда включается счетчик 30 дней и после него автоматически начинают снимать деньги или сервер превращается в тыкву

Время холодного старта сильно зависит от используемого языка, кроме того еще в 2019 его сильно улучшили кардинальными изменениями сетевого стека лямбд. Еще есть слабодокументированный лайфхак - выносить всю инициализацию вне хендлера лямбды, тк эта часть кода выполняется при инциализации контейнера и без ограничений на CPU. Ну и как правильно сказали - не стоит городить костыли, когда есть Provisioned Concurrency. На мой взгляд проблема cold start сильно раздута и в реальной жизни не так много приложений, где она вообще на что-то влияет - так ни один из заказчиков, с которыми я работал за последние годы, пока не страдал от запуска его кода на 100ms позже.

UFO landed and left these words here
Sign up to leave a comment.

Articles