Boletín AWS Open Source, May Edition
Tags: opensource, aws
Published: 2024-05-29 11:30:00

Bienvenidos a una nueva edición del boletín de AWS Open Source!

En estas fechas ya tenemos los AWS Summits a la vuelta de la esquina. Si nunca has asistido a uno de nuestros eventos, te lo recomendamos fervientemente. Encontrarás muchas demos (sobre todo en el córner de Innovación), charlas techies de la Comunidad AWS (Community Lounge) y más de 100 charlas de distintos segmentos.

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 

¡Y eso no es todo! Si te quedas con ganas de más, el 6 de Junio tendremos talleres prácticos en nuestras oficinas. Podrás elegir entre GenAI, Containers, Serverless, Analytics y mucho más!

Pero vayamos con el contenido de este mes. En esta edición exploraremos una amplia gama de herramientas y tecnologías, desde proyectos open-source como DeepRacerOnSpot hasta la implementación de servicios web en Rust con integraciones de AWS. También aprenderemos a cómo simplificar despliegues en Amazon EKS con GitHub Actions y AWS CodeBuild, y a mejorar la resiliencia de la red con Istio. Veremos cómo habilitar el acceso privado al API de Kubernetes en Amazon EKS y nos sumergimos en el mundo de la inteligencia artificial generativa con proyectos como CloudConsoleCartographer y agent-evaluation.

Esperamos que disfrutéis la recopilación:

## Tools

**[DeepRacerOnSpot](https://github.com/aws-deepracer-community/deepracer-on-the-spot)** 

DeepRacerOnSpot en un proyecto open-source de nuestros amigos de JP Morgan. Se trata de un conjunto de plantillas de CloudFormation que simplifica la creación de instancias EC2 para el aprendizaje de DeepRacer, con inicio/fin de entrenamiento automatizado y hasta 10 veces de ahorro. Facilita el uso de las herramientas del repositorio deepracer-for-cloud, permitiendo un entrenamiento más rápido y económico en la Consola de AWS.

![DeepRacerOnspot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/703ylvdyhl4ntmvbu2d8.png)

**[AWS Advanced Python Wrapper driver](https://github.com/aws/aws-advanced-python-wrapper)**

Aunque Aurora ofrece características para obtener máximo rendimiento y disponibilidad, como conmutación por error, la mayoría de los controladores actuales no las admiten por completo. El propósito del AWS Advanced Python Driver es añadir una capa de software sobre los controladores Python existentes para aprovechar todas las mejoras de Aurora sin alterar el flujo de trabajo actual con las bases de datos y los controladores Python existentes.

**[serverless-lambda-cron-cdk](https://aws-oss.beachgeek.co.uk/3uf)**

serverless-lambda-cron-cdk es un repositorio que ofrece un kit de inicio para configurar cron jobs utilizando AWS Lambda. Incluye el código de implementación necesario de AWS Cloud Development Kit (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 buscan automatizar tareas en un horario utilizando AWS Lambda.

**[CloudConsoleCartographer](https://aws-oss.beachgeek.co.uk/3uk)**

CloudConsoleCartographer es un proyecto lanzado en Black Hat Asia el 18 de abril de 2024. Se trata de un framework para consolidar grupos de eventos en la nube (por ejemplo, registros de CloudTrail) y mapearlos a las acciones originales del usuario para su posterior análisis. Esto te permite detectar señales entre todo el ruido que pueden generar las alertas de manera más eficiente. Si deseas obtener más información, te recomiendo la publicación de Daniel Bohannon, ["Introducing Cloud Console Cartographer: An Open-Source Tool To Help Security Teams Easily Understand Log Events Generated by AWS Console Activity](https://aws-oss.beachgeek.co.uk/3ul)".

![CloudConsoleCartographer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m8lbk6z37nxor7wz2ixq.png)

**[e1s](https://aws-oss.beachgeek.co.uk/3w1)**
e1s es terminal creado por Xing Yahao para navegar y gestionar los recursos de AWS ECS, compatible tanto con Fargate como EC2 ECS. Inspirado en k9s, e1s utiliza la configuración predeterminada de aws-cli. No almacena ni envía tu clave de acceso a ningún lugar. La clave de acceso se utiliza solo para conectarse de forma segura a la API de AWS a través del AWS SDK. e1s está disponible en plataformas Linux, macOS y Windows. 

![es1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qtn6qy9orcp389sgj8as.png)

**[amazon-bedrock-client-for-mac](https://aws-oss.beachgeek.co.uk/3um)**

amazon-bedrock-client-for-mac es un repositorio que contiene el código del Cliente Amazon Bedrock para Mac, una aplicación de demostración para macOS desarrollada con SwiftUI. Esta aplicación actúa como interfaz de cliente para AWS Bedrock, permitiendo a los usuarios interactuar con los modelos de AWS Bedrock.

![amazon-bedrock-client-for-mac](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yygxve1285q7otk4qy4v.png)

**[agent-evaluation](https://aws-oss.beachgeek.co.uk/3vw)**

agent-evaluation es un framework impulsado por inteligencia artificial generativa para probar agentes virtuales. Agent Evaluation implementa un agente LLM (evaluador) que orquestará conversaciones con tu propio agente (target) y evaluará las respuestas durante la conversación. El repositorio tiene enlaces a documentos detallados que proporcionan configuraciones de ejemplo y una guía de referencia para que puedas comenzar. ¡Es una lectura práctica que no querrás perderte!

**[container-resiliency](https://aws-oss.beachgeek.co.uk/3vs)**

container-resiliency tiene como objetivo proporcionar una guía completa y patrones para que las organizaciones diseñen, implementen y operen aplicaciones contenerizadas resilientes y tolerantes a fallos en AWS. Estos patrones tienen como objetivo proporcionar la orientación necesaria para mitigar riesgos, minimizar el tiempo de inactividad y garantizar la disponibilidad continua y la resiliencia de las aplicaciones contenerizadas en AWS, mejorando en última instancia su eficiencia operativa y la experiencia del cliente.

![container-resiliency](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nidskefowv7w1ii4kyyo.png)


## Demos, Soluciones y Workshops

**[bedrock-access-gateway](https://aws-oss.beachgeek.co.uk/3us)**

bedrock-access-gateway proporciona APIs RESTful compatibles con OpenAI para Amazon Bedrock. Amazon Bedrock ofrece una amplia gama de modelos fundacionales (como Claude 3 Opus/Sonnet/Haiku, Llama 2/3, Mistral/Mixtral, etc.) y un conjunto amplio de capacidades para construir aplicaciones de inteligencia artificial generativa. A veces, es posible que tengas aplicaciones desarrolladas utilizando APIs o SDKs de OpenAI y desees experimentar con Amazon Bedrock sin modificar tu código. O simplemente quieras evaluar las capacidades de estos modelos base en herramientas como AutoGen, etc. Bueno, este repositorio te permite acceder a los modelos de Amazon Bedrock de forma transparente a través de APIs y SDKs de OpenAI, lo que te permite probar estos modelos sin necesidad de realizar cambios en el código.

**[svdxt-sagemaker-huggingface](https://aws-oss.beachgeek.co.uk/3uo)**

svdxt-sagemaker-huggingface es el último repositorio de Gary Stafford, que muestra cosas bastante interesantes sobre las que Gary ha estado escribiendo en el espacio de la inteligencia artificial generativa. Esta vez, Gary le echa un vistazo al campo emergente de la generación de videos a través de Stable Video Diffusion XT (SVT-XT) de Stability AI. Este modelo base es un modelo de difusión que toma una imagen fija como marco de condicionamiento y genera un video a partir de ella. El repositorio proporciona todo lo necesario para comenzar y muestra algunos de los videos que Gary ha creado, ¡una pasada!

**[amazon-bedrock-audio-summarizer](https://aws-oss.beachgeek.co.uk/3w2)**

amazon-bedrock-audio-summarizer proporciona una forma automatizada de transcribir y resumir ficheros de audio utilizando AWS. Utiliza Amazon S3, AWS Lambda, Amazon Transcribe y Amazon Bedrock (con Claude 3 Sonnet) para crear transcripciones de texto y resúmenes a partir de grabaciones de audio que hayamos cargado. Este proyecto apareció en la publicación en el blog del Dr. Werner Vogels, [Hackeando nuestro camino hacia mejores reuniones de equipo](https://aws-oss.beachgeek.co.uk/3w3).

![amazon-bedrock-audio-summarizer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/huawlmmyjh6u3eb8xxkt.png)

**[generative-ai-newsletter-app](https://aws-oss.beachgeek.co.uk/3vx)**
generative-ai-newsletter-app es una solución serverless lista para permitir crear boletines informativos de forma automática con resúmenes generados por inteligencia artificial. La aplicación ofrece a los usuarios la capacidad de influir en las sugerencias de la IA generativa para personalizar cómo se resumen los contenidos, el tono con el que escribe, el público objetivo y más. Los usuarios pueden dar estilo al boletín de noticias HTML, definir con qué frecuencia se crean los boletines y compartirlos con otros.

![generative-ai-newsletter-app](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z62q79ok7jgamm8eoi6w.png)

### Cloud Native

**[Scale AI training and inference for drug discovery through Amazon EKS and Karpenter](https://aws-oss.beachgeek.co.uk/3tz)** ofrece un caso de estudio de Iambic Therapeutics que muestra cómo utilizan Karpenter en Amazon Elastic Kubernetes Service (Amazon EKS) para escalar el entrenamiento e inferencia de inteligencia artificial. [Hands-on]

![Scale AI training and inference for drug discovery](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u93n056t07fv3toxf79a.png)

**[Open source observability for AWS Inferentia nodes within Amazon EKS clusters](https://aws-oss.beachgeek.co.uk/3u0)** te guía a través del patrón de Observabilidad open-source para AWS Inferentia. Podrás ver cómo monitorear el rendimiento de los chips de aprendizaje automático, utilizados en un clúster de Amazon Elastic Kubernetes Service (Amazon EKS), con nodos de plano de datos basados en instancias de Amazon Elastic Compute Cloud (Amazon EC2) del tipo Inf1 e Inf2. [Hands-on]

![Open source observability for AWS Inferentia nodes within Amazon EKS clusters](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wx5110o2t7q8g6pfd7f5.png)

**[Using OPA to validate Amazon EKS Blueprint Templates](https://aws-oss.beachgeek.co.uk/3u2)** explora los beneficios de utilizar OPA para escanear tus templates de Amazon EKS para Terraform, y cómo puede ayudarte a mantener un entorno seguro [Hands-on]

**[Autoscaling Kubernetes workloads with KEDA using Amazon Managed Service for Prometheus metrics](https://aws-oss.beachgeek.co.uk/3u3)** ofrece una guía práctica que te muestra cómo escalar automáticamente una aplicación en Amazon EKS utilizando KEDA y Amazon Managed Service for Prometheus. [Hands-on]

![Autoscaling Kubernetes workloads with KEDA using Amazon Managed Service for Prometheus metrics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p09ayw1whfqmzsseheo4.png)

**[Amazon OpenSearch Service Under the Hood: OpenSearch Optimized Instances (OR1)](https://aws-oss.beachgeek.co.uk/3ty)** profundiza en la familia de instancias optimizadas para OpenSearch (OR1) y cómo pueden proporcionar un alto rendimiento de indexación y durabilidad utilizando un nuevo protocolo de replicación física. Además, explora algunos de los desafíos para mantener la corrección y la integridad de los datos. [Hands-on]

![Amazon OpenSearch Service Under the Hood: OpenSearch Optimized Instances (OR1)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1gsy98khbcl4j6xawuuo.png)

**[Simplify Amazon EKS Deployments with GitHub Actions and AWS CodeBuild](https://aws-oss.beachgeek.co.uk/3vd)** ofrece una visión de cómo simplificar los despliegues de Amazon EKS con GitHub Actions y AWS CodeBuild.[Hands-on]

![Simplify Amazon EKS Deployments with GitHub Actions and AWS CodeBuild](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39toypk7vkcpf3mwcybm.png)

**[Enhancing Network Resilience with Istio on Amazon EKS](https://aws-oss.beachgeek.co.uk/3ve)** explora cómo Istio en EKS puede mejorar la resiliencia de la red para tus microservicios. Proporciona características como tiempos de espera, reintentos, cortafuegos, límites de velocidad e inyección de fallos. Istio permite a los microservicios mantener una comunicación receptiva incluso cuando enfrentan interrupciones. [Hands-on]

![Enhancing Network Resilience with Istio on Amazon EKS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bnbdkocktg37m014m4s.png)

**[Enable Private Access to the Amazon EKS Kubernetes API with AWS PrivateLink](https://aws-oss.beachgeek.co.uk/3vf)** ofrece un plan para aprovechar AWS PrivateLink y habilitar acceso privado, inter-VPC entre cuentas al API de Kubernetes de Amazon EKS. [Hands-on]

![Enable Private Access to the Amazon EKS Kubernetes API with AWS PrivateLink](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/428iznibsdbn9qw3xqc7.png)

## AWS Community

###Cloud Native
**Sean Kane** de SuperOrbital nos trae **[Profundizando en la autenticación de AWS y Kubernetes](https://aws-oss.beachgeek.co.uk/3vm)**, donde nos ofrece un enfoque práctico para explorar las diversas opciones que los usuarios de AWS pueden usar para permitir acceso controlado entre los recursos en la nube de AWS y los recursos del clúster de Kubernetes de EKS.

No nos vamos a salir del campo de la seguridad, ya que **Paul Schwarzenberger**, nos trae [AWS Application Load Balancer mTLS con CA](https://aws-oss.beachgeek.co.uk/3vq), donde nos muestra cómo implementar mTLS para AWS Application Load Balancer utilizando una autoridad de certificación de código abierto.

####Cursos gratuitos 

AWS ha lanzado una serie de cursos gratuitos que te permitirán iniciar tu trayecto en el mundo de DevOps. Además, también encontrarás opciones disponibles para Machine Learning en el mismo portal.

1. [Getting Started with DevOps on AWS ](https://classcentral.com/course/getting-started-with-devops-on-aws-72991)

2. [DevOps Engineer Learning Plan](https://t.co/zOzISMDJFi)

###IA Generativa

**Abishek Gupta** ha creado dos publicaciones de obligada lectura en este área. En primer lugar, **[Bases de datos vectoriales para aplicaciones de inteligencia artificial generativa](https://aws-oss.beachgeek.co.uk/3u6)**, donde comparte cómo superar limitaciones utilizando bases de datos vectoriales y RAG. En la siguiente publicación, **[Cómo usar la Generación Aumentada por Recuperación (RAG) para aplicaciones en Go](https://aws-oss.beachgeek.co.uk/3u7)**, Abi nos muestra cómo implementar RAG con LangChain y PostgreSQL usando Go. 

**João Galego** explora dos proyectos de código abierto (RAGmap y RAGxplorer) que ayudan a explorar los embeddings que creamos. Lo tenéis disponible en su publicación **[Mapeando embeddings: de significado a vectores y viceversa](https://aws-oss.beachgeek.co.uk/3u8)**. 

Seguimos con un fanático de WordPress, **Rio Astamal**, quien comparte cómo puedes usar la IA generativa para construir un plugin de WordPress que se integra con Amazon Bedrock, en su blog **[Creé un plugin de inteligencia artificial para WordPress para que los creadores sean más productivos. Así es cómo lo hice.](https://aws-oss.beachgeek.co.uk/3u9)** 

En esta edición os queremos presentar el repositorio de **Matt Camp** donde habla DeepRacer, y comparte noticias sobre lo que puedes esperar con la última actualización del repositorio en la publicación [DeepRacer-for-Cloud v5.2.2 ahora disponible con nuevas métricas de entrenamiento en tiempo real](https://dev.to/aws-builders/deepracer-for-cloud-v522-now-available-with-new-real-time-training-metrics-7ki)!

Por último, si sois usuarios de Hugging Face ahora tenéis disponible AWS Inferentia2. Podéis implementar más de 100,000 modelos en AWS Inferentia2 usando Amazon SageMaker, incluidas arquitecturas populares como BERT y RoBERTa. Los endpoints de inferencia de Hugging Face os facilitarán la implementación. Simplemente eliges tu modelo y seleccionas la opción de instancia Inf2. Para que os hagáis una idea: podemos implementar modelos Llama 3 en:

- inf2-small: 2 núcleos, 32 GB de memoria (0.75/hora)
- inf2-xlarge: 24 núcleos, 384 GB de memoria (12/hora)

Los endpoints admiten el agrupamiento continuo, el streaming y son compatibles con la API de mensajes del SDK de OpenAI, lo que garantiza una transición fluida para tus aplicaciones GenAI.

## Vídeos del Mes

###Keynote Fifteen years of formal methods at AWS

Grabado en el Open Source Summit North America, Marc Brooker de AWS, nos ofrece una sesión que examina el pasado, el presente y el futuro del diseño de sistemas a gran escala, poniendo las matemáticas en el centro. 

{% embed https://youtu.be/HxP4wi4DhA0 %}

###Talking with Management About Open Source

Es una guía sobre cómo puedes hablar con los managers y stakeholders sobre open source. Una charla interesante que muestra los conocimientos esenciales para saber interactuar con los de arriba.

{% embed https://youtu.be/p_9WPXNXqPk %}

## El Mundo de Rust

Este mes queremos destacar a **Joshua Mo** que nos trae una serie de artículos que nos ha llamado la atención:

En el primero de ellos Josh nos muestra [cómo utilizar AWS Bedrock con Rust](https://www.shuttle.rs/blog/2024/05/10/prompting-aws-bedrock-rust), donde despliega una API que puede recibir un prompt JSON de una solicitud HTTP y devolver una respuesta de AWS Bedrock que se puede transmitir o devolver como una respuesta completa. 

Además nos trae [cómo crear un servicio web que utilice AWS S3 para almacenar y recuperar imágenes](https://www.shuttle.rs/blog/2024/04/17/using-aws-s3-rust). Es interesante ver cómo agrega telemetría a través de trazas, examina pruebas y otras factores para llevar a producción una aplicación web en Rust.

Y hablando de telemetría, no podíamos dejar pasar la oportunidad para ver cómo utiliza [OpenTelemetry con Rust](https://www.shuttle.rs/blog/2024/04/10/using-opentelemetry-rust)


Y hasta aquí la edición de Mayo, nos vemos en unas semanas! Hasta entonces, sed buenos, happy coding!