ESPNOur guide to every NFL Week 4 game: Matchup previews, predictions, picks and nuggetsThe Jerusalem PostLibra travel insurance coverage for affected flydubai passengers to be extended for freeESPN DeportesGurú de las Diagonales: Los Packers son lo que pensábamos que eranInquirerEx-BFP chief pleads not guilty in P4-M bribery caseZDF heuteEntdecken Sie das ZDF-NachrichtenstudioSözcüSon dakika... Ataşehir Belediye Başkan Vekili Murat Güneş gözaltına alındıSportstarAsian Games 2026, IND vs PAK: Saim Ayub gives a ‘rocking baby’ send-off to Vaibhav Sooryavanshi in cricket gold medal match매일경제美의원 “당장 문 닫아라”…스타벅스 中 신규 매장 논란 이유Het Laatste NieuwsGeen Lotte Kopecky, wel wereldkampioene Demi Vollering: wie pakt Europese titel bij vrouwen?RTL BoulevardAmerikanen willen fitte kandidaten parlementsverkiezingen VSLa NaciónFranco Colapinto en el Gran Premio de Bahréin en Malasia de Fórmula 1, en vivoWirtualna PolskaWielka eskalacja po wyborach w Rosji? Iwan Preobrażeński: Kreml szykuje coś gorszego
The Daily Newsstand · Free, Always
Saturday, October 3, 2026

無料でAWSをローカルでシミュレーションできるエミュレーター「MiniStack」、60以上のAWSサービスを単一ポートで利用可能でマルチアカウント&マルチリージョン対応、セルフホスト可能

Translate

AWSを利用するアプリを開発する場合、動作確認のたびにAWS上へS3・DynamoDB・Lambdaなどのリソースを作成すると、環境の構築・削除・利用料金の管理などが必要になります。そこで、AWSのAPIをPC上で再現し、AWS CLIやTerraformなどから60以上のAWSサービスをローカル環境だけで無料で利用できるエミュレーター「MiniStack」を使ってみました。

MiniStack — The Best AWS Emulator | Free Open-Source LocalStack Alternative
https://ministack.org/

services:
  ministack:
    image: ministackorg/ministack:latest
    ports:
      - "4566:4566"
    environment:
      - PERSIST_STATE=1
      - S3_PERSIST=1
      - LOG_LEVEL=INFO
    volumes:
      - ./data/state:/tmp/ministack-state
      - ./data/s3:/tmp/ministack-data/s3


コンテナを起動すれば構築完了です。

docker compose up -d

◆MiniStackの使い方
Git Bashを開き、AWS CLIで利用するテスト用の認証情報を設定します。

export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1


まずS3にバケットを作成します。

aws --endpoint-url=http://localhost:4566 s3 mb s3://test-bucket


バケットが存在しているかlsコマンドを実行すると作成したtest-bucketが表示されます。実際のAWSと同じAWS CLIを使いながらテストが可能です。

aws --endpoint-url=http://localhost:4566 s3 ls
#実行結果
2026-10-01 10:05:03 test-bucket


SQSキューも作成できます。S3とSQSでポートを切り替える必要はなく、MiniStackがAWSリクエストを解析して60以上のサービスへ振り分けます。

aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name test-queue
aws --endpoint-url=http://localhost:4566 sqs list-queues
#実行結果
{
    "QueueUrls": [
        "http://localhost:4566/000000000000/test-queue"
    ]
}


◆RDSでは実際のPostgreSQLを起動可能
MiniStackはAPIのレスポンスだけを再現するサービスに加えて、RDSではPostgreSQL・MySQL・MariaDB、Amazon ElastiCacheではRedisなどの実際のソフトウェアをDockerコンテナとして起動できます。

docker ps
#実行結果
CONTAINER ID   IMAGE                           COMMAND                  CREATED              STATUS                   PORTS                                           NAMES
2890264044ca   postgres:15-alpine              "sh -c 'chown -R pos…"   About a minute ago   Up 58 seconds            0.0.0.0:15432->5432/tcp, [::]:15432->5432/tcp   ministack-rds-281afe4a44d7-instance-mydb
3a672c1c3863   ministackorg/ministack:latest   "python -m ministack"    2 minutes ago        Up 2 minutes (healthy)   0.0.0.0:4566->4566/tcp, [::]:4566->4566/tcp     ministack-ministack-1

RDSの場合はAWSのRDS APIに対する管理部分をMiniStackが処理し、実際のデータベース処理はローカルで起動したPostgreSQLなどが担当する構成となります。このため単純なAPIモックだけでなく、アプリケーションから実際にSQLを発行する部分までローカルで確認できます。

◆複数のAWSアカウントとリージョンを再現
MiniStackでは12桁の「AWS_ACCESS_KEY_ID」をAWSのアカウントIDとして扱い、1つのMiniStack内に複数アカウントのリソースを分離して保持できます。

AWS_ACCESS_KEY_IDに「111111111111」を設定しステータスを確認。

export AWS_ACCESS_KEY_ID=111111111111
aws --endpoint-url=http://localhost:4566 sts get-caller-identity
#実行結果
{
    "UserId": "111111111111",
    "Account": "111111111111",
    "Arn": "arn:aws:iam::111111111111:root"
}


AWS_ACCESS_KEY_IDに「222222222222」を設定しステータスを確認。

export AWS_ACCESS_KEY_ID=222222222222
aws --endpoint-url=http://localhost:4566 sts get-caller-identity
#実行結果
{
    "UserId": "222222222222",
    "Account": "222222222222",
    "Arn": "arn:aws:iam::222222222222:root"
}


さらにリージョン情報も分離されるため、us-east-1とeu-west-1へ同じ名前のSQSキューを作成しても、互いに独立したリソースとして扱われます。各リージョンでSQSキューを作成後、確認コマンドを実行すると以下のように表示されました。

aws --endpoint-url=http://localhost:4566 \
>   --region us-east-1 \
>   sqs list-queues
#実行結果
{
    "QueueUrls": [
        "http://localhost:4566/222222222222/jobs"
    ]
}

aws --endpoint-url=http://localhost:4566 \
>   --region eu-west-1 \
>   sqs list-queues
#実行結果
{
    "QueueUrls": [
        "http://localhost:4566/222222222222/jobs"
    ]
}

アカウントとリージョンを分けることで、1つのMiniStackで複数の開発者が利用するテスト環境の構築が可能です。

◆その他の機能
MiniStackはS3・SQS・DynamoDB・Lambdaなどの主要サービスに加えて、EC2・ECS・EKS・CloudFormation・Step Functions・Amazon Bedrockなど60以上のAWSサービスを扱えます。

カテゴリ対応サービス
CoreS3・DynamoDB・SQS・SNS・Lambda・Lambda MicroVMs・Lambda Core・IAM・STS・Secrets Manager・SSM・CloudFormation
ObservabilityCloudWatch・CloudWatch Logs・CloudTrail
Integration & EventsEventBridge・EventBridge Scheduler・EventBridge Pipes・Step Functions・IoT・IoT Wireless・Amazon Location・Amazon MQ
Streams & AnalyticsKinesis・Firehose・Athena・Glue・EMR・OpenSearch・MSK(Kafka)・MediaConnect
Compute & ContainersEC2・IMDS・ECS・EKS・Batch・Auto Scaling・ALB / ELBv2
Databases & CacheAurora DSQL・RDS・RDS Data API・ElastiCache
Networking & DNSRoute53・CloudFront・CloudFront KeyValueStore・ServiceDiscovery
APIs & EdgeAPI Gateway v1・API Gateway v2・AppSync
Security & CryptoKMS・ACM・AWS Signer・WAFv2・WAF Classic・Amazon Inspector
Identity & AccountsCognito・Organizations・Account
AI & MLAmazon Bedrock・Bedrock Runtime・Bedrock Agent・Bedrock Agent Runtime・Bedrock AgentCore
CommunicationSES
Storage & TransferEFS・ECR・Transfer Family・Amazon Transcribe・Amazon Translate・S3 Files・S3 Tables
Config & Dev ToolsAppConfig・CodeBuild・AWS Config・Cloud Control API・MWAA・Cost & Usage Report
Cross-service & BackupResource Groups Tagging API・AWS Backup・Resource Groups

◆MiniStack利用時の注意点
MiniStackはAWSのすべての挙動を完全に再現する仮想クラウドではなく、VPCのパケットルーティングやDNS伝播などローカル環境では再現対象としていない機能があります。

◆MiniStackの評価
ソーシャル系ニュースサイトのHacker Newsでは、MiniStackについてさまざまな議論が行われており「主に重要なのはコストではなく、反復速度とCI環境で高速に実行できること」という評価がある一方、「DynamoDBのサービス例外・入力値検証・結果整合性・エッジケースを適切に再現していない」という意見も投稿されています。これに対して作者は「対象用途は正しい操作を正しいデータで呼び出しているかを確認する統合テストで、本番環境と完全に同じ挙動を再現することではない」と説明しています。

View the original on GIGAZINE →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.