© Yu Chun Christopher Wong/Shutterstock.com
¿Está cansado de administrar servidores y preocuparse constantemente por la infraestructura? ¿Le gustaría poder concentrarse en escribir código y dejar que otra persona maneje el trabajo pesado? Permítanme presentarles AWS Lambda. La afirmación de Lambda de la computación sin servidor parece demasiado buena para ser verdad al principio. Si lo piensas bien, debe haber un servidor en alguna parte. Si aloja una aplicación web o un sitio web, siempre hay un servidor en el backend que mantiene todo en funcionamiento.
Desarrollado por los asistentes de Amazon Web Services, Lambda le permite ejecutar su código sin administrar ningún servidor. Así es, no más mantenimiento del servidor a altas horas de la noche ni llamadas de pánico al soporte de TI.
Puede escribir y ejecutar su código en respuesta a varios eventos, como un mensaje nuevo en una cola de SQS o un cambio en los datos de un depósito de S3. Mientras tanto, AWS escala automáticamente su aplicación y ejecuta su código en respuesta a estos eventos sin necesidad de intervención manual. Por lo tanto, solo paga por el tiempo de cómputo que usa en lugar de gastar dinero en servidores inactivos.
Entonces, si no tiene que administrar servidores y no tiene que pagar por el tiempo de servidor inactivo, ¿cuál es la trampa? ¿Qué hace que Lamdba sea tan bueno? ¿Hay algo que deba tener en cuenta al conocer este fascinante servicio? ¡Entremos en los hechos!
Datos imprescindibles sobre AWS Lambda
AWS Lambda se basa en eventos, lo que significa que solo se ejecuta cuando lo desencadena un evento, como cambios en los datos de Amazon S3 o un nuevo mensaje en un flujo de Amazon Kinesis. AWS Lambda admite varios lenguajes de programación, incluidos Node.js, Python, Java, Go y más. AWS Lambda es altamente escalable y ejecuta automáticamente varias instancias de su función en paralelo para manejar los aumentos en el tráfico.AWS Lambda se integra a la perfección con una variedad de otros servicios de AWS, incluidos Amazon S3, DynamoDB y Kinesis.AWS Lambda tiene un modelo de precios basado en la cantidad de solicitudes y la cantidad de tiempo de cómputo utilizado. Esto puede ser rentable para aplicaciones con patrones de uso poco frecuentes o impredecibles.
Qué es AWS Lambda: explicación
Hace solo dos décadas, Internet era un lugar muy diferente para su negocio típico. Si tenía una aplicación o un servicio web que deseaba ofrecer al público en general, necesitaba configurar su propia infraestructura, con servidores, equipos de red y la molestia de configurar su propio software. Mantener todo este hardware generalmente significaba contratar un costoso departamento de TI interno para administrarlo todo.
Amazon entró en escena en 2006 con EC2 o “Elastic Compute Cloud”. Fue una idea revolucionaria en ese momento. En lugar de lidiar con el mantenimiento del servidor y pagar por un montón de hardware, puede solicitar capacidad de cómputo y alquilar servidores virtuales de AWS por un período de tiempo determinado.
Los servicios en la nube aumentaron su popularidad de la noche a la mañana, y mientras esto fue un cambio de paradigma en comparación con el método anterior, Amazon tenía algo bajo la manga para hacerlo aún mejor. Verá, con EC2, aún necesitaba pagar por el tiempo asignado con el hardware, por lo que podría resultar costoso, incluso si no estaba ejecutando activamente ningún código o acción en su servidor.
Ingrese a AWS Lambda
Cuando se lanzó AWS Lambda en 2014, introdujo el modelo de pago por ejecución. En otras palabras, no paga por el hardware físico, solo paga por la cantidad de veces que desea ejecutar su código.
Con Lambda, puede escribir su código en el idioma de su elección (Python , Java o Node.js) y cárguelo en el servicio. Luego, puede activar su código para que se ejecute en respuesta a una variedad de eventos, como actualizaciones en una tabla de DynamoDB, cambios en los datos en un depósito de Amazon S3 o una solicitud HTTP a través de Amazon API Gateway. ¿La mejor parte? No tiene que preocuparse por aprovisionar servidores, configurar bases de datos o lidiar con otros dolores de cabeza que surgen con la administración de la infraestructura.
En su lugar, Lambda escala automáticamente su aplicación y ejecuta su código en respuesta a eventos sin ninguna necesidad de intervención manual. Esto significa que solo paga por el tiempo de computación en la nube que usa en lugar de pagar por los servidores inactivos. Además, AWS Lambda admite integraciones con otros servicios de AWS, por lo que puede crear fácilmente aplicaciones eficaces basadas en eventos.
Entonces, ¿cómo funciona Lambda? ¿Qué hace que todo funcione? Bueno, ¡sigue leyendo para aprender exactamente eso!
AWS Lambda admite integraciones con otros servicios de AWS.
©Gil C/Shutterstock.com
Funciones
¡Aquí es donde ocurre la magia! Las funciones Lambda son las centrales eléctricas que ejecutan su código en respuesta a un evento. Además, ¿la mejor parte? Puede escribir funciones en una variedad de lenguajes de programación, incluidas opciones populares como Node.js, Python, Java y Go.
Las funciones son, básicamente, solo bloques de código. Puede tener una función que aloje una API REST o una función que realice copias de seguridad nocturnas. Cualquier cosa bajo el sol. En términos generales, son la columna vertebral de su flujo de trabajo de Lambda.
Fuentes de eventos
Para que su función funcione, necesita algo que la active. Eso es exactamente lo que es una fuente de eventos: una acción que desencadena su función. Lambda es compatible con una amplia variedad de orígenes de eventos, incluidos los servicios populares de AWS, como Amazon S3, DynamoDB y Kinesis. Eso no es todo: también puede usar servicios como SNS y SES para configurar una infraestructura de comunicaciones altamente automatizada.
Un ejemplo de una fuente de eventos en acción es un mensaje de texto o un correo electrónico. Puede configurar SNS para activar un mensaje de texto a un cliente cuando una empresa envía un correo electrónico. O agregar datos a una base de datos al recibir un mensaje de texto. Realmente puede usar su imaginación para las fuentes de eventos.
Escalado
Lambda es tan atractivo en comparación con el uso de un servicio como EC2 debido al escalado automático. En otras palabras, Lambda puede escalar automáticamente para soportar niveles extremadamente altos de rendimiento. En comparación con el escalado manual de sus recursos informáticos, el escalado automático intenta permitirle concentrarse más en la funcionalidad en lugar de preocuparse por las minucias de escalar sus servidores.
Entorno de tiempo de ejecución
Dado que es un entorno”sin servidor”, no tiene que preocuparse tanto por la seguridad. Instalar un firewall o configurar sistemas de seguridad solía tomar mucho tiempo, especialmente en los días previos a EC2. Lambda lo hace aún más fácil con los mecanismos de seguridad integrados de Amazon.
Supervisión y registro
AWS Lambda proporciona capacidades integrales de supervisión y registro, incluidas métricas, registros y seguimiento, que ayudan usted soluciona problemas y optimiza sus funciones.
Estos componentes y características de Lambda brindan una plataforma flexible y sólida para crear y ejecutar aplicaciones. Ya sea que esté desarrollando un microservicio pequeño o una aplicación a gran escala, AWS lo tiene cubierto con su infraestructura poderosa y confiable.
Cómo usar AWS Lambda
Si desea usa Lambda, necesita tener algunos ingredientes básicos en orden. Primero, necesita una cuenta de AWS. La buena noticia es que Lambda está disponible en el nivel gratuito y obtienes una asignación bastante generosa cada mes.
Deberá tener un conocimiento básico de AWS, por lo que estudiar para un examen como AWS Certified Cloud Practitioner podría ser una buena inversión. Sin embargo, no es necesario pagar por el conocimiento. A menudo, puede encontrar ayuda en YouTube u otros recursos en línea, con tutoriales específicos para su caso de uso.
La esencia de lo que hará es crear funciones y configurar orígenes de eventos. Crear una función Lambda es fácil: solo diríjase a la Consola de administración de AWS o use la CLI de AWS.
Para comenzar a usar Lambda , deberá tener un conocimiento básico de AWS.
©Shalstock/Shutterstock.com
Cómo aprender AWS Lambda
Si no sabe nada sobre AWS, investigar un servicio como Lambda puede ser intimidante. Sin embargo, si desea comprenderlo y crear algo con él para sus propias aplicaciones, la buena noticia es que no es tan confuso como parece. Si está ansioso por aprender Lambda, hay muchos recursos disponibles para ayudarlo a comenzar. Estos son algunos consejos para ayudarlo a sumergirse en este emocionante servicio:
Comience con la documentación oficial
La documentación de AWS no parece llamativa y puede ser un poco aburrida, pero es , sin duda, el recurso más factual sobre el tema que encontrarás. Sin embargo, leer la documentación para aprender es como leer el diccionario para aprender un idioma. Simplemente no es la forma correcta de hacerlo.
En su lugar, combine la documentación con tutoriales y sus propios proyectos. Consulte los documentos cuando se encuentre con un error o un obstáculo que no pueda resolver.
Aproveche los tutoriales y cursos en línea
Ya existen muchos sitios web con tutoriales y cursos pagos y gratuitos, especialmente desde que Lambda existe desde 2014. Estos cursos cubren varios temas, como arquitecturas sin servidor, programación basada en eventos e implementación sin servidor, y pueden ayudarlo a ponerse al día rápidamente.
AWS Lambda: ¿Cuándo no es la mejor opción?
AWS Lambda no es el único jugador en el juego de la informática sin servidor. Solo por nombrar algunos, tiene Google App Engine, Azure Functions e incluso Heroku. Todos estos servicios ofrecen su propio enfoque único y todos tienen sus inconvenientes. Para las aplicaciones que requieren más flexibilidad y control sobre su entorno, las tecnologías de contenedorización como Docker y las plataformas de orquestación de contenedores como Kubernetes pueden ser una mejor opción. Si bien estas opciones requieren más configuración y administración que los servicios informáticos sin servidor, brindan más flexibilidad y control sobre su entorno.
Si bien no entraremos en una batalla de AWS contra Azure o AWS contra Heroku aquí, podemos pensar en algunas buenas situaciones en las que Lambda podría NO ser el mejor servicio para elegir. A menudo, otro servicio de Amazon es la respuesta.
Si necesita tareas de ejecución prolongada
Una ejecución de código continua o de ejecución prolongada puede ser demasiado pesada para Lambda. Dado que las funciones de Lambda tienen un tiempo de ejecución máximo de 15 minutos, es posible que no sean la mejor opción para este tipo de trabajo. En este caso, Amazon EC2 o AWS Batch son alternativas más apropiadas.
Si su aplicación tiene altos requisitos de memoria
Las funciones de Lambda tienen un límite de memoria que oscila entre 128 MB y 10 GB– probablemente no sea suficiente para aplicaciones con requisitos de memoria excesivos. AWS Elastic Container Service, mejor conocido simplemente como ECS, o EC2 son mejores opciones para estas aplicaciones.
Si su aplicación requiere almacenamiento persistente
Si necesita almacenamiento persistente, o más simplemente puesto, necesita que su aplicación recuerde algo cuando el usuario cierra la sesión, una función Lambda no es la mejor respuesta. No tienen estado por diseño y NO proporcionan almacenamiento persistente. Si su aplicación debe tenerlo, tanto Amazon Elastic File System como Amazon Elastic Block Store ofrecen almacenamiento persistente.
Si el costo por solicitud no se ajusta a su presupuesto
AWS le cobra según la cantidad de solicitudes y el tiempo de ejecución, que pueden acumularse rápidamente para aplicaciones de alto tráfico. En algunos casos, ejecutar sus propios servidores en EC2 o usar ECS puede ser más rentable.
Si solo aloja un sitio web simple
Lambda no es la opción ideal si sus necesidades son simples. La mayoría de los sitios web comerciales antiguos, los que no tienen muchas funciones o una gran base de usuarios, no tendrán ningún uso para servicios como Lambda. Si tiene un sitio web estático o desea lanzar un sitio de WordPress, estará mucho mejor con proveedores de alojamiento como Siteground, Bluehost o WPengine.
SiteGround puede ser una mejor opción para los usuarios con un sitio web estático o un sitio de WordPress.
©Postmodern Studio/Shutterstock.com
AWS Lambda: Historial de versiones
Desde su lanzamiento en 2014, Lambda ha sido objeto de varias actualizaciones y mejoras que lo han convertido en un líder en computación sin servidor. servicio. Uno de los lanzamientos notables en 2018 fue la compatibilidad con el tiempo de ejecución personalizado, lo que permite a los desarrolladores usar cualquier lenguaje de programación para escribir funciones de Lambda. Esta característica amplió enormemente las opciones disponibles para los desarrolladores y les permitió trabajar en su lenguaje de programación preferido.
AWS anunció Lambda Layers en 2019. En realidad, esta fue una actualización bastante importante, porque finalmente permitió a los desarrolladores compartir código y dependencias en múltiples funciones, ahorrando mucho tiempo y recursos.
Los últimos años han sido impresionantes para Lambda. Las actualizaciones constantes ven soporte para un nuevo idioma o fuente de eventos casi todas las semanas. Las nuevas capacidades, como el manejo de errores y la invocación asíncrona, pueden sonar como palabras de moda, pero agregan una gran cantidad de funciones al servicio en forma de una plataforma más robusta y eficiente.
AWS Lambda: guía completa con funciones y beneficios , y Preguntas frecuentes sobre ventajas y desventajas (Preguntas frecuentes)
¿Para qué se utiliza AWS Lambda?
Cosas simples, como colocar un artículo en sus compras en línea carrito, o en cualquier lugar donde desee que un evento active una función.
¿Cuáles son los 3 componentes de AWS Lambda?
La función o el código que realiza la tarea, la configuración, que es lo que determina los detalles de cómo se ejecuta su función y, finalmente, el origen del evento, que es lo que activa su función.
¿Qué es equivalente a AWS Lambda?
Azure Functions es una alternativa altamente competitiva con una función y un sistema de activación muy similares.
¿Qué lenguaje es mejor para AWS Lambda?
Python es ampliamente considerado como el mejor lenguaje para escribir funciones Lambda a su velocidad.
¿Debo usar AWS Lambda para alojar mi sitio web?
Lambda no es la mejor opción para la mayoría de los sitios web. De hecho, muchos servicios de alojamiento de WordPress u otras plataformas existentes son más adecuados para la mayoría de los sitios. Lambda brilla cuando necesita alojar una aplicación que requiere funciones basadas en eventos.