MiniStack — emulador local de AWS gratuito y de código abierto
(ministack.org)- Emulador gratuito y de código abierto que puede reproducir por completo un entorno de AWS en local, desarrollado como alternativa a LocalStack tras su paso a un modelo de pago
- Ejecuta 34 servicios de AWS en un solo puerto y pone en marcha contenedores reales de Postgres, Redis y Docker para ofrecer un entorno de pruebas a nivel de infraestructura
- Es totalmente compatible con AWS SDK, CLI, Terraform, CDK y Pulumi, y se distribuye bajo licencia MIT sin registro de cuenta ni telemetría
- Permite una ejecución local ligera y rápida con 2 segundos de arranque, 30 MB de uso de memoria y una imagen Docker de 150 MB
- Todas las funciones se ofrecen gratis, por lo que permite construir un entorno local completo de desarrollo AWS que reemplaza las funciones Pro de LocalStack
Resumen de MiniStack
- MiniStack es una herramienta gratuita y de código abierto que puede emular por completo un entorno de AWS en local, diseñada como alternativa a LocalStack tras su paso a un modelo de pago
- Ejecuta 34 servicios de AWS en un solo puerto y utiliza contenedores reales de Postgres, Redis y Docker
- Funciona sin registro de cuenta, claves de licencia ni telemetría remota, y se distribuye bajo licencia MIT
- Tiene un tiempo de arranque de aproximadamente 2 segundos, 30 MB de uso de memoria en reposo y una imagen Docker de 150 MB
- Después de que la versión Community de LocalStack pasara a un modelo de pago, se presenta como una solución alternativa gratuita que ofrece una experiencia de desarrollo equivalente
Funciones y servicios principales
- RDS, ElastiCache y ECS ejecutan contenedores Docker reales para ofrecer un entorno de infraestructura real
- Athena ejecuta consultas SQL reales a través de DuckDB y, si no está instalado, devuelve resultados simulados
- Mantiene la compatibilidad con AWS SDK, por lo que puede usarse con boto3, AWS CLI, Terraform, CDK, Pulumi y más
- Todos los servicios se ofrecen gratis, sin limitaciones funcionales ni planes de pago diferenciados
-
34 servicios de AWS incluidos
- S3: soporte para buckets, objetos, control de versiones, cifrado, ciclo de vida, CORS, replicación y más
- SQS: soporte para funciones de colas como FIFO, DLQ, lotes y visibilidad
- SNS: soporte para temas, suscripciones, fanout hacia SQS y publicación por lotes
- DynamoDB: soporte para CRUD, query, scan, transacciones, TTL y GSI
- Lambda: ejecución real de Python, mapeo de eventos de SQS y soporte para Layers
- Incluye la mayoría de los servicios clave de AWS, como IAM / STS / Secrets Manager / CloudWatch / SSM / EventBridge / Kinesis / SES / Step Functions / API Gateway v1·v2 / Route53 / Cognito / EC2 / EMR / EBS / EFS / ALB / ACM / WAF / CloudFormation
- RDS ejecuta contenedores reales de Postgres/MySQL, y ElastiCache ejecuta contenedores reales de Redis/Memcached
- ECS ejecuta contenedores Docker reales, y Glue y Athena ofrecen funciones de catálogo de datos y ejecución SQL
Comparación con LocalStack
- LocalStack Free pasó a cobrar por servicios clave, mientras que MiniStack ofrece las mismas funciones gratis
- Funciones que eran exclusivas de LocalStack Pro, como Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB y CloudFormation, también se incluyen gratis
- RDS, ElastiCache, ECS y Athena funcionan sobre una base de contenedores reales
- Con un arranque de unos 2 segundos, 30 MB de uso de memoria y una imagen Docker de 150 MB, es mucho más ligero que LocalStack
- La licencia es MIT, a diferencia de la BSL/Proprietary de LocalStack, y el precio es completamente gratuito
Funcionamiento basado en infraestructura real
- RDS: al ejecutar el comando
CreateDBInstance, crea un contenedor Docker real de Postgres/MySQL y permite conectarse directamente por un puerto local - ElastiCache: con el comando
CreateCacheCluster, ejecuta un contenedor real de Redis, útil como almacén de sesiones y otros casos - ECS: con el comando
RunTask, ejecuta contenedores Docker reales y permite probar definiciones de tareas ECS en local - Athena: ejecuta consultas SQL reales mediante DuckDB y devuelve conjuntos de resultados
- Compatibilidad total con todas las herramientas de AWS, sin necesidad de cambiar endpoints de API
Despliegue y uso
- Puede ejecutarse con una sola línea de comando de Docker
docker run -p 4566:4566 nahuelnucera/ministack - Es posible acceder a todos los servicios, como S3, RDS y ElastiCache, mediante AWS CLI
- Ejemplos:
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucketaws --endpoint-url=http://localhost:4566 rds create-db-instance --engine postgresaws --endpoint-url=http://localhost:4566 elasticache create-cache-cluster --engine redis
Licencia e información de distribución
- Se distribuye bajo licencia MIT, lo que permite hacer fork e integrarlo libremente
- Está disponible públicamente en GitHub y Docker Hub
- El desarrollador es Nahuel y el proyecto está previsto para mantenerse hasta 2026
Lecciones clave
- MiniStack es una alternativa completamente gratuita a LocalStack que ofrece un entorno local de AWS basado en infraestructura real
- Se caracteriza por su arranque rápido, uso ligero de recursos y compatibilidad total con el SDK
- Todas las funciones son gratuitas, con licencia MIT y sin telemetría
- Es una herramienta que ofrece en desarrollo local y entornos de CI/CD la misma experiencia de pruebas que un entorno de producción de AWS
1 comentarios
Opiniones en Hacker News
Conozco muy bien DynamoDB
pero este código no emula correctamente las excepciones del servicio, la validación de entradas, la consistencia eventual ni los casos límite
por eso me da desconfianza desarrollar o probar sobre ministack
además, varios servicios de AWS tienen free tier, así que no hay tanta razón para usar este tipo de reemplazo
es decir, verificar que la aplicación llame a la API correcta con los datos correctos
no pretende reemplazar el comportamiento real de DynamoDB, como límites de capacidad, demoras de consistencia o procesamiento de streams
aun así, siempre son bienvenidas las contribuciones que mejoren la reproducibilidad de errores
actualmente están pendientes
ProvisionedThroughputExceededException,TransactionConflictException,ItemCollectionSizeLimitExceededException, entre otraslas pruebas básicas se pueden hacer con ministack, y solo en la etapa de pruebas de carga generar costos en AWS real
Estoy considerando ministack porque me molestó el cambio de licencia de LocalStack
para quien tenga prisa, fijarlo con la etiqueta
community-archivelo resuelve de inmediatoEnlace de Docker Hub
Me parece difícil que cualquier proyecto réplica supere la razón por la que LocalStack fracasó
mantener compatibilidad gratuita con la enorme cantidad de servicios de AWS no parece realista
quizás LocalStack tenía una base de código desordenada o falló al gestionar a sus contribuidores
ahora AWS ya maduró y avanza más lento, y la IA genera con facilidad código al 80%
además, con el alza de precios de LocalStack apareció un grupo de desarrolladores buscando alternativas open source
también hay mucho que aprender de la versión open source de LocalStack
solo queremos mantener actualizados los servicios centrales de la antigua versión comunitaria
no planeamos dar soporte a servicios grandes como MWAA
porque la mayoría de los servicios clave de AWS casi no cambian su API
si necesitas funciones complejas en local, puedes usar una cuenta de desarrollo real de AWS
si se aprovechan bien los LLM y nuevos enfoques de testing, parecería posible crear de forma semiautomática un conjunto de servicios compatibles
pero no quiero involucrarme directamente
también probé Floci, pero tenía los problemas típicos del código inicial
El verdadero problema de LocalStack era el drift
las pruebas locales pasaban, pero en staging muchas veces fallaba por diferencias en el formato de respuesta de S3 o en el throttling de DynamoDB
al final cambiamos a correr pruebas de integración en entornos reales de AWS de vida corta
cuesta más, pero hubo muchos menos problemas inesperados en producción
o sea, si pasa en local, recién ahí corres las pruebas de integración con AWS real
Recién ahora me entero del cambio de licencia de LocalStack
antes lo usaba muy bien en GH Actions para pruebas de CI/CD, y la compatibilidad con AWS CLI era bastante buena
de hecho, esperaba que Amazon comprara LocalStack y lo convirtiera en un entorno oficial de desarrollo local
pero eso probablemente no habría sido realista porque reduciría los ingresos de AWS por entornos de prueba
seguimos usándolo con satisfacción, pero nos decepcionó la dirección que tomó
espero que no sea una medida para asegurar ingresos de corto plazo
a largo plazo, es muy posible que los clientes migren hacia alternativas gratuitas o soluciones personales basadas en GenAI
en lo personal, no me interesan los Pods ni la interfaz de consola de LocalStack
espero que no hayan recibido inversión de VC con la condición de eliminar la edición comunitaria
aunque el CLI funcionara bien, con frecuencia los servicios de LocalStack se comportaban distinto a la documentación
Cuando veo un README con un diagrama ASCII desalineado hecho por Claude, no me inspira confianza
si ni siquiera hubo control de calidad básico, cuesta creer también la descripción de las funciones
Enlace de ejemplo
Enlace al CHANGELOG
si esto sigue así, parece que seguirá aumentando el código de baja calidad generado por IA
si ni siquiera revisaron la alineación, da todavía menos confianza
Todavía es pronto para adoptarlo en el SDLC, pero parece un proyecto prometedor
viniendo de alguien decepcionado con LocalStack, creo que podría convertirse en una alternativa
Antes ya había salido en HN otra alternativa
Enlace al hilo relacionado
este proyecto apenas tiene 7 días
realmente quiero un reemplazo para LocalStack, pero todavía le falta mucho en madurez
hoy en día mucho software parece ser así: sitio web vistoso, grandes promesas, código de IA y pocas pruebas
Me pregunto qué sería el equivalente en GCP
no entiendo por qué Amazon no hace algo así
sería mucho más cómodo para todos
Ojalá tuviera una función de simulador de costos realistas