¡Bienvenidos a esta nueva edición del boletín de open-source de AWS! Este mes nos sumergimos en un abanico de herramientas, desde soluciones de seguridad para el Red Team hasta calculadoras de costes y opciones avanzadas para monitorización. También exploraremos proyectos pensados para entusiastas de la IA y el cloud computing, y, para los desarrolladores de juegos y quienes buscan innovar con tecnologías open-source en AWS, destacamos integraciones como Godot con Amplify y demos prácticas. Cerramos con recursos sobre Rust y Kubernetes, y una mirada a arquitecturas escalables para plataformas de datos.
Por cierto,!nos acercamos a nuestro mayor evento del año, re:Invent. Si todavía no te has registrado, aún estás a tiempo!
Todo esto es gracias a la comunidad, cuya colaboración hace posible esta newsletter. Sin ellos no habría boletín de noticias.
Comencemos!
Novedades y Herramientas
Productividad
Lazydocker
Memorizar los comandos de Docker no es tarea fácil. Memorizar alias es un poco menos complicado. Mantener el seguimiento de tus contenedores en varias ventanas de terminal es casi imposible. ¿Qué tal si tuvieras toda la información que necesitas en una sola ventana de terminal con cada comando común a un solo clic de distancia (y con la capacidad de agregar comandos personalizados también)? El objetivo de Lazydocker es hacer ese sueño realidad.
TerminatorZ es una herramienta de seguridad web diseñada para escanear aplicaciones en busca de vulnerabilidades. Utiliza técnicas avanzadas y herramientas populares como waybackurls y curl para realizar análisis rápidos y pasivos. Los resultados se muestran de manera clara en la terminal y solo guarda aquellos que son vulnerables para un análisis más profundo. Su enfoque ligero y rápido la convierte en una herramienta ideal para equipos de seguridad y RED Teamers.
Repopack
Repopack es una herramienta que empaqueta todo tu repositorio en un solo archivo optimizado para IA. Es perfecta cuando necesitas alimentar tu base de código a LLMs u otras herramientas de IA como Claude, ChatGPT y Gemini.
Muchas veces os habréis preguntado ¿puede mi GPU ejecutar este LLM y a cuántos tokens/s? ¿Cómo saberlo? Aquí os traemos un repo que te ayuda a calcular cuánta memoria GPU necesitas y cuántos tokens/s puedes obtener para cualquier LLM y GPU/CPU.
Además, desglosa dónde se utiliza para entrenamiento/inferencia con cuantización (GGML/bitsandbytes/QLoRA) y los frameworks de inferencia compatibles (vLLM/llama.cpp/HF).
Para gestionar identidades y permisos en AWS, es esencial dominar AWS IAM y sus políticas JSON, aunque su complejidad puede generar errores comunes. Un ejemplo típico es referirse a recursos incorrectamente, como en una política que pretendía restringir el acceso a Savings Plans pero falló por un error de sintaxis ("CreateSavingsPlans" en lugar de "CreateSavingsPlan"). La herramienta de Michael Kirchner, aws-lint-iam-policies ayuda a detectar estos problemas al ejecutar análisis en políticas IAM de una cuenta o de toda una organización. Utiliza el Access Analyzer de AWS para generar advertencias de seguridad y optimizar configuraciones, facilitando la seguridad en entornos AWS.
Ideal para desarrolladores y administradores que buscan afinar sus políticas de permisos en AWS.
git-remote-s3
Si alguna vez te has preguntado cómo usar Amazon S3 como un servidor remoto para Git, git-remote-s3 te permite hacer justo eso, actuando como un proveedor de Git Large File Storage (LFS). Básicamente, implementa un “remote helper” para que puedas usar S3 como un servidor Git sin necesidad de infraestructura. El README es muy completo y te explica cómo configurarlo, además de mostrarte ejemplos de comandos Git para sacarle el máximo provecho. ¡Sin duda, algo que toca probar en mis próximos proyectos!
networking-costs-calculator
Para los que os pasáis el día calculando costes de red en AWS, networking-costs-calculator es una herramienta que os va a facilitar la vida. Ofrece un código de muestra para estimar los costes de red, incluyendo transferencias de datos, conexiones de Transit Gateway, NAT Gateways, entre otros. La calculadora tiene dos partes principales: un backend serverless que usa las APIs de precios de AWS para obtener costos actualizados y los guarda en DynamoDB, y una interfaz web en ReactJS (hospedada en S3 con CloudFront) para visualizar esos costes de forma interactiva. Todo está explicado en el README; estoy seguro que Corey Quinn la tendrá entre sus aplicaciones favoritas!
cloudwatch-to-opensearch
Este proyecto cloudwatch-to-opensearch proporciona un ejemplo de código que te muestra cómo ingestar logs de Amazon CloudWatch directamente en Amazon OpenSearch Serverless. Mientras que CloudWatch Logs es excelente para recopilar y almacenar datos de logs, OpenSearch Serverless ofrece capacidades avanzadas de búsqueda, análisis y visualización de datos. Esta implementación crea un pipeline serverless que combina lo mejor de ambos servicios: CloudWatch Logs para la agregación de logs y OpenSearch Serverless para el análisis. Si trabajas con grandes volúmenes de logs y necesitas una solución flexible para su análisis, este proyecto es una opción muy interesante.
cloudsec-ninja
cloudsec-ninja es un proyecto open source diseñado especialmente para la comunidad hispanohablante. Su objetivo es ayudarte a desarrollar habilidades en Seguridad en la Nube, cubriendo todo lo necesario para que puedas gestionar e implementar medidas de seguridad en tus cargas de trabajo sobre AWS. Tanto si eres principiante como si ya tienes experiencia en la materia, aquí encontrarás recursos útiles. ¡Échale un vistazo!
Artificial Intelligence
Meta acaba de hacer público un repositorio en GitHub para el entrenamiento de LLMs. Meta Lingua es una biblioteca mínima y rápida para el entrenamiento e inferencia de LLM, diseñada para la investigación.
Si ya peinas canas y has pasado horas jugando al Counter-Strike, este repositorio te va a encantar. "Diffusion for World Modeling: Visual Details Matter in Atari" (NeurIPS 2024 Spotlight) incluye el código para jugar (y entrenar) nuestro modelo de mundo en Counter-Strike: Global Offensive (CS:GO). ¡Prepárate para revivir los detalles visuales que marcaron la diferencia en los juegos clásicos!
Pasando al diseño de Agentes de IA, mi colega Eduardo Ordax presenta en pocas palabras los patrones de diseño de Agentes IA:
Cloud Native
Mi colega Alex Ellis (creador de OpenFaaS) ha preparado un laboratorio que toma una imagen de contenedor y la convierte en una microVM. ¡Totalmente Hands-On! Ejecutarás una microVM, usarás curl y ssh, e incluso podrás exponer un servidor HTTP a Internet usando inlets. Es una forma de explorar Firecracker. ¿Por qué Firecracker en lugar de contenedores? Simplemente porque, los contenedores no son suficientes. Necesitas algo que refleje el tipo de máquina que se encuentra en producción, como cuando aprovisionas una instancia de EC2. Ejecutar Docker, Kubernetes y garantizar un rendimiento seguro dentro de un contenedor es difícil, de ahí que el lab se haga con Firecracker.
Por otro lado, Viktar Mikalayeu y su equipo ha lanzado la versión 0.15.1 de la plataforma SRE Learning. Incluye nuevas prácticas de examen con Cilium en el módulo de autogestión de Kubernetes y soluciones detalladas con videos para las políticas de red CKA y CKS.
aws-eks-udp-telemetry
Este proyecto, aws-eks-udp-telemetry, es un sueño hecho realidad para los amantes de la telemetría en juegos de carreras. Hace años, descubrí que muchos juegos de carreras para consolas permiten exportar datos de telemetría, y me entusiasmé creando un código simple para mostrar algunos datos básicos como la velocidad y la temperatura de los neumáticos. Años más tarde, montamos un simulador de F1 en las oficinas de Madrid donde capturamos y damos recomendaciones sobre tu pilotaje usando la telemetría y la inteligencia artificial (aquí he de hacer una mención al core del equipo: Francisco Morillo, José Navarro y un servidor. Es por ello un placer ver que Amador Criado, miembro de la comunidad AWS, ha desarrollando un proyecto parecido. En su blog, Ingesting F1 Telemetry UDP real-time data in AWS EKS, explica en detalle cómo funciona todo el sistema. Con una documentación detallada y un video de apoyo, este proyecto es una verdadera joya. ¡Buen trabajo, Amador!
scaling-with-karpenter
scaling-with-karpenter es un proyecto creado por Romar Cablao, también miembro de la comunidad AWS, que ofrece una demostración sobre cómo Karpenter puede escalar automáticamente tus clústeres de Kubernetes. Si estás interesado en probar el código, puedes consultar su artículo, Scaling & Optimizing Kubernetes with Karpenter - An AWS Community Day Talk, donde comparte consejos y mejores prácticas para optimizar Kubernetes con Karpenter. Una excelente guía para quien quiera mejorar la escalabilidad de sus aplicaciones.
Taking Local K8s for a Spin with Minikube and ArgoCD
Nuestro AWS Community Builder Benjamen Pyle comparte su experiencia al ejecutar un stack local de Kubernetes usando Minikube y desplegando una aplicación de muestra con ArgoCD. Este post es solo el comienzo, ya que piensa publicar más artículos. ¡Si quieres aprender sobre Kubernetes de forma local, este es el sitio de referencia!
AWS y Kubecost lanzan Kubecost 2.0 para usuarios de Amazon EKS
Este artículo examina las nuevas características de Kubecost, una herramienta para obtener información detallada sobre los costes de recursos de Kubernetes. Incluye un tutorial para comenzar a usar estas funciones y optimizar el coste de tu infraestructura en Amazon EKS.
Amazon EKS Optimized Amazon Linux 2023 AMI acelerado ya disponible
Este post explora en profundidad la AMI optimizada para Amazon EKS en Amazon Linux 2023, mostrando cómo mejora el rendimiento y la seguridad de tus aplicaciones. Buen blog si buscas optimizar tus implementaciones de Kubernetes en AWS.
Escalando un modelo de lenguaje extenso con NVIDIA NIM en Amazon EKS usando Karpenter
Este tutorial te guía en la implementación de NVIDIA NIM en EKS, demostrando cómo gestionar y escalar grandes modelos de lenguaje (LLM) de manera eficiente con Karpenter.
Demos, Soluciones y Talleres
amplify-godot-engine-sample
amplify-godot-engine-sample está hecho para quienes quieren combinar el poder de AWS Amplify con Godot, uno de los motores de juegos de código abierto más populares. Este repositorio incluye ejemplos de código que muestran cómo usar AWS Amplify con proyectos de demostración de Godot. Una buena manera de llevar tus proyectos de juegos 2D y 3D al siguiente nivel.
content-based-item-recommender
Este proyecto, content-based-item-recommender, proporciona código para implementar un sistema de recomendación basado en contenido. Aprovecha los modelos LLM y la búsqueda vectorial para realizar recomendaciones en función de la coincidencia entre el contenido de entrada y los elementos de tu base de datos. Ideal para quienes desean explorar recomendaciones personalizadas usando IA.
Una solución de tracking de equipaje en aerolíneas usando AWS IoT y Amazon MSK
Este caso de estudio muestra cómo IBM modernizó un sistema de seguimiento de equipaje utilizando AWS IoT y Amazon MSK. Es una buena referencia para quienes buscan transformar sistemas tradicionales mediante tecnologías de IoT y streaming de datos en AWS.
Vídeos del Mes
Building scalable data platforms using Data on EKS
En un episodio del podcast Kubernetes Bytes, Bhavin se sienta con Alex Lines y Vara Bonthu de AWS para hablar del proyecto Data on EKS. La charla se centra en las razones por las cuales AWS desarrolló el proyecto y los patrones que proporciona para que los clientes de EKS implementen plataformas de datos, aprendizaje automático y herramientas de IA generativa en clústeres de EKS. Discuten qué está incluido y qué no en cada uno de estos patrones, así como las novedades que están por venir en este proyecto.
Desbloqueando el Poder de los Módulos de Valkey con Rust
Valkey es una plataforma distribuida de almacenamiento de datos tipo clave-valor optimizada para entornos de alto rendimiento. Su diseño modular, especialmente eficiente con Rust, permite a los desarrolladores integrar nuevas estructuras de datos y patrones de acceso, adaptando Valkey a diversas aplicaciones de manera flexible y segura.
Mira este video para descubrir cómo se manejan los módulos y no olvides echarle un vistazo a los otros videos también.
El Mundo de Rust
Aprendiendo Rust de la Manera Peligrosa (Learning Rust the Dangerous Way - LRtDW) es una serie de artículos que pone en contexto las características de Rust para programadores de bajo nivel que vienen de C y que tal vez no tienen una formación formal en Ciencias de la Computación. Está pensado para personas que trabajan en firmware, motores de videojuegos, kernels de sistemas operativos y cosas similares.
Link: https://cliffle.com/p/dangerust/
Onefetch es una herramienta de línea de comandos escrita en Rust que muestra información del proyecto y estadísticas de código de un repositorio local de Git directamente en tu terminal. La herramienta funciona completamente sin conexión, sin necesidad de acceso a la red.
Link: https://github.com/o2sh/onefetch
Y hasta aquí nuestra edición de Octubre. Esperamos que el contenido os haya sido útil. Nos vemos el mes que viene con una nueva edición. Hasta entonces, Happy coding!