39 pontos por GN⁺ 28 일 전 | 1 comentários | Compartilhar no WhatsApp
  • 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:

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

 
GN⁺ 28 일 전
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

    • Acho que mais importante do que custo é a velocidade de iteração no desenvolvimento e se isso roda rápido em ambientes de CI
    • O objetivo do ministack é para testes de integração
      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, ItemCollectionSizeLimitExceededException e outras estão pendentes
    • Ainda assim, acho útil
      Dá para fazer os testes básicos com o ministack e gerar custo real na AWS só na etapa de teste de carga
    • Na real, o LocalStack também nunca implementou tudo perfeitamente
  • 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-archive
    Link do Docker Hub

    • Queria ouvir opiniões sobre o floci
  • 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

    • Sobre a pergunta “por que não deu certo antes?”, acho que muitas vezes o second mover é quem acaba tendo sucesso
      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
    • Não estamos tentando ser um substituto completo 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
    • Acho que só uma compatibilidade estável com serviços centrais como SQS, S3, KMS e Dynamo já tem bastante valor
      Se você precisa de recursos complexos localmente, pode usar uma conta de desenvolvimento real na AWS
    • Concordo que a base de código do LocalStack era bagunçada
      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
    • Com APIs bem documentadas e ferramentas de coding com IA, acho que criar serviços substitutos para uso local não é tão difícil quanto parece
  • 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

    • Acho que o LocalStack serve como uma espécie de sniff test
      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

    • Nossa empresa atualmente tem uma licença enterprise, então por enquanto isso não nos afeta
      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
    • Há quem diga que a compatibilidade com a AWS CLI era boa, mas o comportamento real dos serviços muitas vezes era diferente
      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

    • “Mas ele está fazendo deploy na velocidade do raciocínio!” foi a reação em tom de piada
    • Obrigado pelo feedback detalhado
      Link do CHANGELOG
    • Foi frustrante apontar um problema óbvio de qualidade e, mesmo sem resposta, receber flag
      Se continuar assim, código ruim gerado por IA só vai continuar aumentando
    • ASCII com cantos arredondados já é uma red flag
      Se nem verificaram o alinhamento, então confio menos ainda
    • No mínimo poderiam ter rodado um formatter ou configurado no Claude um hook automático de formatação, o que é uma pena
  • 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

    • Gostei da transparência de dizer que foi tudo construído com IA e que todos os prompts foram salvos
    • Tentei em sequência aquele projeto (que foi rejeitado), o Floci (não foi bom) e agora este aqui
      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

    • O GCP tem seu próprio conjunto de ferramentas de emulação
      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