AWSを利用するアプリを開発する際、動作確認のたびにAWS上へS3・DynamoDB・Lambdaなどのリソースを作成していると、環境の構築・削除・利用料金の管理などの手間が発生します。MiniStackはAWSのAPIをPC上で再現するエミュレーターで、AWS CLIやTerraformなどのツールから60以上のAWSサービスをローカル環境だけで無料で利用できるオープンソースソフトウェアです。LocalStackの無料・オープンな代替として、MITライセンスで提供されています。
GIGAZINEのレビューでは、WindowsにDocker Desktop・Git for Windows(Git Bash)・AWS CLIを用意した環境で構築しています。作業フォルダーに compose.yml を作成してコンテナを起動するだけのシンプルな手順です。
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
続いてGit Bashでテスト用の認証情報を設定すれば準備完了です。
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
実際のAWSと同じAWS CLIをそのまま使えます。エンドポイントURLに http://localhost:4566 を指定するだけ。
aws --endpoint-url=http://localhost:4566 s3 mb s3://test-bucket
aws --endpoint-url=http://localhost:4566 s3 ls
# 実行結果
# 2026-10-01 10:05:03 test-bucket
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"
# ]
# }
MiniStackはAPIのレスポンスだけを再現するサービスだけではありません。RDSではPostgreSQL・MySQL・MariaDB、Amazon ElastiCacheではRedisなどの実際のソフトウェアをDockerコンテナとして起動できます。
MiniStackは12桁の AWS_ACCESS_KEY_ID をAWSのアカウントIDとして扱い、1つのMiniStack内に複数アカウントのリソースを分離して保持できます。
111111111111 と 222222222222 を切り替えると、sts get-caller-identity がそれぞれ別アカウントとして認識されるus-east-1 と eu-west-1 に同じ名前のSQSキューを作っても互いに独立したリソースとして扱われる| カテゴリ | 対応サービス |
|---|---|
| Core | S3・DynamoDB・SQS・SNS・Lambda・Lambda MicroVMs・Lambda Core・IAM・STS・Secrets Manager・SSM・CloudFormation |
| Observability | CloudWatch・CloudWatch Logs・CloudTrail |
| Integration & Events | EventBridge・EventBridge Scheduler・EventBridge Pipes・Step Functions・IoT・IoT Wireless・Amazon Location・Amazon MQ |
| Streams & Analytics | Kinesis・Firehose・Athena・Glue・EMR・OpenSearch・MSK(Kafka)・MediaConnect |
| Compute & Containers | EC2・IMDS・ECS・EKS・Batch・Auto Scaling・ALB / ELBv2 |
| Databases & Cache | Aurora DSQL・RDS・RDS Data API・ElastiCache |
| Networking & DNS | Route53・CloudFront・CloudFront KeyValueStore・ServiceDiscovery |
| APIs & Edge | API Gateway v1・API Gateway v2・AppSync |
| Security & Crypto | KMS・ACM・AWS Signer・WAFv2・WAF Classic・Amazon Inspector |
| Identity & Accounts | Cognito・Organizations・Account |
| AI & ML | Amazon Bedrock・Bedrock Runtime・Bedrock Agent・Bedrock Agent Runtime・Bedrock AgentCore |
| Communication | SES |
| Storage & Transfer | EFS・ECR・Transfer Family・Amazon Transcribe・Amazon Translate・S3 Files・S3 Tables |
| Config & Dev Tools | AppConfig・CodeBuild・AWS Config・Cloud Control API・MWAA・Cost & Usage Report |
| Cross-service & Backup | Resource Groups Tagging API・AWS Backup・Resource Groups |