MiniStack — kostenloser Open-Source-Emulator für lokales AWS
(ministack.org)- Ein kostenloser Open-Source-Emulator, der AWS lokal vollständig nachbilden kann und als Alternative zum kostenpflichtig gewordenen LocalStack entwickelt wurde
- Führt 34 AWS-Services über einen einzigen Port aus und startet Postgres-, Redis- und Docker-Container tatsächlich, um eine Testumgebung auf Infrastruktur-Ebene bereitzustellen
- Vollständig kompatibel mit AWS SDK, CLI, Terraform, CDK, Pulumi usw. und wird ohne Account-Registrierung oder Telemetrie unter der MIT-Lizenz veröffentlicht
- 2 Sekunden Startzeit, 30 MB Speicherverbrauch und ein 150 MB Docker-Image ermöglichen eine leichte und schnelle lokale Ausführung
- Alle Funktionen sind kostenlos verfügbar, sodass sich eine vollständige lokale AWS-Entwicklungsumgebung als Ersatz für LocalStack-Pro-Funktionen aufbauen lässt
Überblick über MiniStack
- MiniStack ist ein kostenloses Open-Source-Tool, mit dem sich eine AWS-Umgebung lokal vollständig emulieren lässt, und wurde als Alternative zum kostenpflichtig gewordenen LocalStack konzipiert
- Führt 34 AWS-Services über einen einzigen Port aus und verwendet echte Postgres-, Redis- und Docker-Container
- Läuft ohne Account-Registrierung, Lizenzschlüssel oder Remote-Telemetrie und wird unter der MIT-Lizenz veröffentlicht
- Bietet etwa 2 Sekunden Startzeit, 30 MB Leerlauf-Speicherverbrauch und eine Docker-Image-Größe von 150 MB
- Nachdem die Community-Version von LocalStack kostenpflichtig wurde, wird es als Alternative vorgestellt, die kostenlos dieselbe Entwicklungserfahrung bietet
Wichtige Funktionen und Services
- RDS, ElastiCache, ECS usw. starten echte Docker-Container und stellen damit eine reale Infrastrukturumgebung bereit
- Athena führt über DuckDB echte SQL-Abfragen aus und gibt, falls nicht installiert, simulierte Ergebnisse zurück
- Behält AWS-SDK-Kompatibilität bei und kann zusammen mit boto3, AWS CLI, Terraform, CDK, Pulumi usw. verwendet werden
- Alle Services sind kostenlos verfügbar, ohne Funktionsbeschränkungen oder kostenpflichtige Tarifstufen
-
Enthaltene 34 AWS-Services
- S3: unterstützt Buckets, Objekte, Versionsverwaltung, Verschlüsselung, Lifecycle, CORS, Replikation usw.
- SQS: unterstützt Queue-Funktionen wie FIFO, DLQ, Batch und Visibility Timeout
- SNS: unterstützt Topics, Subscriptions, SQS-Fan-out und Batch-Publishing
- DynamoDB: unterstützt CRUD, Query, Scan, Transaktionen, TTL und GSI
- Lambda: unterstützt echte Python-Ausführung, SQS-Event-Mapping und 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 sowie die meisten zentralen AWS-Services sind enthalten
- RDS startet echte Postgres-/MySQL-Container, ElastiCache echte Redis-/Memcached-Container
- ECS führt echte Docker-Container aus, während Glue und Athena Funktionen für Datenkatalog und SQL-Ausführung bereitstellen
Vergleich mit LocalStack
- LocalStack Free hat zentrale Services kostenpflichtig gemacht, während MiniStack dieselben Funktionen kostenlos bereitstellt
- Auch Pro-exklusive Funktionen von LocalStack wie Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB, CloudFormation sind kostenlos enthalten
- RDS, ElastiCache, ECS, Athena arbeiten auf Basis echter Container
- Mit ca. 2 Sekunden Startzeit, 30 MB Speicherverbrauch und einem 150 MB Docker-Image ist es deutlich schlanker als LocalStack
- Die Lizenz ist im Gegensatz zu LocalStacks BSL/Proprietary MIT, und der Preis ist vollständig kostenlos
Betrieb auf Basis realer Infrastruktur
- RDS: Beim Befehl
CreateDBInstancewird ein echter Postgres-/MySQL-Docker-Container erzeugt, mit direkter Verbindung über einen lokalen Port - ElastiCache: Mit dem Befehl
CreateCacheClusterwird ein echter Redis-Container gestartet, der sich z. B. als Session-Store nutzen lässt - ECS: Mit dem Befehl
RunTaskwird ein echter Docker-Container ausgeführt, sodass sich ECS-Task-Definitionen lokal testen lassen - Athena: Führt über DuckDB echte SQL-Abfragen aus und gibt Result Sets zurück
- Vollständig kompatibel mit allen AWS-Tools, nutzbar ohne Änderung der API-Endpunkte
Bereitstellung und Nutzung
- Kann mit einem einzigen Docker-Befehl gestartet werden
docker run -p 4566:4566 nahuelnucera/ministack - Über die AWS CLI ist Zugriff auf alle Services wie S3, RDS, ElastiCache usw. möglich
- Beispiele:
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
Lizenz- und Veröffentlichungsinformationen
- Wird unter der MIT-Lizenz veröffentlicht und kann frei geforkt sowie eingebettet werden
- Öffentlich verfügbar auf GitHub und Docker Hub
- Der Entwickler ist Nahuel, und das Projekt soll bis 2026 gepflegt werden
Zentrale Erkenntnisse
- MiniStack ist eine vollständig kostenlose Alternative zu LocalStack und bietet eine lokale AWS-Umgebung auf Basis realer Infrastruktur
- Kennzeichen sind schnelle Startzeit, geringer Ressourcenverbrauch und vollständige SDK-Kompatibilität
- Alle Funktionen kostenlos, MIT-Lizenz, keine Telemetrie
- Ein Tool, das in lokalen Entwicklungs- und CI/CD-Umgebungen dieselbe Testerfahrung wie eine AWS-Produktionsumgebung bietet
1 Kommentare
Hacker-News-Kommentare
Ich kenne mich mit DynamoDB gut aus
Aber dieser Code bildet Service-Ausnahmen, Eingabevalidierung, eventual consistency und Edge Cases nicht korrekt nach
Deshalb fühlt es sich unsicher an, auf Basis von ministack zu entwickeln oder zu testen
Außerdem haben viele AWS-Services eine Free Tier, daher gibt es keinen besonders starken Grund, so einen Ersatz zu verwenden
Also zu prüfen, ob die Anwendung die richtigen Daten an die richtige API sendet
Es ist kein Ersatz, wenn man das tatsächliche Verhalten von DynamoDB braucht, etwa Kapazitätslimits, Konsistenzverzögerungen oder Stream-Verarbeitung
Beiträge zur besseren Reproduzierbarkeit von Fehlern sind aber jederzeit willkommen
Aktuell stehen
ProvisionedThroughputExceededException,TransactionConflictException,ItemCollectionSizeLimitExceededExceptionusw. ausGrundlegende Tests macht man mit ministack, und nur in der Phase der Lasttests verursacht man echte AWS-Kosten
Wegen der Lizenzänderung von LocalStack schaue ich mir ministack an
Wer es eilig hat, kann das Problem sofort lösen, indem er auf den Tag
community-archivepinntDocker-Hub-Link
Ich glaube, dass es für jedes Replikationsprojekt schwer sein wird, die Gründe zu überwinden, an denen LocalStack gescheitert ist
Die Kompatibilität mit unzähligen AWS-Services kostenlos aufrechtzuerhalten, wirkt praktisch unmöglich
Möglicherweise war die Codebasis von LocalStack chaotisch oder das Contributor-Management ist gescheitert
Inzwischen ist AWS ausgereift und entwickelt sich langsamer weiter, und AI erzeugt problemlos 80-%-Code
Durch die Preiserhöhungen von LocalStack ist außerdem ein Pool von Entwicklern entstanden, die nach Open-Source-Alternativen suchen
Auch aus der Open-Source-Version von LocalStack kann man viel lernen
Wir wollen nur die Kern-Services der früheren Community-Version aktuell halten
Große Services wie MWAA werden wir nicht unterstützen
Denn bei den meisten zentralen AWS-Services gibt es kaum API-Änderungen
Wenn man lokal komplexe Funktionen braucht, kann man einfach ein echtes AWS-Entwicklerkonto verwenden
Mit LLMs und neuen Testansätzen könnte man wohl halbautomatisch einen Satz kompatibler Services erzeugen
Ich möchte mich aber nicht selbst daran beteiligen
Ich habe auch Floci ausprobiert, aber da gab es die typischen Probleme von frühem Code
Das eigentliche Problem von LocalStack war Drift
Lokale Tests liefen durch, aber in Staging brach es oft wegen Unterschieden im S3-Antwortformat oder beim Throttling von DynamoDB
Am Ende sind wir dazu übergegangen, Integrationstests in kurzlebigen echten AWS-Umgebungen laufen zu lassen
Das kostet mehr, aber es gibt deutlich weniger unerwartete Probleme in Produktion
Also so, dass man nur dann echte AWS-Integrationstests ausführt, wenn es lokal durchläuft
Ich höre erst jetzt von der Lizenzänderung bei LocalStack
Früher habe ich es in GH Actions gut für CI/CD-Tests genutzt, und die Kompatibilität mit der AWS CLI war ziemlich ordentlich
Eigentlich hatte ich gehofft, dass Amazon LocalStack übernimmt und daraus eine offizielle lokale Entwicklungsumgebung macht
Aber das wäre wohl unrealistisch gewesen, weil es den Umsatz mit AWS-Testumgebungen geschmälert hätte
Wir sind mit dem Produkt weiterhin zufrieden, aber von der Richtung enttäuscht
Hoffentlich ist das keine Maßnahme, um kurzfristig Erträge mitzunehmen
Langfristig könnten Kunden zu kostenlosen Alternativen oder persönlichen GenAI-basierten Lösungen abwandern
Persönlich interessieren mich weder die Pods noch die Console-UI von LocalStack
Hoffentlich haben sie keine VC-Investition unter der Bedingung angenommen, die Community Edition abzuschaffen
Selbst wenn die CLI gut funktionierte, verhielten sich die Services von LocalStack oft anders als dokumentiert
Wenn ich das README mit dem von Claude erzeugten ASCII-Diagramm sehe, das nicht ausgerichtet ist, weckt das kein Vertrauen
Wenn bei einem Projekt nicht einmal grundlegende QC gemacht wurde, ist auch die Funktionsbeschreibung schwer zu glauben
Beispiellink
CHANGELOG-Link
Wenn das so weitergeht, wird es wohl immer mehr von AI erzeugten Code mit niedriger Qualität geben
Wenn nicht einmal die Ausrichtung geprüft wurde, ist das noch weniger vertrauenerweckend
Für eine Einführung in den SDLC ist es noch zu früh, aber es ist ein vielversprechendes Projekt
Aus Sicht von jemandem, der von LocalStack enttäuscht ist, könnte das eine Alternative werden
Eine weitere Alternative wurde früher schon auf HN vorgestellt
Link zum relevanten Thread
Das hier ist ein Projekt, das gerade erst 7 Tage alt ist
Ich wünsche mir dringend einen Ersatz für LocalStack, aber in Sachen Reifegrad fehlt noch viel
Software scheint heute oft so auszusehen — schicke Website, große Versprechen, AI-Code, zu wenig Tests
Ich frage mich, was das entsprechende Gegenstück bei GCP ist
Ich verstehe nicht, warum Amazon so etwas nicht baut
Für alle wäre das viel bequemer
Ich wünschte, es gäbe eine Funktion zur Simulation realer Kosten