39 Punkte von GN⁺ 28 일 전 | 1 Kommentare | Auf WhatsApp teilen
  • 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 CreateDBInstance wird ein echter Postgres-/MySQL-Docker-Container erzeugt, mit direkter Verbindung über einen lokalen Port
  • ElastiCache: Mit dem Befehl CreateCacheCluster wird ein echter Redis-Container gestartet, der sich z. B. als Session-Store nutzen lässt
  • ECS: Mit dem Befehl RunTask wird 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:

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

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

    • Ich denke, wichtiger als die Kosten sind die Geschwindigkeit der Entwicklungsiterationen und ob es sich in CI-Umgebungen schnell ausführen lässt
    • Das Ziel von ministack ist der Einsatz für Integrationstests
      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, ItemCollectionSizeLimitExceededException usw. aus
    • Ich halte es trotzdem für nützlich
      Grundlegende Tests macht man mit ministack, und nur in der Phase der Lasttests verursacht man echte AWS-Kosten
    • Tatsächlich hat auch LocalStack keine vollständige Implementierung geschafft
  • 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-archive pinnt
    Docker-Hub-Link

    • Ich würde gern Meinungen zu floci hören
  • 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

    • Auf die Frage „Warum sollte es diesmal klappen?“ denke ich, dass oft der second mover erfolgreich ist
      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 kein vollständiger Ersatz für LocalStack sein
      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
    • Ich finde, schon stabile Kompatibilität bei Kern-Services wie SQS, S3, KMS und Dynamo ist wertvoll genug
      Wenn man lokal komplexe Funktionen braucht, kann man einfach ein echtes AWS-Entwicklerkonto verwenden
    • Ich stimme zu, dass die Codebasis von LocalStack chaotisch war
      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
    • Wenn die API gut dokumentiert ist und man AI-Coding-Tools nutzt, ist es vermutlich gar nicht so schwer, lokale Ersatz-Services zu bauen
  • 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

    • Ich denke, man sollte LocalStack eher als eine Art Sniff-Test verwenden
      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

    • Unser Unternehmen hat derzeit eine Enterprise-Lizenz, daher betrifft es uns kurzfristig nicht
      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
    • Manche sagen zwar, die Kompatibilität mit der AWS CLI sei gut gewesen, aber das Verhalten der eigentlichen Services war oft anders
      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

    • Eine scherzhafte Reaktion: „Aber er shippt doch mit Inference-Geschwindigkeit!“
    • Danke für das detaillierte Feedback
      CHANGELOG-Link
    • Schade, dass ein Hinweis auf offensichtliche Qualitätsprobleme ohne Gegenargumente einfach geflaggt wurde
      Wenn das so weitergeht, wird es wohl immer mehr von AI erzeugten Code mit niedriger Qualität geben
    • ASCII mit abgerundeten Ecken ist schon ein Red Flag
      Wenn nicht einmal die Ausrichtung geprüft wurde, ist das noch weniger vertrauenerweckend
    • Wenigstens hätte man einen Formatter laufen lassen oder in Claude einen Auto-Format-Hook einrichten können
  • 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

    • Mir gefiel die Transparenz: „Alles mit AI gebaut und alle Prompts gespeichert“
    • Ich probiere dieses Projekt (abgelehnt), Floci (war nicht gut) und jetzt dieses hier der Reihe nach aus
      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

    • GCP hat einen eigenen Satz an Emulationstools
      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