MiniStack — 무료 오픈소스 로컬 AWS 에뮬레이터
(ministack.org)- 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 컨테이너를 실행하며, Glue와 Athena는 데이터 카탈로그 및 SQL 실행 기능 제공
LocalStack과의 비교
- LocalStack Free는 핵심 서비스가 유료화되었으나, MiniStack은 동일한 기능을 무료로 제공
- Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB, CloudFormation 등 LocalStack Pro 전용 기능도 무료로 포함
- RDS, ElastiCache, ECS, Athena 등은 실제 컨테이너 기반으로 동작
- 시작 속도 약 2초, 메모리 사용량 30MB, Docker 이미지 150MB로 LocalStack보다 훨씬 가벼움
- 라이선스는 LocalStack의 BSL/Proprietary와 달리 MIT이며, 가격은 완전 무료
실제 인프라 기반 동작
-
RDS:
CreateDBInstance명령 시 실제 Postgres/MySQL Docker 컨테이너를 생성, 로컬 포트에서 직접 연결 가능 -
ElastiCache:
CreateCacheCluster명령으로 실제 Redis 컨테이너를 실행, 세션 저장소 등으로 활용 가능 -
ECS:
RunTask명령으로 실제 Docker 컨테이너를 실행, 로컬에서 ECS 태스크 정의 테스트 가능 - Athena: DuckDB를 통해 실제 SQL 쿼리를 실행하고 결과 세트를 반환
- 모든 AWS 도구와 완전 호환, API 엔드포인트 변경 없이 사용 가능
배포 및 사용
- Docker 명령 한 줄로 실행 가능
docker run -p 4566:4566 nahuelnucera/ministack - AWS CLI를 통해 S3, RDS, ElastiCache 등 모든 서비스에 접근 가능
- 예시:
-
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket -
aws --endpoint-url=http://localhost:4566 rds create-db-instance --engine postgres -
aws --endpoint-url=http://localhost:4566 elasticache create-cache-cluster --engine redis
-
라이선스 및 배포 정보
- MIT 라이선스로 배포되어 자유로운 포크 및 내장 가능
- GitHub 및 Docker Hub에서 공개 제공
- 개발자는 Nahuel이며, 프로젝트는 2026년까지 유지 예정
핵심 교훈
- MiniStack은 LocalStack의 완전 무료 대체재로, 실제 인프라 기반의 로컬 AWS 환경을 제공
- 빠른 시작 속도, 가벼운 리소스 사용량, 완전한 SDK 호환성을 특징으로 함
- 모든 기능이 무료, MIT 라이선스, 텔레메트리 없음
- 로컬 개발 및 CI/CD 환경에서 AWS 프로덕션 환경과 동일한 테스트 경험을 제공하는 도구임
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 코딩 도구를 활용하면, 로컬용 대체 서비스 만드는 건 생각보다 어렵지 않다고 봄
- “왜 이전에는 안 됐을까?”라는 질문에, 두 번째 시도자(second mover) 가 성공하는 경우가 많다고 생각함
-
LocalStack의 진짜 문제는 드리프트(drift) 였음
로컬 테스트는 통과하지만, 스테이징에서 S3 응답 포맷이나 DynamoDB의 throttling 차이로 깨지는 경우가 많았음
결국 짧게 유지되는 실제 AWS 환경에서 통합 테스트를 돌리는 쪽으로 전환했음
비용은 더 들지만 프로덕션에서의 예상치 못한 문제가 훨씬 줄었음- LocalStack은 일종의 스니프 테스트(sniff test) 로 쓰면 된다고 생각함
즉, 로컬에서 통과하면 그때만 실제 AWS 통합 테스트를 돌리는 식임
- LocalStack은 일종의 스니프 테스트(sniff test) 로 쓰면 된다고 생각함
-
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 대체재를 간절히 원하지만, 아직은 성숙도가 많이 부족함
요즘 소프트웨어가 다 이런 식인 듯 — 멋진 웹사이트, 큰 주장, AI 코드, 부족한 테스트
-
GCP에서는 어떤 게 대응되는지 궁금함
- GCP는 자체 에뮬레이션 도구 세트가 있음
왜 Amazon은 이런 걸 안 만드는지 모르겠음
모두에게 훨씬 편할 텐데
- GCP는 자체 에뮬레이션 도구 세트가 있음
-
실제 비용 시뮬레이터 기능이 있었으면 좋겠음