Primeros pasos con herramientas open-source de AWS
Primer artículo sobre las herramientas open-source que pueden ayudarte a gestionar tus cuentas de AWS.
Open-Source tools and AWS
Explora cómo integrar herramientas open-source populares con servicios AWS para mejorar flujos de trabajo de desarrollo y gestión de infraestructura.
3 articles
1. Introducción
La Open Source Initiative define aquí los siguientes criterios para considerar el software como open-source:
- Redistribución libre
- El código fuente debe ser accesible
- La licencia debe permitir modificaciones y trabajos derivados
- Integridad del código fuente del autor
- Sin discriminación contra personas o grupos
- Sin discriminación contra campos de actividad
- Distribución de licencia
- La licencia no debe ser específica de un producto
- La licencia no debe restringir otro software
- La licencia debe ser tecnológicamente neutral
Open source es software cuyo código está diseñado para ser accesible al público:
cualquiera puede ver, modificar y distribuir el códigocomo desee.
Por cierto, ambos términos son correctos: open-source y open source. Podría usarlos indistintamente en este artículo.
Cuál es la relación entre open-source y AWS
Estoy seguro de que ya sabes que hay muchos proyectos open-source relacionados con AWS, demasiados. Esto se debe a que AWS es muy popular, pero también porque AWS está muy comprometido con la comunidad open-source.
AWS afirma que el open-source es bueno para todos y desarrolla regularmente software open-source y contribuye a miles de comunidades open-source en GitHub, Apache y la Linux Foundation. Más información se puede encontrar aquí
En este post, intentaré mostrarte algunos proyectos open-source, ya que probablemente no los conoces todos y seguramente puedes empezar a usar algunos de ellos.
¡Así que comencemos a compartir código público!
2. Principales herramientas open-source de AWS
Comencemos con los proyectos open-source de AWS más populares.
Probablemente ya estés usando algunos de ellos y no te diste cuenta de que son open-source. Sin embargo, no voy a explicarlos ni dar más información, solo los nombraré aquí:
- AWS CLI: Amazon Web Services Command Line Interface
- CDK (Cloud Development Kit): Define infraestructura en la nube usando lenguajes de programación familiares
- SAM (Serverless Application Model): Framework para construir aplicaciones serverless
- AWS Amplify: framework y herramientas para desarrollar aplicaciones móviles y web
- EKS distro: Distribución certificada de Kubernetes basada en y utilizada por Amazon Elastic Kubernetes Service (EKS) para crear clústeres de Kubernetes confiables y seguros -https://github.com/aws/eks-distro
- Karpenter: proyecto de aprovisionamiento de nodos construido para Kubernetes
- OpenSearch: Un conjunto de búsqueda y análisis impulsado por la comunidad derivado de Elasticsearch 7.10.2 y Kibana 7.10.2 con licencia Apache 2.0
- Bottlerocket: Sistema operativo basado en Linux destinado a alojar contenedores
- Firecracker: Monitor de máquina virtual (VMM) para crear y gestionar microVMs. Firecracker impulsa el servicio AWS Lambda.
3. Extender AWS CLI
Mi primera idea fue nombrar esta sección herramientas CLI pero todas las herramientas open-source listadas aquí son herramientas CLI (Command Line Interface), así que esta sección es para las herramientas que puedes usar para mejorar/extender/reemplazar tu herramienta AWS CLI.
- Seguridad
- aws-vault: una herramienta para
almacenar y acceder de forma segura a las credenciales de AWSen un entorno de desarrollo
- aws-vault: una herramienta para
- Extender AWS CLI
- aws-shell:
potenciador de productividadinteractivo para AWS CLI - awsls: un
comando de listapara recursos de AWS - steampipe: Usa
SQL para consultar infraestructura en la nube, SaaS, código, logs y más - ohmyzsh con el plugin AWS: proporciona soporte de autocompletado para AWS CLI y algunas utilidades para
gestionar perfiles de AWS y mostrarlos en el prompt
- aws-shell:
- Logs
- awslogs: una herramienta de línea de comandos simple para
consultargrupos, streams y eventosde Amazon CloudWatch logs
- awslogs: una herramienta de línea de comandos simple para
3.1. aws-vault
aws-vault almacena y accede de forma segura a las credenciales de AWS en un entorno de desarrollo.
AWS Vault almacena credenciales de IAM en el almacén seguro de tu sistema operativo y luego genera credenciales temporales a partir de ellas para exponerlas a tu shell y aplicaciones. Está diseñado para ser complementario a las herramientas de AWS CLI y es consciente de tus perfiles y configuración en ~/.aws/config.
Por qué usarlo: Herramienta complementaria para las herramientas de AWS CLI, para asegurar tus conexiones protegiendo tus credenciales.
¡Con el último comando, la consola de AWS se abrirá y estarás conectado!
¿Es popular? Sí, estadísticas de GitHub: Watch 119; Fork 725; Stars 7.1k
¿Actualizado recientemente? Sí, 1096 commits, hace 2 semanas
URL: https://github.com/99designs/aws-vault
En mi opinión, esta herramienta es imprescindible para asegurar tus credenciales.
3.2. aws-shell
El potenciador de productividad interactivo para AWS CLI
Por qué usarlo: AWS CLI es increíble pero tal vez no conoces los comandos. Con aws-shell, tienes un ayudante y mientras escribes puedes ver visualmente las opciones disponibles:
¿Es popular? Sí, estadísticas de GitHub: Watch 230; Fork 755; Stars 6.8k
¿Actualizado recientemente? No, el proyecto parece abandonado (último commit 7 de octubre de 2020). Total de commits 235
URL: https://github.com/awslabs/aws-shell
La herramienta no funciona con AWS CLI v2 (aquí está el
Issueoficial en github), y el proyecto parece haber sido abandonado (último commit 10 de julio de 2020).Sin embargo, si usas la v1, la herramienta vale la pena porque contiene todos los servicios principales de AWS.
3.3. awsls
Un comando de lista para recursos de AWS. Se admiten más de 100 recursos de AWS. El objetivo es generar código para una función de lista para cada recurso de AWS que esté cubierto por el Terraform AWS Provider (actualmente más de 500)
Por qué usarlo: Si quieres buscar recursos en múltiples regiones y/o cuentas y filtrar por cualquier valor usando
GREP, ¡esta es la herramienta para ti!
¿Es popular? Sí, estadísticas de GitHub: Watch 10; Fork 51; Stars 763
¿Actualizado recientemente? No, un año desde la última actualización (13 de febrero de 2022), con 91 commits en total.
URL: https://github.com/jckuester/awsls
Aunque no se ha actualizado recientemente, vale la pena usarlo por su capacidad de buscar en múltiples cuentas y filtrar usando el comando GREP.
3.4. steampipe
Steampipe es la interfaz universal para APIs. Usa SQL para consultar infraestructura en la nube, SaaS, código, logs y más.
Por qué usarlo: Usando SQL puedes consultar recursos de AWS, realizar consultas de unión (misma cuenta, varias cuentas, entre diferentes fuentes), y tienes un ayudante para realizar las consultas. ¡Todo en uno!
¿Es popular?: En Github: Watch 32; Fork 171; Stars 4.6k
¿Actualizado recientemente? Sí, último commit hace 2 días. Total de commits 2007
URL: https://github.com/turbot/steampipe
Más información (consultando recursos de AWS):
- https://steampipe.io/docs/query/overview
- https://aws.amazon.com/blogs/opensource/querying-aws-at-scale-across-apis-regions-and-accounts/
¡Me gusta esta herramienta! Si quiero obtener información específica en AWS usando una herramienta CLI, esta es mi primera opción para hacerlo, ¡te recomiendo que la pruebes!
3.5. awslogs
awslogs es una herramienta de línea de comandos simple para consultar grupos, streams y eventos de Amazon CloudWatch logs.
Por qué usarlo: Si quieres revisar tus logs con consola, esta es tu herramienta. ¡Puedes filtrar inicio/fin y también usando GREP! Un ejemplo:
¿Es popular?: En Github: Watch 61; Fork 326; Stars 4.5k
¿Actualizado recientemente? No, el proyecto parece haber sido abandonado. El último commit fue el 10 de julio de 2020. Total de commits 326
URL: https://github.com/jorgebastida/awslogs
¡La herramienta no está actualizada pero si quieres consultar los logs de CloudWatch, esta es tu herramienta!
3.6. ohmyzsh con el plugin AWS
Si estás usando ohmyzsh (framework para gestionar tu configuración de zsh), puedes agregar este plugin aws para extender tu CLI.
Este plugin proporciona soporte de autocompletado para AWS CLI y algunas utilidades para gestionar perfiles de AWS y mostrarlos en el prompt.
Por qué usarlo: Útil si estás usando diferentes perfiles y ohmyzsh.
¿Es popular?: ohmyzsh es un framework muy popular para zsh (155k stars), y el plugin AWS es parte de este framework.
¿Actualizado recientemente? Sí. El plugin AWS se actualizó hace 2 semanas
URL: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/aws
4. Próximos pasos
Como dije en la introducción, hay 2 artículos más en esta serie de herramientas open-source:





