AWS лямбда против AWS CLI - PullRequest
       22

AWS лямбда против AWS CLI

0 голосов
/ 07 ноября 2018

Я хотел бы знать, какой из этих двух методов лучше:

  • Написание функции в экземпляре EC2 с использованием AWS CLI
  • Написание функции с использованием AWS Lambda

Я предпочитаю писать код в AWS Lambda, но я хотел бы знать, есть ли какие-либо конкретные преимущества при использовании Lambda.

P.S .: Те функции, которые я должен выполнить, практически одинаковы (они используют один и тот же алгоритм), поэтому нет различий в функциональности.

Привет

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

AWS Lambda работает как служба без сохранения состояния, значит, мы не можем хранить файлы внутри функции. Мы создали целое приложение с 60 лямбда-функциями. Из 60 54 лямбда-функций запускаются API-шлюзом, остальные действуют как сервисные модули (средства, вызываемые другой лямбда-функцией).

Если вы используете лямбда-функцию в качестве микросервиса, вы можете получить больше в плане производительности и цены.

Мое предложение: не создавайте одну лямбда-функцию для запуска всей системы. Перейти с методом микроуслуг.

0 голосов
/ 07 ноября 2018

Я понимаю, что вы хотели бы знать, есть ли какое-то конкретное преимущество использования AWS Lambda вместо использования инстансов EC2.

Вот некоторые преимущества AWS Lambda:

  • Цена снижена. В отличие от AWS EC2, Lambda следует модели ценообразования с оплатой по факту, и первый миллион вызовов попадает в категорию бесплатного уровня [1]. В зависимости от варианта использования вы можете сэкономить много средств, используя AWS Lambda в своей производственной среде.

  • Нет данных системного администрирования. AWS Lambda следует парадигмам безсерверных вычислений, и нет необходимости запускать серверы, настраивать их в соответствии с вашими потребностями и поддерживать их.

  • Функция AWS Lambda может быть очень удобной для задач автоматизации и может запускаться рядом служб [2]. Например: если вы загружаете файл в корзину AWS S3, вы можете выбрать лямбда-функцию, которая сжимает файл и сохраняет его в другой корзине S3.

Однако у Lambda есть и некоторые недостатки по сравнению с EC2 / ECS:

  • Лямбда-функции подвержены проблеме холодного запуска. Проблема холодного запуска обычно возникает, когда лямбда-функция не вызывается в течение достаточно долгого времени. AWS развертывает новый контейнер для функции Lambda в бэкэнде, и время от времени могут вызываться задержки [3].

  • Может быть трудно отладить журналы и показатели лямбда-функции AWS в Amazon CloudWatch.

  • Лямбда-функция имеет поддерживаемое максимальное время выполнения 15 минут, и существует ограничение по времени. Поэтому может быть невозможно использовать лямбда-функцию для трудоемких операций (например, обработка больших плоских файлов).

Amazon EC2 имеет полезную нагрузку системного администрирования и может стоить немного дороже, но проблем с Lambda Cold Start нет, и он может даже работать для длительных задач. Поэтому вы можете использовать EC2 или Lambda в зависимости от вашего конкретного случая использования.

Надеюсь, этот ответ поможет вам.

Ссылки

[1]. https://aws.amazon.com/lambda/pricing/

[2]. https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html

[3]. https://docs.aws.amazon.com/lambda/latest/dg/running-lambda-code.html

...