Floci – 무료 오픈소스 로컬 AWS 에뮬레이터
(github.com/hectorvent)- Floci는 계정 등록이나 인증 없이 바로 실행 가능한 무료 오픈소스 AWS 로컬 에뮬레이터로, 단일 명령으로 구동되는 경량 구조
- LocalStack 커뮤니티 에디션의 2026년 서비스 종료 이후를 대비한 제한 없는 대안으로, MIT 라이선스를 통해 상업적 사용도 허용
- 시작 시간 24ms, 메모리 13MiB, 이미지 크기 90MB로 매우 가볍고, LocalStack 대비 100배 빠른 속도와 10배 적은 메모리 사용량을 보임
- 20개 이상 AWS 서비스를 완전 지원하며, 408개 SDK 테스트 전부 통과로 높은 호환성 확보
- 기존 AWS SDK의 엔드포인트만 변경하면 바로 통합 가능해, 로컬 개발·테스트 환경에서 즉시 사용 가능한 대체 솔루션 제공
Floci 개요
- Floci는 무료 오픈소스 로컬 AWS 에뮬레이터로, 계정 등록이나 인증 토큰 없이 바로 실행 가능한 구조
-
docker compose up명령만으로 구동되며, CI/CD 제한이나 기능 잠금이 없음 - 이름은 구름 형태인 cirrocumulus floccus에서 유래했으며, “가볍고 부드럽고 항상 무료”를 표방
LocalStack 대안으로서의 위치
- LocalStack 커뮤니티 에디션은 2026년 3월 서비스 종료 예정으로, 이후 인증 토큰 요구·CI 지원 중단·보안 업데이트 중지 예정
- Floci는 이에 대한 제한 없는 대안으로 제공됨
- MIT 라이선스로 배포되어 상업적 사용을 포함한 자유로운 활용 가능
성능 및 기능 비교
- 시작 시간 약 24ms, 유휴 메모리 13MiB, 도커 이미지 크기 90MB로 매우 경량
- LocalStack 커뮤니티 버전 대비 약 100배 빠른 시작 속도, 10배 이상 적은 메모리 사용량
- 20개 이상 AWS 서비스 지원, 408/408 SDK 테스트 통과
- 주요 지원 서비스:
-
API Gateway v2 / HTTP API**,** Cognito**,** ElastiCache (Redis + IAM 인증)
-
RDS (PostgreSQL, MySQL, IAM 인증), S3 Object Lock (COMPLIANCE / GOVERNANCE)
- DynamoDB Streams, IAM, STS, Kinesis, KMS 등 완전 지원
- LocalStack에서는 위 기능들이 부분 지원 또는 미지원 상태
-
빠른 시작
- 기본
docker-compose.yml설정 예시 제공- 포트
4566사용, 로컬./data디렉터리 마운트
- 포트
- 실행 명령:
docker compose up - 모든 서비스는
http://localhost:4566에서 접근 가능 - AWS 자격 증명은 임의 값 사용 가능 (
AWS_ACCESS_KEY_ID=test,AWS_SECRET_ACCESS_KEY=test) - 예시 명령:
-
aws s3 mb s3://my-bucket -
aws sqs create-queue --queue-name my-queue -
aws dynamodb list-tables
-
SDK 통합
- 기존 AWS SDK의 엔드포인트만 변경하면 그대로 사용 가능
- 주요 언어별 예시:
-
Java (AWS SDK v2):
endpointOverride(URI.create("http://localhost:4566")) -
Python (boto3):
endpoint_url="http://localhost:4566" -
Node.js (AWS SDK v3):
endpoint: "http://localhost:4566"
-
Java (AWS SDK v2):
- 모든 예시에서
region은us-east-1, 자격 증명은"test"값 사용
이미지 태그
-
latest: 네이티브 이미지, 1초 미만 시작 속도로 권장 -
latest-jvm: JVM 기반 이미지로 플랫폼 호환성 중시 -
x.y.z/x.y.z-jvm: 버전 고정 릴리스
환경 설정
- 모든 설정은
FLOCI_접두 환경 변수로 재정의 가능 - 주요 변수:
-
QUARKUS_HTTP_PORT: 기본4566 -
FLOCI_DEFAULT_REGION: 기본us-east-1 -
FLOCI_DEFAULT_ACCOUNT_ID: 기본000000000000 -
FLOCI_STORAGE_MODE:memory,persistent,hybrid,wal중 선택 (기본hybrid) -
FLOCI_STORAGE_PERSISTENT_PATH: 데이터 디렉터리 경로 (./data)
-
- 전체 설정 문서: configuration docs
- 서비스별 스토리지 설정: storage docs
라이선스
- MIT 라이선스로 제공되어, 제한 없이 자유로운 사용 및 수정 가능
Hacker News 의견들
-
AWS, GCP, Azure 같은 클라우드 제공자들이 로컬 개발용 에뮬레이터를 공식적으로 제공했으면 좋겠음
현재 여러 AWS 서버리스 스택을 쓰고 있는데, 로컬 통합 테스트가 거의 불가능함
Localstack이 괜찮은 대안이긴 하지만, 이런 기능은 AWS가 직접 제공해야 개발자 경험이 훨씬 좋아질 것 같음- 공식 로컬 에뮬레이터는 듣기엔 좋아 보이지만, 실제로는 AWS가 S3, IAM, Kinesis 등의 동작 차이를 일일이 설명해야 하는 상황이 생김
사람들이 그 차이를 AWS 버그로 착각할 테니, AWS 입장에서는 지원 악몽이 될 것임 - AWS 엔지니어가 만든 local-web-services 프로젝트를 봤는데, 꽤 비슷한 기능을 제공함
Localstack이 AI 기반 shift-left 인프라 툴링 트렌드 덕분에 경쟁을 받는 것도 흥미로움 - 예전에 Microsoft가 Azure Service Dev Kit (ASDK) 이라는 단일 노드 샌드박스를 제공했었음
지금은 축소되었지만, 로컬에서 전체 Azure 클라우드를 흉내내는 개념이었음 - 나는 이 의견에 전혀 동의하지 않음
소프트웨어는 특정 클라우드 API에 종속되지 않도록 추상화와 인터페이스 중심으로 설계해야 함 - Cloudflare는 자사 서버리스 플랫폼용 로컬 에뮬레이터를 제공하고 있고, 꽤 잘 작동함
- 공식 로컬 에뮬레이터는 듣기엔 좋아 보이지만, 실제로는 AWS가 S3, IAM, Kinesis 등의 동작 차이를 일일이 설명해야 하는 상황이 생김
-
이런 종류의 툴은 나에게는 무의미한 시도로 보임
단위 테스트용이라면 AWS 호출을 mocking하는 게 낫고,
로컬 개발용이라면 Terraform 같은 IaC 도구로 테스트 환경을 실제로 프로비저닝하는 게 더 안전함
에뮬레이터의 동작이 실제 서비스와 다를 경우, 버그가 프로덕션으로 새어 들어갈 위험이 있음- 게다가 로컬 환경에서는 잘 안 되던 코드가 실제 AWS에서는 잘 돌아가는 역전 현상도 생길 수 있음
-
“로컬 AWS” 개념에 대한 내 경험과 생각을 정리해봄
- 이런 제품이 신규 고객 유입에 큰 도움이 될 것 같지는 않음
신용카드 등록조차 꺼리는 사람은 어차피 고액 고객이 되지 않음 - AWS의 무료 티어는 꽤 관대함. 나도 1년에 10달러도 안 씀
- AWS를 배우려면 비용 통제의 현실을 직접 겪어야 함. 초기에 5달러를 과금당하는 게 낫지, 나중에 5천 달러를 잃는 것보다 나음
- 로컬 클라우드의 진짜 장점은 보안 부담 없이 빠른 반복 개발이 가능하다는 점임
하지만 실제 배포 시에는 이 보안 부채를 해결해야 하고, 그 과정에서 “내 컴퓨터에서는 잘 되던” 코드가 깨지곤 함 - Localstack은 AWS의 비공식 지원을 받기 때문에 기능이 풍부하고 릴리스 속도도 빠름
FOSS 대안이 그 수준을 따라가긴 어려울 것 같음 - 나는 이런 툴이 필요한 이유가 바로 IAM 권한 에뮬레이션 때문임
최소 권한 원칙을 지키려면 매번 권한을 하나씩 열어야 하는데, 이게 권한 whack-a-mole 게임처럼 느려짐
로컬에서 IAM까지 정확히 흉내낼 수 있다면 배포 사이클을 크게 단축할 수 있음
Localstack 유료 버전에 이 기능이 있는데, 새 프로젝트가 얼마나 잘 구현했는지 궁금함 - CI/CD 환경에서는 Localstack이 거의 필수임
수백 개의 통합 테스트를 빠르게 돌려야 하는데, 실제 AWS 호출은 지연, 일관성 문제, 요금, rate limit 등으로 비효율적임
개발자마다 AWS 계정을 주는 것도 관리 악몽임
“AWS 요금 폭탄을 직접 맞아봐야 배운다”는 말은 마치 “불을 배우려면 화상을 입어야 한다”는 것처럼 비현실적인 비유임 - 로컬 에뮬레이터의 주요 목적은 단위 테스트 및 일부 통합 테스트임
개발자별로 별도 계정을 주고 billing alert만 설정하면 보안 문제는 크지 않음
- 이런 제품이 신규 고객 유입에 큰 도움이 될 것 같지는 않음
-
이 프로젝트가 moto와 어떻게 다른지 궁금함
Localstack의 라이선스 변경에 불만이 많지만, 이미 좋은 대안들이 있음
moto의 서비스 커버리지는 인상적임
우리 팀도 거의 옮길 뻔했지만, Localstack의 엔터프라이즈 지원 계약 덕분에 그대로 유지 중임 -
테스트용으로 꽤 유용해 보임
나는 Ansible role로 Lambda 패키징 자동화를 만들고 있는데,
S3에 기존 zip이 있는지 확인하는 부분을 mocking할 수 있다면 훨씬 편할 것 같음 -
LocalStack의 커뮤니티 에디션이 2026년 3월에 종료되고, 인증 토큰 요구 및 보안 업데이트 중단이 예정되어 있음
Floci는 이런 제약이 없는 대안으로 소개됨- 오랜 세월 끝에 닫히는 건 아쉽지만, 회사에서 쓰는 엔터프라이즈 라이선스는 정말 훌륭했음
CloudFormation 배포를 기다릴 필요 없이 빠른 피드백 루프를 만들어 수천 시간 절약했음
인터넷 연결 없이도 기차 안에서 테스트할 수 있었음
- 오랜 세월 끝에 닫히는 건 아쉽지만, 회사에서 쓰는 엔터프라이즈 라이선스는 정말 훌륭했음
-
이 프로젝트 이름이 루마니아어로는 “작은 털 뭉치”, 속어로는 음모를 뜻해서 웃김
- 라틴어에서는 “양털 뭉치”라는 뜻이고, “가치 없는 것”을 의미하는 표현 flocci non facio로도 쓰임
-
이건 내가 기다리던 프로젝트임
Localstack을 좋아하지만, 커뮤니티 주도형 오픈 솔루션이 훨씬 적합하다고 생각했음
AWS 엔지니어들이 직접 기여할 수 있는 구조라면 모두에게 이익임
AI 도입이 가속화되는 지금, 로컬 통합 테스트는 필수임- 하지만 AWS 입장에서는 FOSS 클론을 지원할 이유가 없음
대신 공식적으로 로컬 컨테이너 버전을 제공하는 게 더 현실적임 - 완전 동의함. 특히 에이전트 워크플로우가 실제 상태를 변경하는 지금,
로컬 테스트만이 안전하게 “모델이 테이블을 삭제하는 환각” 같은 상황을 실험할 수 있는 방법임
- 하지만 AWS 입장에서는 FOSS 클론을 지원할 이유가 없음
-
Localstack을 써봤는데 꽤 괜찮았음
혹시 GCP용으로 비슷한 게 있는지 아는 사람?
bigquery-emulator는 유용했지만,
GCP 전체를 에뮬레이션하는 건 아직 찾지 못했음 -
기능은 멋져 보이지만 커밋 히스토리가 거의 없고, PR이나 이슈도 없음
자동 생성된 프로젝트처럼 보여서 신뢰하기 어렵다는 느낌을 받음
실제 데이터를 테스트할 때 안전한지 확신이 안 듦- 나도 동의함. OSS 프로젝트라면 이슈가 어느 정도 쌓여 있어야 기여 포인트를 찾을 수 있음
아직 초기라서 앞으로 지켜볼 예정임 - 혹시 vibe-coded 프로젝트일 수도 있음
- 프로젝트가 이제 막 일주일 된 걸 보고 이런 의심을 하는 건 과함
예전엔 오픈소스라면 누군가가 보안 문제를 발견해줄 거라 믿었지만,
요즘은 LLM으로 보안 감사를 돌려볼 수도 있음
완벽하진 않지만, 이런 자동 감사가 악성 코드를 숨기기 어렵게 만듦
- 나도 동의함. OSS 프로젝트라면 이슈가 어느 정도 쌓여 있어야 기여 포인트를 찾을 수 있음