Является ли AWS Fargate настоящим бессерверным, как Lambda? Он автоматически выключается, когда завершает задачу?

Это действительно не было ясно для меня в Документах. И конфигурация консоли очень запутанная.

Будет ли кластер Docker, работающий в режиме Fargate после выключения балансировщика нагрузки, не взимать с меня плату, пока он не используется?

А как насчет холодного запуска? Нужно ли мне заботиться об этом в Fargate, как в Lambda?

Он менее горизонтален, чем лямбда? Лямбда, подключенная к API Gateway, будет порождать новую функцию для каждого параллельного запроса. Будет ли это делать и Fargate? Или это решит балансировщик нагрузки?

Некоторое время я запускал приложения Flask / Django в Lambda (с использованием Serverless / Zappa), есть ли какие-либо преимущества в их переносе на Fargate?

Кажется, что это дороже, чем Lambda, но если ограничения Lambda не являются проблемой, тогда Lambda всегда должна быть лучшим выбором, верно?


person Mojimi    schedule 23.07.2019    source источник


Ответы (2)


Будет ли кластер Docker, работающий в режиме Fargate после выключения балансировщика нагрузки, не взимать с меня плату, пока он не используется?

  • Это будет зависеть от того, как вы настроите свою AutoScaling Group. Если вы позволите уменьшить масштаб до 0, тогда да.

А как насчет холодного запуска? Нужно ли мне заботиться об этом в Fargate, как в Lambda?

  • Здесь было проведено хорошее исследование: https://blog.cribl.io/2018/05/29/analyzing-aws-fargate/ Но вывод: для небольших экземпляров вы больше не должны замечать и ~ 40 секунд времени, чтобы перейти в рабочее состояние. Для более крупных это займет больше времени.

Он менее горизонтален, чем Lambda? Лямбда, подключенная к API Gateway, будет порождать новую функцию для каждого параллельного запроса. Будет ли это делать и Fargate? Или это решит балансировщик нагрузки?

  • ECS не будет создавать новый экземпляр для каждого параллельного запроса, любое масштабирование будет выполняться за пределами группы AutoScaling. Балансировщик нагрузки не контролирует масштабирование, он просто балансирует нагрузку. Однако показатели, которые он может дать, можно использовать для определения необходимости масштабирования.

Я уже некоторое время запускаю приложения Flask / Django на Lambda (с использованием Serverless / Zappa), есть ли преимущества в их переносе на Fargate?

  • Я не использовал Flask или Django, но основная причина, по которой люди склонны переходить на бессерверные, - это избавление от необходимости поддерживать масштабирование серверов, включая управление типами экземпляров, планирование кластера, оптимизацию использования кластера.

@abdullahkhawer, я согласен с его мнением о приверженности лямбдам. Если вам не требуется, чтобы что-то всегда работало и всегда использовалось в 99% случаев, лямбда-выражения будут дешевле, чем запуск виртуальной машины.

Для примера ценообразования

1 экземпляр EC2 t2.medium по запросу = ~ 36 долларов США в месяц

2 миллиона вызовов выполняющейся лямбда-выражения размером 256 МБ за 3 секунды = 0,42 доллара США в месяц

person JohnB    schedule 23.07.2019

Используя AWS Fargate, вы платите только за объем виртуальных ЦП и ресурсов памяти, которые запрашивает ваше контейнерное приложение с момента извлечения образов контейнеров до завершения задачи AWS ECS (работающей в режиме Fargate). Взимается минимальная плата за 1 минуту. Итак, вы платите до тех пор, пока ваша задача (группа контейнеров) не будет запущена, больше похоже на AWS EC2, но на поминутной основе и в отличие от AWS Lambda, где вы платите за запрос / вызов.

AWS Fargate не создает контейнеры при каждом запросе, как в AWS Lambda. AWS Fargate просто запускает контейнеры в парке инстансов AWS EC2, внутренне управляемых AWS.

AWS Fargate теперь поддерживает возможность запускать задачи по расписанию и в ответ на события AWS CloudWatch. Это упрощает запуск и остановку контейнерных служб, которые необходимо запускать только в определенное время, чтобы сэкономить деньги.

Принимая во внимание ваш вариант использования, если ваши приложения не создают никаких проблем в производственной среде из-за каких-либо ограничений AWS Lambda, то AWS Lambda - лучший выбор. Если AWS Lambda вызывается слишком часто (например, более 1000 одновременных вызовов в каждый момент времени) в производственной среде, то перейдите на AWS EKS. или AWS Fargate, поскольку AWS Lambda может стоить вам дороже.

person abdullahkhawer    schedule 23.07.2019
comment
Спасибо за ответ. Я понимаю, что из-за модели ценообразования Lambda было бы дорого, если бы у вас было слишком много одновременных вызовов, но опять же, контейнер Fargate, который обрабатывает вызовы 1k, должен быть довольно дорогим в обслуживании на приличной скорости, не так ли? - person Mojimi; 23.07.2019
comment
@Mojimi, AWS Lambda будет стоить дорого, если функции будут вызываться непрерывно 24/7 (все время), и да, параллелизм также увеличит счет, но использование AWS Fargate имеет смысл только тогда, когда вам нужно, чтобы ваше приложение работало постоянно или постоянно. в течение определенного периода времени (из-за новой функции). P.S .: В качестве примера я взял 1K вызовов. Призывов могло быть больше или меньше. - person abdullahkhawer; 23.07.2019