MiniStack — emulador local de AWS gratuito e open source
(ministack.org)- Um emulador gratuito e open source capaz de reproduzir completamente um ambiente AWS localmente, desenvolvido como alternativa ao LocalStack após sua monetização
- Executa 34 serviços da AWS em uma única porta e sobe de fato contêineres Postgres, Redis e Docker, oferecendo um ambiente de testes em nível de infraestrutura
- Totalmente compatível com AWS SDK, CLI, Terraform, CDK e Pulumi, e distribuído sob licença MIT sem registro de conta nem telemetria
- Com 2 segundos de inicialização, 30 MB de uso de memória e imagem Docker de 150 MB, permite execução local leve e rápida
- Todos os recursos são oferecidos gratuitamente, possibilitando montar um ambiente local completo de desenvolvimento AWS que substitui os recursos Pro do LocalStack
Visão geral do MiniStack
- MiniStack é uma ferramenta gratuita e open source capaz de emular completamente um ambiente AWS localmente, projetada como alternativa ao LocalStack após sua monetização
- Executa 34 serviços da AWS em uma única porta e usa contêineres reais de Postgres, Redis e Docker
- Funciona sem registro de conta, chave de licença ou telemetria remota, e é distribuído sob licença MIT
- Tem cerca de 2 segundos de tempo de inicialização, 30 MB de uso de memória em idle e 150 MB de tamanho de imagem Docker
- Após a monetização da versão Community do LocalStack, passou a ser apresentado como uma solução alternativa gratuita que oferece a mesma experiência de desenvolvimento
Principais recursos e serviços
- RDS, ElastiCache e ECS fornecem um ambiente de infraestrutura real ao subir contêineres Docker de verdade
- Athena executa consultas SQL reais via DuckDB e, se não estiver instalado, retorna resultados simulados
- Mantém compatibilidade com o AWS SDK, podendo ser usado com boto3, AWS CLI, Terraform, CDK, Pulumi etc.
- Todos os serviços são gratuitos, sem limitação de recursos nem separação por planos pagos
-
34 serviços da AWS incluídos
- S3: suporte a buckets, objetos, versionamento, criptografia, ciclo de vida, CORS, replicação etc.
- SQS: suporte a recursos de fila como FIFO, DLQ, batch e visibilidade
- SNS: suporte a tópicos, assinaturas, fan-out para SQS e publicação em lote
- DynamoDB: suporte a CRUD, query, scan, transações, TTL e GSI
- Lambda: execução real de Python, mapeamento de eventos do SQS e suporte a Layers
- Inclui a maior parte dos principais serviços da 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 sobe contêineres reais de Postgres/MySQL, e ElastiCache sobe contêineres reais de Redis/Memcached
- ECS executa contêineres Docker reais, enquanto Glue e Athena oferecem catálogo de dados e execução de SQL
Comparação com o LocalStack
- O LocalStack Free passou a cobrar por serviços centrais, enquanto o MiniStack oferece os mesmos recursos gratuitamente
- Recursos que no LocalStack são exclusivos do Pro, como Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB e CloudFormation, também estão incluídos de graça
- RDS, ElastiCache, ECS e Athena funcionam com base em contêineres reais
- Com cerca de 2 segundos de inicialização, 30 MB de uso de memória e imagem Docker de 150 MB, é muito mais leve que o LocalStack
- A licença é MIT, ao contrário de BSL/Proprietary no LocalStack, e o preço é totalmente gratuito
Funcionamento com infraestrutura real
- RDS: ao executar o comando
CreateDBInstance, cria um contêiner Docker real de Postgres/MySQL, com conexão direta possível por uma porta local - ElastiCache: com o comando
CreateCacheCluster, executa um contêiner Redis real, que pode ser usado como armazenamento de sessão, entre outros usos - ECS: com o comando
RunTask, executa contêineres Docker reais, permitindo testar definições de tarefas ECS localmente - Athena: executa consultas SQL reais por meio do DuckDB e retorna o conjunto de resultados
- Compatível integralmente com todas as ferramentas AWS, podendo ser usado sem alterar endpoints de API
Implantação e uso
- Pode ser executado com uma única linha de comando Docker
docker run -p 4566:4566 nahuelnucera/ministack - É possível acessar todos os serviços, como S3, RDS e ElastiCache, via AWS CLI
- Exemplo:
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
Licença e informações de distribuição
- Distribuído sob licença MIT, permitindo fork e incorporação livremente
- Disponível publicamente no GitHub e no Docker Hub
- O desenvolvedor é Nahuel, e o projeto tem manutenção prevista até 2026
Lições principais
- O MiniStack é uma alternativa totalmente gratuita ao LocalStack, oferecendo um ambiente AWS local baseado em infraestrutura real
- Seus destaques são inicialização rápida, baixo consumo de recursos e compatibilidade completa com SDKs
- Todos os recursos são gratuitos, com licença MIT e sem telemetria
- É uma ferramenta que oferece, em ambientes de desenvolvimento local e CI/CD, a mesma experiência de testes do ambiente de produção da AWS
1 comentários
Comentários do Hacker News
Eu conheço bem o DynamoDB
Mas este código não consegue reproduzir direito exceções de serviço, validação de entrada, eventual consistency e casos de borda
Por isso, fico inseguro em desenvolver ou testar com base no ministack
Além disso, vários serviços da AWS têm camada gratuita, então não vejo tanto motivo para usar esse tipo de substituto
Ou seja, verificar se a aplicação chama a API correta com os dados corretos
Se você precisa do comportamento real do DynamoDB, como limites de capacidade, atraso de consistência ou processamento de streams, então ele não é um substituto
Mas contribuições para melhorar a reprodutibilidade de erros são sempre bem-vindas
No momento,
ProvisionedThroughputExceededException,TransactionConflictException,ItemCollectionSizeLimitExceededExceptione outras estão pendentesDá para fazer os testes básicos com o ministack e gerar custo real na AWS só na etapa de teste de carga
Estou considerando o ministack porque não gostei da mudança de licença do LocalStack
Quem está com pressa pode resolver isso agora mesmo fixando na tag
community-archiveLink do Docker Hub
Acho difícil qualquer projeto de replicação superar o motivo pelo qual o LocalStack falhou
Manter compatibilidade gratuita com inúmeros serviços da AWS parece inviável na prática
Pode ser também que a base de código do LocalStack fosse uma bagunça, ou que eles tenham falhado em gerenciar contribuidores
Agora a AWS está mais madura e evolui mais devagar, e a IA gera código em nível de 80% com facilidade
Além disso, com o aumento de preço do LocalStack, surgiu um grupo de desenvolvedores procurando alternativas open source
Também há muito o que aprender com a versão open source do LocalStack
Só queremos manter atualizados os serviços centrais da antiga versão community
Não pretendemos oferecer suporte a serviços grandes como MWAA
Isso porque a maioria dos serviços centrais da AWS quase não tem mudanças de API
Se você precisa de recursos complexos localmente, pode usar uma conta de desenvolvimento real na AWS
Se usar bem LLMs e novas abordagens de teste, talvez dê para criar de forma semiautomática um conjunto de serviços compatíveis
Mas eu não quero participar disso diretamente
Também testei o Floci, mas ele tinha problemas típicos de código em estágio inicial
O problema real do LocalStack era o drift
Os testes locais passavam, mas no staging quebravam com frequência por causa de diferenças no formato de resposta do S3 ou no throttling do DynamoDB
No fim, migramos para rodar testes de integração em ambientes reais da AWS de curta duração
Custa mais, mas reduziu muito os problemas inesperados em produção
Ou seja, se passar localmente, aí sim você roda os testes de integração na AWS real
Só agora fiquei sabendo da mudança de licença do LocalStack
Antes eu usava bem em GH Actions para testes de CI/CD, e a compatibilidade com a AWS CLI era até muito boa
Na verdade, eu queria que a Amazon adquirisse o LocalStack e o transformasse em um ambiente oficial de desenvolvimento local
Mas isso provavelmente nunca seria realista, porque reduziria a receita dos ambientes de teste da AWS
Ainda usamos com satisfação, mas fiquei decepcionado com a direção tomada
Espero que não tenha sido uma medida para garantir receita no curto prazo
No longo prazo, há uma boa chance de os clientes migrarem para alternativas gratuitas ou soluções pessoais baseadas em GenAI
Pessoalmente, não tenho interesse nos Pods nem na UI de console do LocalStack
Espero que eles não tenham recebido investimento de VC condicionado ao fim da edição community
A CLI funcionava bem, porém os serviços do LocalStack frequentemente se comportavam de forma diferente da documentação
Quando vejo um README com diagrama ASCII desalinhado feito pelo Claude, eu perco a confiança
Se é um projeto sem nem controle de qualidade básico, fica difícil confiar também na descrição das funcionalidades
Link do exemplo
Link do CHANGELOG
Se continuar assim, código ruim gerado por IA só vai continuar aumentando
Se nem verificaram o alinhamento, então confio menos ainda
Ainda é cedo para adotar no SDLC, mas parece um projeto promissor
Para quem se decepcionou com o LocalStack, isso pode acabar virando uma alternativa
Outra alternativa já apareceu no HN antes
Link da thread relacionada
Este projeto tem só 7 dias de vida
Eu realmente quero um substituto para o LocalStack, mas por enquanto ainda falta muita maturidade
Hoje em dia parece que todo software está assim — site bonito, grandes promessas, código de IA e testes insuficientes
Fico curioso sobre qual seria o equivalente disso no GCP
Não entendo por que a Amazon não faz algo assim
Seria muito mais fácil para todo mundo
Queria que houvesse uma funcionalidade de simulador de custo real