39 ポイント 投稿者 GN⁺ 28 일 전 | 1件のコメント | WhatsAppで共有
  • AWS環境をローカルで完全に再現できる無料のオープンソース エミュレーターで、有料化されたLocalStackの代替として開発された
  • 34のAWSサービスを単一ポートで実行し、Postgres・Redis・Dockerコンテナを実際に起動して、インフラレベルのテスト環境を提供
  • AWS SDK、CLI、Terraform、CDK、Pulumiなどと完全互換で、アカウント登録やテレメトリーなしにMITライセンスで配布される
  • 2秒の起動速度30MBのメモリ使用量150MBのDockerイメージで、軽量かつ高速なローカル実行が可能
  • すべての機能が無料で提供され、LocalStack Proの機能を代替する完全なローカルAWS開発環境を構築できる

MiniStack概要

  • MiniStackは、AWS環境をローカルで完全にエミュレーションできる無料のオープンソースツールで、有料化されたLocalStackの代替として設計された
  • 34のAWSサービスを単一ポートで実行し、実際のPostgres、Redis、Dockerコンテナを使用する
  • アカウント登録、ライセンスキー、リモートテレメトリーなしで動作し、MITライセンスで配布される
  • 2秒の起動時間30MBのアイドル時メモリ使用量150MBのDockerイメージサイズを持つ
  • LocalStack Community版が有料化された後、無料で同等の開発体験を提供する代替ソリューションとして提示されている

主な機能とサービス

  • RDS、ElastiCache、ECSなどは実際のDockerコンテナを起動し、実インフラ環境を提供する
  • AthenaはDuckDBを通じて実際のSQLクエリを実行し、インストールされていない場合はモック結果を返す
  • AWS SDK互換性を維持しており、boto3、AWS CLI、Terraform、CDK、Pulumiなどと一緒に使用できる
  • すべてのサービスが無料で提供され、機能制限や有料プランの区別がない
  • 含まれる34のAWSサービス

    • S3: バケット、オブジェクト、バージョン管理、暗号化、ライフサイクル、CORS、レプリケーションなどをサポート
    • SQS: FIFO、DLQ、バッチ、可視性などのキュー機能をサポート
    • SNS: トピック、サブスクリプション、SQSファンアウト、バッチ配信をサポート
    • DynamoDB: CRUD、クエリ、スキャン、トランザクション、TTL、GSIをサポート
    • Lambda: 実際のPython実行、SQSイベントマッピング、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など、ほとんどのAWS中核サービスを含む
    • RDSは実際のPostgres/MySQLコンテナを、ElastiCacheは実際のRedis/Memcachedコンテナを起動する
    • ECSは実際のDockerコンテナを実行し、GlueAthenaはデータカタログおよびSQL実行機能を提供する

LocalStackとの比較

  • LocalStack Freeでは中核サービスが有料化されたが、MiniStackは同等の機能を無料で提供する
  • Lambda、IAM、SSM、EventBridge、EC2、EMR、EBS、EFS、ALB、CloudFormationなど、LocalStack Pro専用機能も無料で含まれる
  • RDS、ElastiCache、ECS、Athenaなどは実際のコンテナベースで動作する
  • 起動速度約2秒メモリ使用量30MBDockerイメージ150MBで、LocalStackよりはるかに軽量
  • ライセンスはLocalStackのBSL/Proprietaryと異なりMITで、価格は完全無料

実インフラベースの動作

  • RDS: CreateDBInstanceコマンド時に実際のPostgres/MySQL Dockerコンテナを作成し、ローカルポートから直接接続できる
  • ElastiCache: CreateCacheClusterコマンドで実際のRedisコンテナを実行し、セッションストアなどに活用できる
  • ECS: RunTaskコマンドで実際のDockerコンテナを実行し、ローカルでECSタスク定義をテストできる
  • Athena: DuckDBを通じて実際のSQLクエリを実行し、結果セットを返す
  • すべてのAWSツールと完全互換で、APIエンドポイントの変更なしに利用できる

配布と利用

  • Dockerコマンド1行で実行可能
    docker run -p 4566:4566 nahuelnucera/ministack
    
  • AWS CLIを通じてS3、RDS、ElastiCacheなどすべてのサービスにアクセスできる
  • 例:

ライセンスと配布情報

  • MITライセンスで配布され、自由にフォークや組み込みが可能
  • GitHubおよびDocker Hubで公開提供される
  • 開発者はNahuelで、プロジェクトは2026年まで維持予定

重要なポイント

  • MiniStackはLocalStackの完全無料の代替として、実インフラベースのローカルAWS環境を提供する
  • 高速な起動速度軽いリソース使用量完全なSDK互換性を特徴とする
  • すべての機能が無料MITライセンステレメトリーなし
  • ローカル開発およびCI/CD環境で、AWS本番環境と同等のテスト体験を提供するツールである

1件のコメント

 
GN⁺ 28 일 전
Hacker News の意見
  • 私は DynamoDB をよく理解している
    だが、このコードはサービス例外、入力検証、eventual consistency、エッジケースを きちんと再現できていない
    そのため、ministack をベースに開発やテストを行うのは不安がある
    しかも AWS の多くのサービスには無料利用枠があるので、あえてこうした代替品を使う理由はそれほど大きくない

    • コストよりも 開発の反復速度 と、CI 環境でどれだけ素早く回せるかのほうが重要だと思う
    • ministack の目標は 統合テスト用 であること
      つまり、アプリケーションが正しいデータを正しい API に送っているかを検証するためのもの
      DynamoDB の実際の挙動(例: 容量制限、一貫性の遅延、ストリーム処理)が必要な場合の代替ではない
      ただし、エラー再現性を高める貢献はいつでも歓迎する
      現在 ProvisionedThroughputExceededException, TransactionConflictException, ItemCollectionSizeLimitExceededException などが対応待ちになっている
    • それでも有用だと思う
      基本的なテストは ministack で行い、負荷テスト の段階でだけ実際の AWS コストを発生させればよい
    • 実のところ LocalStack も完全には実装できていなかった
  • LocalStack の ライセンス変更 が不満なので ministack を検討している
    急ぐ人は community-archive タグで固定すればすぐ解決できる
    Docker Hub リンク

    • floci についての意見を聞きたい
  • どんなレプリカプロジェクトでも、LocalStack が失敗した理由を乗り越えるのは難しいと思う
    数多くの AWS サービスとの互換性を無料で維持するのは、現実的には不可能に見える
    LocalStack はコードベースがひどかったのかもしれないし、コントリビューター管理に失敗したのかもしれない

    • 「なぜ以前はうまくいかなかったのか?」という問いに対しては、second mover が成功することはよくあると思う
      今は AWS が成熟して変化の速度が遅くなっており、AI が 80% レベルのコード を簡単に作ってくれる
      また、LocalStack の値上げによってオープンソース代替を探す開発者層も生まれている
      LocalStack のオープンソース版から学べることも多い
    • 私たちは LocalStack の完全な代替を目指しているわけではない
      ただ、昔の コミュニティ版の中核サービス を最新の状態に保ちたいだけだ
      MWAA のような大規模サービスはサポートする予定はない
      ほとんどの主要 AWS サービスは API の変更がほとんどないためだ
    • 私は SQS, S3, KMS, Dynamo のような 中核サービスの安定した互換性 だけでも十分価値があると思う
      ローカルで複雑な機能が必要なら、実際の AWS 開発アカウントを使えばいい
    • LocalStack のコードベースがひどかったという話には同意する
      LLM と新しいテスト手法をうまく活用すれば、互換サービス群を半自動で作れる気がする
      ただ、自分では参加したいとは思わない
      Floci も試したが、初期コード特有の問題 があった
    • API 文書がよく整備されていて、AI コーディングツールを活用すれば、ローカル向け代替サービスを作るのは思ったほど難しくないと思う
  • LocalStack の本当の問題は ドリフト(drift) だった
    ローカルテストは通るのに、ステージングでは S3 のレスポンス形式や DynamoDB の throttling の違いで壊れることが多かった
    結局、短時間だけ維持する実際の AWS 環境で統合テストを回す方式に切り替えた
    コストは増えたが、本番での 予期しない問題 ははるかに減った

    • LocalStack は一種の スニフテスト(sniff test) として使えばよいと思う
      つまり、ローカルで通ったときだけ実際の AWS 統合テストを回すという形だ
  • LocalStack の ライセンス変更の知らせ を今になって知った
    以前は GH Actions で CI/CD テスト用に便利に使っていて、AWS CLI との互換性もかなり良かった
    正直、Amazon が LocalStack を買収して公式のローカル開発環境にしてくれればと思っていた
    ただ、それでは AWS テスト環境の売上が減るので現実的ではなかっただろう

    • 私たちの会社は現在 エンタープライズライセンス を持っているので、当面の影響はない
      依然として満足して使っているが、方向性には失望している
      短期的な収益確保のための措置でないことを願う
      長期的には、無料の代替や GenAI ベースの個人向けソリューション に顧客が流れる可能性が高い
      個人的には LocalStack の Pods やコンソール UI には興味がない
      コミュニティエディションをなくす条件で VC 投資を受けたのでなければいいのだが
    • AWS CLI との互換性は良かったという意見もあるが、実際のサービス挙動はしばしば異なっていた
      CLI は問題なく動いても、LocalStack のサービスが ドキュメントと異なる動作 をすることが多かった
  • Claude が作った ASCII ダイアグラム がずれている README を見ると信頼できない
    基本的な QC すらされていないプロジェクトなら、機能説明も信じにくい
    例のリンク

    • 「でも彼は 推論速度でデプロイ しているんだろ!」という冗談まじりの反応
    • 細かなフィードバックに感謝する
      CHANGELOG リンク
    • 明らかな品質問題を指摘したのに、反論もなく フラグ処理 されたのが残念だ
      こういう流れだと、AI が作った品質の低いコードが増え続けそうだ
    • 角丸の ASCII はそれだけで レッドフラグ
      位置合わせすら確認していないなら、なおさら信頼できない
    • せめてフォーマッタを走らせるか、Claude に 自動フォーマットフック を設定することもできただろうに残念だ
  • まだ SDLC に導入するには早いが、有望に見えるプロジェクト
    LocalStack に失望した立場からすると、これが代替になるかもしれない

  • 別の代替案が以前 HN に投稿されていた
    関連スレッドのリンク

    • AI ですべて構築 し、すべてのプロンプトを保存した」という透明性が気に入った
    • そのプロジェクト(却下されたもの)、Floci(いまいちだった)、そして今これを順に試している
      これはまだ始まって 7 日のプロジェクトだ
      LocalStack の代替を切実に求めているが、まだ 成熟度 がかなり足りない
      最近のソフトウェアはどれもこんな感じだ ― 派手な Web サイト、大きな主張、AI コード、不十分なテスト
  • GCP では何が対応するのか気になる

    • GCP には独自の エミュレーションツール群 がある
      なぜ Amazon はこういうものを作らないのか分からない
      みんなにとってずっと楽になるのに
  • 実際のコストシミュレーター 機能があればいいのに