AWS Lambda

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:41, 24 декабря 2016.
AWS Lambda
Aws.png
300px
GIMP version 2.6
Разработчики: Amazon Web Services
Выпущена: November 2014; 6 years ago (2014-11)
Предыдущий выпуск: v.10 / 29 August 2016 года; 4 years ago (2016-08-29)
Операционная система: Linux, OS X, Windows
Веб-сайт aws.amazon.com/ru/lambda/

AWS Lambda – это предоставляемый ресурсом Amazon бессерверный вычислительный веб-сервис, как часть веб-служб Amazon. Он был введен в 2014 году. Lambda запускает ваш программный код в ответ на определенные события и отвечающий за автоматическое выделение необходимых вычислительных ресурсов. AWS Lambda можно использовать для расширения функционала других веб-сервисов AWS с помощью индивидуального кода или создания собственных веб-сервисов, использующих масштабируемость, производительность и безопасность AWS. AWS Lambda может автоматически запускать программный код в ответ на наступление различных событий, таких как изменение объектов в корзине Amazon S3 или обновление таблицы в Amazon DynamoDB.

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

Функция AWS Lambda

Код, запускаемый в AWS Lambda, называется функцией Lambda. После того как функция Lambda создана, она пребывает в состоянии постоянной готовности к запуску, подобно формулам электронных таблиц. Каждая функция содержит созданный вами код и некоторые данные конфигурации, включая имя функции и требования к ресурсам. Функции Lambda – это функции без сохранения состояния, не зависящие от инфраструктуры, поэтому Lambda может быстро загрузить столько копий функции, сколько нужно для масштабирования в соответствии с количеством входящих событий.

После загрузки кода в AWS Lambda можно связать функцию с теми или иными ресурсами AWS, например с корзиной Amazon S3, таблицей Amazon DynamoDB, потоком Amazon Kinesis или уведомлением Amazon SNS. При изменении состояния ресурса Lambda выполнит функцию и настроит вычислительные ресурсы для продолжения обслуживания входящих запросов.

Основные возможности

Расширение функционала сервисов AWS с помощью собственного программного кода.

AWS Lambda позволяет добавлять ваш код к ресурсам AWS, например, к корзинам сервиса Amazon S3 и таблицам Amazon DynamoDB, благодаря чему вы сможете легко выполнить нужные операции с данными на этапе их вхождения или перемещения в рамках облака. Начать работу с AWS Lambda совсем не сложно. Сначала вам нужно создать необходимые функции, загрузив свой код (или создав его непосредственно в консоли Lambda), а также задав объем памяти, период ожидания и роль AWS Identity and Access Management (IAM). Затем необходимо указать ресурс AWS, являющийся триггером для функции: конкретную корзину сервиса Amazon S3, таблицу Amazon DynamoDB или поток Amazon Kinesis. Зафиксировав изменение ресурса, Lambda выполнит заданную вами функцию, а также запустит вычислительные ресурсы, необходимые для обработки поступающих запросов, и будет управлять ими.

Создание собственных серверных сервисов

Можно использовать AWS Lambda для создания новых веб-сервисов для ваших приложений, которые будут активироваться по требованию с помощью API Lambda или конечных точек пользовательских API, созданных с использованием Amazon API Gateway. Обработка действий пользователей с помощью Lambda, а не устройства клиента, позволяет работать вне зависимости от пользовательских операционных систем, снижает энергопотребление на стороне клиента и упрощает установку обновлений.

Полностью автоматизированное администрирование

Благодаря тщательному управлению инфраструктурой AWS Lambda, ваш код исполняется в высокопроизводительной, отказоустойчивой среде, что позволит вам сосредоточить свои усилия на разработке разнообразных веб-сервисов. Благодаря Lambda, вам больше не придется заботиться об обновлениях серверной ОС, а также думать о расширении существующих или вводе в эксплуатацию новых серверов по мере роста нагрузки. AWS Lambda обеспечивает эффективное исполнение кода, выполняет полное администрирование, техническое обслуживание, исправления уязвимостей системы и обеспечивает возможность мониторинга и ведения логов средствами Amazon CloudWatch.

Встроенная отказоустойчивость

Lambda обладает встроенной отказоустойчивостью. AWS Lambda поддерживает необходимые объемы вычислительных ресурсов в различных зонах доступности в каждом из регионов, защищая ваш код от неисправностей отдельных единиц оборудования или сбоев в работе центров обработки данных (ЦОД). AWS Lambda и функционал веб-сервиса обеспечивают предсказуемый и надежный режим эксплуатации. Сервис AWS Lambda разработан для обеспечения высокой доступности как самого веб-сервиса, так и исполняемых им функций. Веб-сервис работает без плановых простоев и перерывов на обслуживание.

Автоматическое масштабирование

AWS Lambda вызывает код только тогда, когда это необходимо, и автоматически масштабирует ресурсы в соответствии с объемом поступающих запросов без дополнительных действий с вашей стороны. Количество обрабатываемых запросов не ограничено. AWS Lambda запускает ваш код в течение нескольких миллисекунд после события, и поскольку масштабирование происходит автоматически, производительность остается стабильно высокой даже при увеличении частоты событий. Поскольку код не требует сохранения состояний, Lambda может создавать необходимое количество инстансов без долгих процедур развертывания или задержек на настройку.

Исполнение кода в периферийных местоположениях

Lambda@Edge позволяет запускать код в глобальных периферийных местоположениях AWS без выделения серверов и управления ими и обеспечивать ответ на запросы конечных пользователей с минимальной сетевой задержкой. Сервис позволяет загрузить код Node.js в AWS Lambda и настроить вызов пользовательской функции в ответ на запросы сервиса Amazon CloudFront (т. е. при получении запроса пользователя, при перенаправлении запроса в адрес сервера-источника, при возврате запроса от сервера-источника, а также непосредственно перед отправкой ответа конечному пользователю).Код будет готов к исполнению в каждом периферийном местоположении AWS при получении запроса на контент. В зависимости от количества запросов в периферийных местоположениях будут масштабироваться ресурсы для исполнения кода.

Встроенная модель безопасности

AWS Lambda обеспечивает безопасное взаимодействие кода с другими сервисами AWS посредством встроенного пакета AWS SDK и интеграции с сервисом AWS Identity and Access Management (IAM). AWS Lambda запускает ваш код в облаке VPC по умолчанию. Можно настроить сервис AWS Lambda так, чтобы он имел доступ к ресурсам в пределах облака VPC. Вы можете применять пользовательские группы безопасности и списки контроля доступа к сети, для того чтобы предоставить функциям Lambda доступ к ресурсам в облаке VPC.

Подключение собственного кода

Для работы с AWS Lambda не нужно осваивать новые языки, инструменты или инфраструктуру. Сервис работает с любыми сторонними библиотеками, даже встроенными. AWS Lambda поддерживает код Java, Node.js, C# и Python. В будущем планируется поддержка и других языков программирования.

Оплата по факту использования

Используя AWS Lambda, вы платите только за выполненные запросы и время вычислений, необходимое для запуска вашего кода. Счет за использование AWS Lambda выставляется с точностью до 100 миллисекунд, благодаря чему автоматическое масштабирование от нескольких запросов в день до тысяч запросов в секунду становится простым и экономичным.

Гибкая модель распределения ресурсов

Вы можете задать необходимый объем памяти для своих функций, и AWS Lambda выделит пропорциональное количество ресурсов ЦП, пропускной способности сети и операций чтения/записи.

Примечание