Boletín AWS Open Source, April Edition
Guillermo Ruiz
Posted on April 30, 2024
Bienvenidos a una nueva edición del boletín de AWS Open Source!
En estas fechas hemos comenzado la temporada de AWS Summits alrededor del mundo. Un evento donde mostramos lo último en tecnología y soluciones end-to-end. Tendréis demos y talleres que podréis probar y experimentar en primera persona. Si aún no te has inscrito para el Summit de Madrid el 5 de Junio, ¡aquí te dejamos el enlace para que no te quedes fuera!: https://go.aws/4aNDAtY
A lo largo de este número encontraréis desde mejoras en seguridad y gestión de claves API hasta soluciones para simplificar la gestión de boletines y comprender el contenido de video de manera eficiente. Además, exploramos el mundo de Rust serverless con RustRover, mostrando cómo potenciar la experiencia de desarrollo con Rust y AWS Lambda. También os presentamos artículos de la comunidad sobre infraestructura como código, websockets en AWS y temas cloud-native, proporcionando una amplia gama de recursos e inspiración para proyectos futuros.
Esperamos que disfrutéis la recopilación:
Tools
aws-rotate-key es un proyecto de Stefan Sundin, Community Builder, que te ayuda a implementar buenas prácticas de seguridad al regenerar periódicamente tus claves API. Esta herramienta CLI simplifica la rotación de las claves de acceso definidas en tu archivo local ~/.aws/credentials. Echa un vistazo al README para obtener más información.
pristup es un proyecto parecido al anterior, exceptuando que proyecto que Dark Mesaros (nuestro compañero) proporciona una forma de generar URLs temporales de inicio de sesión en la Consola de AWS. El objetivo es permitir a aquellos usuarios que no tienen acceso a la Consola de AWS, acceder temporalmente a ella sin necesidad de un nombre de usuario y contraseña. Como con todos los proyectos de Darko, la documentación y los ejemplos son excelentes.
cfn-bedrock-notify es una nueva herramienta creada por nuestro compañero Du'an Lightfoot donde incorpora de una forma muy creativa e interesante los grandes modelos de lenguaje (LLMs) para ayudarte a solucionar despliegues fallidos de CloudFormation. ¿Cuántas veces has tenido un despliegue fallido y has tenido que recurrir a un buscador para ayudarte a resolver el problema? Bueno, con este proyecto, cualquier problema detectado se envía a través de SNS a Amazon Bedrock utilizando Anthropic Claude v3, y (con suerte) la respuesta a tus problemas se devuelve a través del correo electrónico del suscriptor de SNS. ¡Genial!
fm-leaderboarder te proporciona recursos para ayudarte a comparar diferentes LLMs y encontrar aquel que mejor se adapte a tu caso de uso (basado en tus propias tareas, indicaciones y datos).
llm-colosseum es otro repositorio que ofrece una forma más divertida de comparar LLMs. Nuestro compañero Banjo pone a luchar (¿recordáis el juego Street Fighter?) 14 LLMs. Al cabo de 314 partidas obtuvo un ganador. ¿Queréis saber quién resultó el ganador? En su blog nos cuenta los detalles.
safeaws-cli es un proyecto de Gabriel Koo, Community Builder, que proporciona un wrapper para AWS CLI. Éste te ayuda a evitar aquellos errores comunes y problemas que surgen cuando invocas LLMs. Esta herramienta te permite verificar los argumentos de tu comando contra la documentación existente, ahorrándote tiempo y quebraderos de cabeza.
Echa un vistazo al blog de Gabriel para obtener más detalles, incluido un breve video de demostración.
CloudConsoleCartographer es un proyecto que se lanzó en Black Hat Asia el 18 de abril de 2024. Se trata de un framework para condensar agrupaciones de eventos (por ejemplo, registros de CloudTrail) y mapearlos a las acciones de entrada de los usuarios para un análisis más simplificado. Te ayuda a detectar señales del ruido de manera más eficiente, lo cual siempre es importante cuando estás tratando con incidentes de seguridad. Si quieres saber más, te recomiendo que consultes el artículo de Daniel Bohannon, Introducing Cloud Console Cartographer: An Open-Source Tool To Help Security Teams Easily Understand Log Events Generated by AWS Console Activity que proporciona varios ejemplos para explicar cómo puedes utilizarlo.
amazon-bedrock-client-for-mac
amazon-bedrock-client-for-mac es un repositorio que te proporciona el código para el Cliente de Amazon Bedrock en MacOS. La app está construida con SwiftUI. Sirve como una interfaz de cliente para AWS Bedrock, permitiendo a los usuarios interactuar con los modelos de AWS Bedrock.
serverless-lambda-cron-cdk te proporciona un kit inicial para configurar tareas programadas utilizando AWS Lambda. Incluye el código de implementación necesario de CDK, un pipeline de CI/CD, así como el código fuente de la función Lambda. El kit está diseñado para ser fácilmente configurable y desplegable, permitiendo una configuración rápida e iterativa. Es ideal para desarrolladores que desean automatizar tareas programadas utilizando AWS Lambda.
Demos
newsletter-manager-template
newsletter-manager-template es un proyecto de Matteo Depascale, Community Builder, que proporciona un orquestador de servicios backend para tus boletines de noticias. Matteo ha creado una publicación de blog, Building a Serverless Newsletter: Your Guide to AWS and Amazon SES, en la que comparte cómo puedes utilizar este proyecto para construir toda la infraestructura para gestionar tus boletines informativos.
video-understanding-solution
video-understanding-solution es una solución para ayudarte a ahorrar tiempo en videos sin tener que ver cada uno. Puedes subir el video y la solución te generar un resumen impulsado por IA. También admite preguntas y respuestas sobre el video como "¿Qué hay de gracioso en el video?", "¿Cómo se ve Jeff Bezos allí?", y "¿Qué camisa lleva?". También puedes buscar videos utilizando la búsqueda semántica, por ejemplo, "Cultura e historia de Amazon". Esta solución extrae información de escenas visuales, audio, textos visibles y celebridades o rostros detectados en el video. Utiliza un LLM que puede entender visualmente y describir los fotogramas del video.
Puedes subir videos a tu bucket de S3 utilizando la consola de AWS, CLI, SDK u otros medios (por ejemplo, a través de AWS Transfer Family). Esta solución activará automáticamente procesos que incluyen llamadas a Amazon Transcribe para la transcripción de voz, llamadas a Amazon Rekognition para extraer los objetos visibles y llamadas a Amazon Bedrock con el modelo Claude 3 para extraer escenas y texto visualmente visible. El LLM utilizado puede realizar VQA (respuestas a preguntas visuales) a partir de imágenes (fotogramas de video), que se utiliza para extraer la escena y el texto. Esta información combinada se utiliza para generar el resumen. Echa un vistazo al README para ver algunos excelentes videos de demostración de esto en acción. Vale la pena explorar esta demo.
genai-sports-commentary es un repositorio que apela a ese fan del deporte que llevamos dentro. Puedes aplicar la IA generativa y LLMs para crear contenidos altamente personalizables para los fans del deporte. En nuestro ejemplo, usaremos un modelo base para generar comentarios basados en datos de fútbol americano creados sintéticamente (en realidad, los datos podrían ser obtenidos directamente de los estadios o de la nube). El modelo generará una variedad de comentarios utilizando diferentes indicaciones que le hayamos dado. Por ejemplo, crear indicaciones en un estilo de escritura particular o en un idioma específico.
AWS Community
Cada semana, pasamos tiempo leyendo publicaciones de la comunidad de AWS sobre temas de open-source, cloud-native y cualquier tema que nos llame la atención. Este mes hemos visto una serie de artículos que os recomendamos:
Dave Franco, Community Builder, nos muestra cómo desplegar aplicaciones junto con tu infraestructura, bajo demanda y sin que los desarrolladores tengan que aprender alguna herramienta de IaC. La respuesta la encontraréis en 𝗔𝗺𝗮𝘇𝗼𝗻 𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿 𝗳𝗼𝗿 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 (𝗔𝗖𝗞)
Javi Mora nos mete de lleno en cómo darle súper poderes a nuestros proyectos usando W𝗲𝗯𝗦𝗼𝗰𝗸𝗲𝘁𝘀 𝗰𝗼𝗻 𝗔W𝗦, con dos herramientas muy conocidas dentro del Cloud de AWS: 𝗔𝗣𝗜 𝗚𝗮𝘁𝗲𝘄𝗮𝘆 𝘆 𝗟𝗮𝗺𝗯𝗱𝗮.
João Galego nos muestra cómo implementar aplicaciones de LangChain con LangServe en minutos en Amazon ECS y AWS Fargate usando AWS Copilot, en su publicación "Implementar aplicaciones de LangChain 🦜🔗 en AWS con LangServe 🦜️🏓".
Dakota Lewallen, nos comparte código y un blog sobre cómo realizar implementaciones en múltiples regiones con AWS CDK en Implementaciones en múltiples regiones con CDK. No contento con una publicación, Dakota también publicó Tres consejos para escribir pruebas CDK para ayudarte a comenzar a agregar pruebas a tus stacks de CDK.
Cuando se trata de empezar con una nueva tecnología, nos encantan las publicaciones que proporcionan todo lo que necesitas y más. Es lo que hace Julia Furst Morgado, nuestra Community Builder, cuando hay personas que quieren comenzar a implementar aplicaciones en Kubernetes. Su blog no tiene desperdicio Configuración de un clúster de Kubernetes en AWS EKS con Eksctl y despliegue de una aplicación.
Por otro lado Ehi Enabs, nos ayuda a automatizar la provisión de Amazon Managed Service for Prometheus (AMP) con su publicación Amazon Managed Service for Prometheus (AMP) con CloudFormation.
Cloud-Native
A lo largo del mes hemos visto publicaciones relacionadas con el mundo cloud-nativo, así que hemos pensado en recopilar aquellos blogs que nos han llamado la atención y ofrecéroslo en un solo blog:
Cómo habilitar la provisión segura de clústeres de Amazon EKS con ArgoCD, Kyverno y Nirmata Policy Manager detalla una solución para ayudarte a implementar la provisión de clústeres de autoservicio[hands-on].
Protegiendo tus aplicaciones web de Amazon EKS con AWS WAF describe cómo utilizar AWS WAF y AWS Firewall Manager para proteger las cargas de trabajo que se ejecutan en un clúster EKS [hands-on].
Aplicando las mejores prácticas para consolidar tus instancias Spot-to-Spot con Karpenter ofrece cómo Karpenter puede reemplazar activamente un nodo Spot con otro nodo Spot más eficiente en costos para que puedas tener el equilibrio entre un precio más bajo y menos interrupciones [hands-on].
Entregando contenido de video con fracciones de GPUs en contenedores en Amazon EKS es una buena lectura sobre cómo construir un pipeline de codificación de video en AWS que utiliza fracciones de GPUs en contenedores usando Amazon EKS, Bottlerocket y Karpenter [hands-on].
Acelera la Modernización de tu Aplicación en Amazon EKS con Konveyor proporciona una introducción a Konveyor, una herramienta de código abierto que puedes utilizar en tus proyectos de modernización en Kubernetes [hands-on].
Escalar entrenamiento e inferencia de IA para descubrimiento de medicamentos a través de Amazon EKS y Karpenter" proporciona un estudio de caso de Iambic Therapeutics que muestra cómo utilizan Karpenter en Amazon Elastic Kubernetes Service (Amazon EKS) para escalar el entrenamiento e inferencia de IA [hands-on].
- Observabilidad para nodos AWS Inferentia dentro de clústeres Amazon EKS te muestra cómo monitorear el rendimiento de los chips de ML, utilizados en un clúster EKS, con nodos basados en instancias EC2 del tipo Inf1 e Inf2 [hands-on].
- Escalado automático de cargas de trabajo con KEDA utilizando métricas del servicio gestionado de Prometheus ofrece una guía práctica de cómo escalar automáticamente una aplicación en EKS utilizando KEDA y el servicio gestionado de Prometheus [hands-on].
- Navegando en Amazon OpenSearch Service: Instancias optimizadas de OpenSearch (OR1) profundiza en la familia de instancias optimizadas de OpenSearch (OR1) y cómo pueden proporcionar un alto rendimiento de indexación y durabilidad utilizando un nuevo protocolo de replicación física. Explora algunos de los desafíos que resolvemos para mantener la corrección y la integridad de los datos [hands-on].
- Búsqueda híbrida con Amazon OpenSearch Service" explica los detalles internos de la búsqueda híbrida (búsqueda léxica y búsqueda semántica) y cómo construir una solución de este tipo utilizando OpenSearch Service [hands-on].
IA Generativa
Seguridad en la IA Generativa
Nuestro compañero Guillermo Ruiz nos trae el enfoque de AWS para proteger los datos y las inversiones en IA centrándose en la infraestructura, los accesos a los modelos y las aplicaciones. Está basado en el artículo original de dos de nuestros distinguished Engineers. Para más info tenéis el enlace al blog.
Creando un Generador de Recetas con IA Generativa
Usando la IA Generativa y Next.js con AWS Amplify para construir un Generador de Recetas Fullstack te guía a través de cómo puedes construir una aplicación de Generador de Recetas impulsada por IA con AWS Amplify Gen 2 y Amazon Bedrock [práctico].
Vídeos del Mes
Aprovechando Karpenter: Transformando Clústeres de Kubernetes con Argo.
Carlos Santana y Raj Saha te muestran cómo migrar sin problemas tus recursos de Kubernetes. Mientras que el Cluster Autoscaler sigue siendo ampliamente utilizado entre los fans de Kubernetes, esta sesión presenta un enfoque innovador para transicionar tus nodos de trabajo y pods a Karpenter de forma sencilla, aprovechando la flexibilidad de los Flujos de Trabajo de Argo y su capacidad única para ejecutar pipelines de CI dentro del clúster.
Migrando de Serverless Framework a CDK
Únete al AWS Hero Rehan van der Merwe y a Amo Moloko, un ingeniero de JavaScript con sede en Ciudad del Cabo, Sudáfrica, mientras exploran cómo los mono-repos permiten arquitecturas sin servidor basadas en eventos a través del poder de AWS CDK.
El Mundo de Rust
Potenciando la Experiencia de Desarrollo con Rust serverless en RustRover.
James Eastham, un arquitecto senior de AWS, y Vitaly Bragilevsky exploran las sinergias entre Rust y las arquitecturas serverless, centrándose particularmente en AWS Lambda. Disponen además de un blog con más información.
En caso de que te lo hayas perdido, aquí está el enlace al contenido de Rust serverless de James Eastham y Benjamin Pyle. ¡Crea un issue, plantea PR o simplemente ponle una estrella!
Para acabar, queremos traeros 2 episodios de Twitch que nos han parecido interesantes. Por un lado recuperamos un episodio de AWS Twitch donde Darko y Cobus nos cuentan como migrar aplicaciones Rust a Arm. Y por otro, Luciano (autor de Node.js Design Patterns) y Roberto nos traen AWS Lambda Functions en Rust, donde reemplazan la arquitectura de la página web donde se publicita su libro, por algo más sencillo utilizando lambdas y Rust.
Y hasta aquí la edición de Abril, nos vemos en unas semanas! Hasta entonces, sed buenos, happy coding!
Posted on April 30, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.