MiniStack — 무료 오픈소스 로컬 AWS 에뮬레이터

LocalStack 유료화에 대응하는 무료 MIT 라이선스 대체 솔루션. 34~38개 AWS 서비스를 단일 포트에서 실행하며, RDS/ElastiCache/ECS는 실제 Docker 컨테이너를 구동한다.

핵심 요약

  • AWS 환경을 로컬에서 완전히 재현할 수 있는 무료 오픈소스 에뮬레이터 (LocalStack 대체)
  • 34~38개 AWS 서비스를 단일 포트 (4566)에서 실행
  • 실제 Postgres, Redis, Docker 컨테이너를 구동하여 인프라 수준의 테스트 환경 제공
  • AWS SDK, CLI, Terraform, CDK, Pulumi 등과 완전 호환
  • 계정 등록이나 텔레메트리 없이 MIT 라이선스
  • 2초 시작 속도, 30MB 메모리 사용량, 150~200MB Docker 이미지

LocalStack과의 비교

항목LocalStack FreeMiniStack
라이선스BSL/ProprietaryMIT (무료)
핵심 서비스유료화됨모두 무료
Lambda, IAM, SSM, EventBridge 등Pro 전용무료 포함
RDS, ElastiCache, ECS에뮬레이션실제 컨테이너
시작 속도느림~2초
메모리 사용량높음~30MB
Docker 이미지150~200MB
계정/텔레메트리필요없음

포함된 AWS 서비스 (34~38개)

스토리지 & 데이터:

  • S3: 버킷, 객체, 버전 관리, 암호화, 수명 주기, CORS, Object Lock, 복제
  • DynamoDB: CRUD, 쿼리, 스캔, 트랜잭션, TTL, GSI
  • RDS: 실제 Postgres/MySQL Docker 컨테이너 구동
  • ElastiCache: 실제 Redis/Memcached Docker 컨테이너 구동
  • Athena: DuckDB를 통해 실제 SQL 쿼리 실행

컴퓨팅 & 오케스트레이션:

  • Lambda: 실제 Python 실행, 웜 워커, SQS 이벤트 매핑, Layers
  • ECS: RunTask로 실제 Docker 컨테이너 실행
  • EC2 / EMR / EBS / EFS / ALB

메시징 & 이벤트:

  • SQS: FIFO, DLQ, 배치, 가시성
  • SNS: 주제, 구독, SQS 팬아웃, 배치 발행
  • EventBridge: 버스, 룰, 타겟, Lambda 디스패치, 아카이브
  • Kinesis: 스트림, 샤드 분할/병합, 컨슈머
  • Step Functions: 전체 ASL 엔진, 동기 실행, 태스크 토큰

보안 & 관리:

  • IAM / STS / Secrets Manager / CloudWatch / SSM Parameter Store
  • SES: 이메일 전송, 아이덴티티, 구성 세트
  • API Gateway v1·v2: HTTP/REST API, Lambda 프록시
  • Route53 / Cognito / ACM / WAF / CloudFormation / Glue

실제 인프라 기반 동작

MiniStack의 핵심 차별점은 단순 에뮬레이션이 아닌 실제 컨테이너 구동:

  • CreateDBInstance → 실제 Postgres/MySQL Docker 컨테이너 생성, 로컬 포트에서 직접 연결
  • CreateCacheCluster → 실제 Redis 컨테이너 실행, 세션 저장소로 활용 가능
  • RunTask → 실제 Docker 컨테이너 실행, ECS 태스크 정의 테스트
  • Athena → DuckDB를 통해 실제 SQL 쿼리 실행

빠른 시작

# Docker 한 줄로 실행
docker run -p 4566:4566 nahuelnucera/ministack
 
# S3 버킷 생성
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket
 
# 실제 Postgres RDS 인스턴스
aws --endpoint-url=http://localhost:4566 rds create-db-instance \
  --db-instance-identifier mydb --engine postgres \
  --master-username admin --master-user-password secret
# → localhost:15432에서 실제 Postgres 실행
 
# 실제 Redis ElastiCache
aws --endpoint-url=http://localhost:4566 elasticache \
  create-cache-cluster --cache-cluster-id my-redis --engine redis
# → localhost:16379에서 실제 Redis 실행

개발자 정보

  • 개발자: Nahuel (nahuelnucera)
  • 라이선스: MIT
  • GitHub + Docker Hub에서 공개
  • 955개 테스트 통과

Sources