Tras el hito de los contenedores, hemos comenzado a eliminar las grandes piezas de nuestras aplicaciones, reemplazado nuestros servidores por máquinas virtuales, nuestras máquinas virtuales por contenedores y nuestros contenedores por código “in situ».

Gracias a esto puedes conseguir el máximo potencial de tu aplicación en poco tiempo sin preocuparte de las cuestiones operativas (hardware y software subyacente) y hacer más fácil la vida de los desarrolladores.

Con el uso del servicio Serverless AWS Lambda puedes llevar a cabo muchas acciones y por tanto, obtener muchos beneficios.

Pero, ¿qué es AWS Lambda?

AWS Lambda es una plataforma de computación sin servidor, dirigida por eventos y provista por AWS, que permite ejecutar código sin aprovisionar ni administrar servidores en tiempo real. Si estás ejecutando tu aplicación las 24 horas del día y los 7 días de la semana, se te cobrará por el tiempo durante el que se ejecutan las funciones. El código que se ejecuta en AWS Lambda se denomina función de Lambda.

Podemos considerar a Lambda como una plataforma basada en eventos que se ejecuta cuando se activa y acciona el código que se ha cargado en el sistema.

Con AWS Lambda puedes ejecutar código para prácticamente cualquier tipo de aplicación o servicio de Backend. Esta función es compatible con Java, Go, PowerShell, Node.js, C#, Python y el código Ruby que, además, proporciona una API de tiempo de ejecución que le permite utilizar cualquier lenguaje de programación adicional para crear sus funciones.

Casos de uso de AWS Lambda

AWS Lambda es un servicio que puede resultar idóneo para muchas situaciones. El código de las aplicaciones debe estar escrito en los lenguajes admitidos y mencionados con anterioridad. Veamos algunos ejemplos de cómo puedes utilizar este servicio para simplificar y automatizar tu infraestructura Cloud:

  • Procesamiento de archivos en tiempo real: puedes usar Amazon S3 para activar AWS Lambda y procesar los datos inmediatamente después de cargarlos. Por ejemplo, puedes usar Lambda para crear imágenes en miniatura, transcodificar vídeos, indexar archivos, procesar registros, validar contenido, agregar y filtrar datos en tiempo real.
  • Backups automáticos: puedes escribir fácilmente una función Lambda que creará automáticamente copias de seguridad de información importante. Se podrá programar la copia de seguridad para que se realice al final de cada día. Y, si lo deseas, tu sistema de copias de seguridad puede ser incremental, diferencial, etc.
  • Personalización, integración y envío de alertas: puedes crear fácilmente una función Lambda para verificar los logs desde Cloudwatch. Lambda puede buscar en los logs eventos específicos o entradas de registro a medida que ocurren, y enviar notificaciones a través de SNS. Puede integrarse con aplicaciones como Slack para enviar notificaciones personalizadas y monitorizarse con envío de correos electrónicos y llamadas para alertas de los recursos que se establezcan.
  • Programación de tareas: puedes programar tareas de “start/stop” de diferentes recursos (instancias RDS, instancias EC2, etc) y eliminar la necesidad de que el sistema de servidor tradicional «siempre activo» quede detrás de una aplicación, lo que reducirá significativamente la complejidad y costes operativos.
  • Datalakes: puedes configurar una función Lambda a la hora de copiar los ficheros en S3 para verificar el tamaño del archivo que acaba de llegar antes de enviarlo a la capa de ensayo a través de DataPipeline o S3 upload, además de configurar una segunda Lambda para abrir los clústeres de EMR para procesar los datos y realizar la normalización y ETL (extraer, transformar, cargar) antes de que se conserven en DynamoDB o AuroraDB.