MiniStack — émulateur AWS local gratuit et open source
(ministack.org)- Un émulateur gratuit et open source capable de reproduire entièrement un environnement AWS en local, développé comme alternative à LocalStack devenu payant
- Exécute 34 services AWS sur un port unique et lance réellement des conteneurs Postgres, Redis et Docker pour fournir un environnement de test au niveau infrastructure
- Entièrement compatible avec AWS SDK, CLI, Terraform, CDK, Pulumi, et distribué sous licence MIT sans inscription de compte ni télémétrie
- Démarrage en 2 secondes, 30 Mo de mémoire utilisée, image Docker de 150 Mo pour une exécution locale légère et rapide
- Toutes les fonctionnalités sont proposées gratuitement, ce qui permet de construire un environnement local AWS complet remplaçant les fonctions Pro de LocalStack
Présentation de MiniStack
- MiniStack est un outil gratuit et open source capable d’émuler entièrement un environnement AWS en local, conçu comme alternative à LocalStack devenu payant
- Il exécute 34 services AWS sur un port unique et utilise de vrais conteneurs Postgres, Redis et Docker
- Il fonctionne sans inscription de compte, clé de licence ni télémétrie distante, et est distribué sous licence MIT
- Il affiche environ 2 secondes de démarrage, 30 Mo de mémoire au repos et une image Docker de 150 Mo
- Depuis la monétisation de l’édition Community de LocalStack, il est présenté comme une solution de remplacement offrant gratuitement la même expérience de développement
Principales fonctionnalités et services
- RDS, ElastiCache, ECS et d’autres exécutent de vrais conteneurs Docker afin de fournir un environnement d’infrastructure réel
- Athena exécute de vraies requêtes SQL via DuckDB et renvoie des résultats simulés s’il n’est pas installé
- La compatibilité AWS SDK est conservée, ce qui permet l’usage avec boto3, AWS CLI, Terraform, CDK, Pulumi, etc.
- Tous les services sont gratuits, sans limitation fonctionnelle ni séparation entre offres payantes
-
Les 34 services AWS inclus
- S3 : prise en charge des buckets, objets, versioning, chiffrement, cycle de vie, CORS, réplication, etc.
- SQS : prise en charge des fonctions de file d’attente comme FIFO, DLQ, batch, visibilité, etc.
- SNS : prise en charge des topics, abonnements, fan-out vers SQS, publication par lot
- DynamoDB : prise en charge de CRUD, query, scan, transactions, TTL, GSI
- Lambda : exécution réelle de Python, mappage des événements SQS, prise en charge des Layers
- 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 et la plupart des services AWS essentiels sont inclus
- RDS lance de vrais conteneurs Postgres/MySQL, et ElastiCache de vrais conteneurs Redis/Memcached
- ECS exécute de vrais conteneurs Docker, tandis que Glue et Athena fournissent des fonctions de catalogue de données et d’exécution SQL
Comparaison avec LocalStack
- LocalStack Free a rendu payants certains services essentiels, tandis que MiniStack fournit les mêmes fonctionnalités gratuitement
- Des fonctionnalités réservées à LocalStack Pro comme Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB, CloudFormation sont aussi incluses gratuitement
- RDS, ElastiCache, ECS, Athena fonctionnent sur une base de vrais conteneurs
- Avec un démarrage d’environ 2 secondes, 30 Mo de mémoire utilisée et une image Docker de 150 Mo, il est bien plus léger que LocalStack
- La licence est MIT au lieu de BSL/propriétaire pour LocalStack, et le prix est entièrement gratuit
Fonctionnement sur infrastructure réelle
- RDS : la commande
CreateDBInstancecrée un vrai conteneur Docker Postgres/MySQL, accessible directement via un port local - ElastiCache : la commande
CreateCacheClusterexécute un vrai conteneur Redis, exploitable par exemple comme stockage de session - ECS : la commande
RunTaskexécute un vrai conteneur Docker et permet de tester localement des définitions de tâches ECS - Athena : exécute de vraies requêtes SQL via DuckDB et renvoie un jeu de résultats
- Compatibilité complète avec tous les outils AWS, sans changer les endpoints d’API
Déploiement et utilisation
- Exécution possible avec une simple commande Docker
docker run -p 4566:4566 nahuelnucera/ministack - Tous les services comme S3, RDS, ElastiCache, etc. sont accessibles via AWS CLI
- Exemples :
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
Licence et informations de diffusion
- Distribué sous licence MIT, il peut être librement forké et embarqué
- Disponible publiquement sur GitHub et Docker Hub
- Le développeur est Nahuel, et le projet devrait être maintenu jusqu’en 2026
Enseignement clé
- MiniStack est une alternative totalement gratuite à LocalStack, offrant un environnement AWS local basé sur une vraie infrastructure
- Il se distingue par son démarrage rapide, sa faible consommation de ressources et sa compatibilité SDK complète
- Toutes les fonctionnalités sont gratuites, sous licence MIT, et sans télémétrie
- C’est un outil qui offre en local et en CI/CD la même expérience de test qu’un environnement AWS de production
1 commentaires
Commentaires sur Hacker News
Je connais bien DynamoDB
Mais ce code ne reproduit pas correctement les exceptions du service, la validation des entrées, l’eventual consistency ni les cas limites
Du coup, développer ou tester sur la base de ministack ne me rassure pas
En plus, plusieurs services AWS ont un free tier, donc il n’y a pas tant de raisons d’utiliser ce genre d’alternative
Autrement dit, il sert à vérifier que l’application appelle les bonnes API avec les bonnes données
Ce n’est pas un substitut si l’on a besoin du comportement réel de DynamoDB, comme les limites de capacité, la latence de cohérence ou le traitement des streams
En revanche, les contributions qui améliorent la reproductibilité des erreurs sont toujours bienvenues
À l’heure actuelle,
ProvisionedThroughputExceededException,TransactionConflictException,ItemCollectionSizeLimitExceededException, etc. sont en attenteOn peut faire les tests de base avec ministack, puis ne générer des coûts AWS réels qu’au moment des tests de charge
Je regarde ministack parce que le changement de licence de LocalStack ne me plaît pas
Pour ceux qui sont pressés, il suffit de se fixer sur le tag
community-archiveet le problème est réglé tout de suiteLien Docker Hub
Je pense qu’il sera difficile pour n’importe quel projet de réplication de surmonter les raisons pour lesquelles LocalStack a échoué
Maintenir gratuitement la compatibilité avec l’énorme nombre de services AWS ne paraît pas réaliste
Il est aussi possible que LocalStack ait eu une codebase désordonnée, ou ait mal géré ses contributeurs
Aujourd’hui AWS est mature et évolue plus lentement, et l’IA produit facilement du code à 80 %
De plus, la hausse des prix de LocalStack a créé un vivier de développeurs en quête d’alternatives open source
Il y a aussi beaucoup à apprendre de la version open source de LocalStack
Nous voulons simplement maintenir à jour les services de base de l’ancienne version communautaire
Les gros services comme MWAA ne seront pas pris en charge
La plupart des services AWS essentiels changent très peu au niveau de l’API
Si l’on a besoin de fonctionnalités complexes en local, on peut utiliser un vrai compte de développement AWS
En exploitant bien les LLM et de nouvelles approches de test, on pourrait sans doute créer de façon semi-automatique un ensemble de services compatibles
Mais je n’ai pas envie d’y participer moi-même
J’ai aussi essayé Floci, mais il avait les problèmes typiques d’un code très jeune
Le vrai problème de LocalStack, c’était le drift
Les tests locaux passaient, mais ça cassait souvent en staging à cause de différences dans le format des réponses S3 ou dans le throttling de DynamoDB
On a fini par basculer vers des tests d’intégration sur de vrais environnements AWS éphémères
Ça coûte plus cher, mais cela réduit nettement les problèmes imprévus en production
En gros, si ça passe en local, alors seulement on lance les vrais tests d’intégration AWS
Je découvre seulement maintenant le changement de licence de LocalStack
Avant, je l’utilisais bien pour les tests CI/CD sur GH Actions, et la compatibilité avec l’AWS CLI était plutôt bonne
En fait, j’espérais qu’Amazon rachète LocalStack pour en faire l’environnement officiel de développement local
Mais ça n’aurait sans doute pas été réaliste, puisque cela aurait réduit les revenus liés aux environnements de test AWS
Nous en sommes toujours satisfaits, mais la direction prise est décevante
J’espère que ce n’est pas juste une mesure pour sécuriser des revenus à court terme
À long terme, les clients risquent de partir vers des alternatives gratuites ou des solutions personnelles basées sur la GenAI
Personnellement, les Pods de LocalStack ou son interface console ne m’intéressent pas
J’espère qu’ils n’ont pas accepté un investissement VC conditionné à la suppression de l’édition communautaire
Même si la CLI fonctionnait bien, il arrivait fréquemment que les services LocalStack se comportent différemment de la documentation
Quand je vois un README avec un diagramme ASCII décalé généré par Claude, ça ne m’inspire pas confiance
Si même le contrôle qualité de base n’est pas fait, j’ai du mal à croire la description des fonctionnalités
Lien d’exemple
Lien vers le CHANGELOG
Si ça continue comme ça, on va voir se multiplier le code de mauvaise qualité produit par IA
Si l’auteur n’a même pas vérifié l’alignement, j’ai encore moins confiance
C’est encore trop tôt pour l’intégrer au SDLC, mais le projet semble prometteur
Vu ma déception vis-à-vis de LocalStack, ça pourrait devenir une alternative
Une autre alternative avait déjà été postée sur HN auparavant
Lien vers le fil connexe
C’est un projet qui n’a que 7 jours
J’aimerais vraiment une alternative à LocalStack, mais pour l’instant il manque encore beaucoup de maturité
On dirait que tout le logiciel est comme ça aujourd’hui : beau site web, grandes promesses, code IA, tests insuffisants
Je me demande quel serait l’équivalent côté GCP
Je ne comprends pas pourquoi Amazon ne propose pas ça
Ce serait bien plus pratique pour tout le monde
J’aimerais qu’il y ait une fonctionnalité de simulateur de coût réel