Características de AWS Lambda

¿Por qué AWS Lambda?

AWS Lambda es un servicio de computación sin servidor que ejecuta código en respuesta a eventos y administra automáticamente los recursos de computación subyacentes. Estos eventos pueden ser cambios de estado o una actualización, como que un usuario coloque un artículo en un carrito de la compra en un sitio web de comercio electrónico. Puede utilizar AWS Lambda para ampliar otros servicios de AWS con lógica personalizada o crear sus propios servicios backend que funcionen a escala, rendimiento y seguridad de AWS. AWS Lambda ejecuta de forma automática el código en respuesta a varios eventos, como las solicitudes HTTP a través de Amazon API Gateway, las modificaciones de objetos en los buckets de Amazon Simple Storage Service (Amazon S3), las actualizaciones de tablas en Amazon DynamoDB y las transiciones de estado en AWS Step Functions.

Lambda ejecuta el código en una infraestructura informática de alta disponibilidad y lleva a cabo toda la administración de los recursos informáticos. Entre otras cosas, se encarga del mantenimiento del servidor y del sistema operativo, del aprovisionamiento de capacidad y del escalado automático, de la implementación de código y de parches de seguridad, y del monitoreo y el registro del código. Lo único que tiene que hacer es proporcionar el código.

Características clave del producto

AWS Lambda permite agregar lógica personalizada a los recursos de AWS, como los buckets de Amazon S3 y las tablas de Amazon DynamoDB, lo que permite aplicar fácilmente la informática a los datos a medida que entran o transitan por la nube.

Es fácil comenzar a utilizar AWS Lambda. Primero debe crear la función. Para ello, cargue el código (o créelo directamente en la consola de Lambda) y elija la capacidad de memoria, el tiempo de espera y el rol de AWS Identity and Access Management (IAM). A continuación, especifique el recurso de AWS para desencadenar la función. Puede ser un bucket concreto de Amazon S3, una tabla de Amazon DynamoDB o una transmisión de Amazon Kinesis. Cuando el recurso cambie, Lambda ejecutará la función, y lanzará y administrará los recursos informáticos según sea necesario para mantener el ritmo de las solicitudes entrantes.

Puede utilizar AWS Lambda para crear nuevos servicios de aplicaciones backend desencadenados bajo demanda mediante la interfaz de programa de aplicación (API) de Lambda o puntos de enlace de API personalizados creados mediante Amazon API Gateway. Lambda procesa eventos personalizados en lugar de atenderlos del lado del cliente, lo que le ayuda a evitar las variaciones de la plataforma del cliente, reducir el consumo de batería y permitir actualizaciones más sencillas.

Con AWS Lambda, no es necesario aprender lenguajes, herramientas ni marcos nuevos. Puede utilizar cualquier biblioteca de terceros, incluso las nativas. También puede empaquetar cualquier código (marcos, SDK, bibliotecas, etc.) como una capa de Lambda, y administrarlo y compartirlo fácilmente a través de múltiples funciones. Lambda es compatible de forma nativa con código Java, Go, PowerShell, Node.js, C#, Python y Ruby, y proporciona una API de tiempo de ejecución que le permite utilizar cualquier lenguaje de programación adicional para crear sus funciones.

AWS Lambda administra toda la infraestructura para ejecutar el código en una infraestructura de alta disponibilidad y tolerante a errores, lo que le permite centrarse únicamente en la creación de servicios backend que marcan la diferencia. Con Lambda, nunca tendrá que actualizar el sistema operativo (SO) subyacente cuando se publique un parche, ni preocuparse por cambiar el tamaño o agregar nuevos servidores a medida que aumente el uso. AWS Lambda implementa sin problemas el código, se encarga de todas las tareas relacionadas con la administración, el mantenimiento y los parches de seguridad, y ofrece monitoreo y registros integrados a través de Amazon CloudWatch.

AWS Lambda mantiene la capacidad informática a través de varias zonas de disponibilidad (AZ) en cada región de AWS para proteger su código contra los errores de máquinas individuales o de las instalaciones del centro de datos. Tanto AWS Lambda como las funciones que se ejecutan en el servicio ofrecen un rendimiento operativo predecible y confiable. AWS Lambda está diseñado para ofrecer alta disponibilidad tanto para el servicio mismo como para las funciones que opera. No hay periodos de mantenimiento ni tiempos de inactividad programados.

AWS Lambda admite funciones de empaquetado e implementación como imágenes de contenedor, lo que facilita a los clientes la creación de aplicaciones basadas en Lambda con herramientas, flujos de trabajo y dependencias de imágenes de contenedor conocidas. Los clientes también se benefician de la simplicidad operativa de Lambda, el escalado automático con tiempos de inicio inferiores a un segundo, la alta disponibilidad, el modelo de facturación de pago por uso y las integraciones nativas con más de 200 servicios de AWS y aplicaciones de software como servicio (SaaS). Los clientes empresariales pueden utilizar un conjunto coherente de herramientas tanto con sus aplicaciones de Lambda como con las de contenedores, con lo que se simplifican los requisitos centrales de gobernanza, como el análisis de seguridad y la firma de imágenes.

AWS Lambda invoca su código solo cuando es necesario y escala de forma automática para soportar la tasa de solicitudes entrantes sin ninguna configuración manual. No hay ningún límite en cuanto al número de solicitudes que el código puede administrar. AWS Lambda, por lo general, comienza a ejecutar el código al cabo de unos milisegundos después de un evento. Dado que Lambda escala de forma automática, el rendimiento se mantiene siempre alto a medida que aumenta la frecuencia de los eventos. Dado que el código no tiene estado, Lambda puede iniciar tantas instancias como sean necesarias sin implementaciones largas ni retrasos en la configuración.

Utilice Amazon RDS Proxy para aprovechar los grupos de conexiones completamente administrados para las bases de datos relacionales. RDS Proxy administra eficazmente miles de conexiones simultáneas a bases de datos relacionales, lo que facilita la creación de aplicaciones sin servidor basadas en Lambda altamente escalables y seguras que interactúan con bases de datos relacionales. En la actualidad, RDS Proxy ofrece compatibilidad con MySQL y Aurora. Puede utilizar RDS Proxy para sus aplicaciones sin servidor a través de la consola de Amazon RDS o la consola de AWS Lambda.

La simultaneidad aprovisionada le ofrece un mayor control sobre el rendimiento de su aplicación sin servidor. Cuando se activa, la simultaneidad aprovisionada mantiene las funciones activadas y en el mayor estado de preparación para responder en milisegundos de dos dígitos. La simultaneidad aprovisionada es ideal para cualquier aplicación de AWS Lambda que requiera un mayor control sobre el horario de inicio de las funciones. Configure y ajuste con facilidad la simultaneidad que necesita su aplicación. Escale verticalmente, horizontalmente o desactívela por completo en función de la demanda. Aproveche la simultaneidad aprovisionada para lograr un rendimiento constante para las aplicaciones sensibles a la latencia sin cambiar su código ni administrar los recursos informáticos.

Con Amazon Elastic File System (EFS) para AWS Lambda, puede hacer lecturas y escrituras en grandes volúmenes de datos, además de conservarlos, con un nivel de latencia bajo, a cualquier escala. No necesita escribir código y descargar datos en el almacenamiento temporal para procesarlos. Esto ahorra tiempo y simplifica el código, para que pueda centrarse en su lógica empresarial. EFS para Lambda es ideal para una serie de casos de uso que incluyen el procesamiento o la copia de seguridad de grandes cantidades de datos, y la carga de grandes archivos o modelos de referencia. También puede compartir archivos entre instancias sin servidor o aplicaciones basadas en contenedores, e incluso ejecutar inferencia de machine learning (ML) mediante el uso de EFS para AWS Lambda.

Con Lambda@Edge, AWS Lambda puede ejecutar el código en ubicaciones de AWS globales en respuesta a eventos de Amazon CloudFront, como solicitudes de contenido hacia o desde lectores o servidores de origen. Esto facilita la distribución de contenido más completo y personalizado con menor latencia a usuarios finales. 

Cree flujos de trabajo de AWS Step Functions para coordinar varias funciones de AWS Lambda para tareas complejas o de larga duración. Step Functions le permite definir flujos de trabajo capaces de desencadenar diferentes funciones de Lambda mediante el uso de pasos secuenciales, paralelos, bifurcados o con control de errores. Con Step Functions y Lambda, podrá crear procesos completos y de larga duración para aplicaciones y backends.

El kit de desarrollo de software (SDK) incorporado a AWS Lambda se integra con AWS Identity and Access Management (IAM) para garantizar el acceso seguro del código a otros servicios de AWS. AWS Lambda ejecuta el código dentro de Amazon Virtual Private Cloud (VPC) de forma predeterminada. Si lo desea, puede configurar el acceso a los recursos de AWS Lambda detrás de su propia VPC para aprovechar los grupos de seguridad personalizados y las listas de control de acceso a la red. Esto proporciona un acceso seguro de la función Lambda a sus recursos dentro de una VPC. AWS Lambda cumple los requisitos de SOC, HIPAA, PCI e ISO. Para conocer las novedades sobre la preparación para la certificación y la conformidad de Lambda, consulte la lista de todos los servicios del ámbito.

La firma de código para AWS Lambda permite verificar que solo se implemente código inalterado publicado por desarrolladores aprobados en sus funciones de Lambda. Simplemente cree artefactos de código firmados digitalmente y configure sus funciones de Lambda para verificar las firmas en la implementación. Esto aumenta la velocidad y la agilidad del desarrollo de sus aplicaciones, incluso dentro de grandes equipos, al tiempo que aplica altos estándares de seguridad.

Con AWS Lambda, se paga por la duración de la ejecución y no por la unidad de servidor. Cuando utiliza las funciones de Lambda, solo paga por las solicitudes atendidas y por el tiempo de informática necesario para ejecutar el código. La facturación se calcula en incrementos de un milisegundo, lo que permite un escalado automático fácil y rentable desde unas pocas solicitudes al día hasta miles por segundo. En el caso de la simultaneidad aprovisionada, se paga por la cantidad de simultaneidad que se configura y su duración. Cuando la simultaneidad aprovisionada está habilitada y su función se ejecuta, también se paga por las solicitudes y la duración de la ejecución. Para más información sobre los precios, consulte los Precios de AWS Lambda.

Elija la cantidad de memoria que desea asignar a sus funciones, y AWS Lambda asigna una potencia de CPU, un ancho de banda de red y una entrada y salida (E/S) de disco proporcionales.

Las extensiones de AWS Lambda permiten una fácil integración con sus herramientas de monitoreo, observabilidad, seguridad y gobernanza favoritas. Lambda invoca su función en un entorno de ejecución, que proporciona un tiempo de ejecución seguro y aislado donde se ejecuta el código de su función. Las extensiones de Lambda se ejecutan dentro del entorno de ejecución de Lambda, junto con el código de su función. Las extensiones de Lambda pueden usar la API de telemetría de AWS Lambda para capturar información de diagnóstico detallada, como registros, métricas y seguimientos, directamente desde Lambda y enviarlos al destino que elija. También puede usar extensiones para integrar sus agentes de seguridad preferidos con Lambda, todo sin sobrecarga operativa y con un impacto mínimo en el rendimiento de su función.

Las funciones de AWS Lambda que se ejecutan en Graviton2, con una arquitectura de procesador basada en Arm diseñada por AWS, ofrecen un rendimiento de precios hasta un 34 % mejor en comparación con las funciones que se ejecutan en procesadores x86. Esto se aplica a una variedad de cargas de trabajo sin servidor, como backends web y móviles, datos y procesamiento de medios. Con una latencia más baja, un rendimiento hasta un 19 % mejor, un costo un 20 % menor y la mayor eficiencia energética disponible actualmente en AWS, las funciones Graviton2 pueden utilizarse para alimentar aplicaciones sin servidor crítico.

AWS Lambda proporciona capacidades de monitoreo integradas al capturar y enviar automáticamente registros, métricas y seguimientos a los servicios de monitoreo y observabilidad de AWS, como Amazon CloudWatch y AWS X-Ray. Lambda también ofrece funciones de supervisión avanzadas, como Live Tail, que le permite ver y analizar los registros en tiempo real, controles de registro avanzados que le permiten capturar registros de forma nativa en formato estructurado JSON, controlar el filtrado a nivel de registro sin realizar cambios en el código y personalizar el grupo de registros de CloudWatch al que Lambda envía los registros. Con Application Signals, Lambda ofrece una herramienta de monitoreo del rendimiento de la aplicación (APM) lista para usar a fin de rastrear el rendimiento, la disponibilidad, la latencia, las fallas y los errores en sus aplicaciones sin servidor. Lambda Insights captura automáticamente métricas detalladas, como el uso de la memoria, la CPU y la red, lo que ofrece perspectivas más detalladas sobre el rendimiento de la función de Lambda. Además, Lambda admite una integración perfecta con herramientas de monitoreo de terceros a través de las extensiones de Lambda, lo que facilita el uso de sus herramientas preferidas para monitorear y solucionar problemas de sus aplicaciones sin servidor.