floci-io/floci
Java23 / 0
Floci는 로컬에서 AWS 호환 서비스를 경량·무료로 에뮬레이트하여 기존 AWS SDK·CLI·IaC 워크플로를 그대로 실행하게 한다.
TL;DR
Floci는 LocalStack Community의 제약 이후 무계정·무토큰 대안으로 등장한 로컬 AWS 에뮬레이터로서 69개 서비스 커버리지와 네이티브 Docker 통합을 제공한다. 내부적으로 HTTP 라우터(JAX-RS/Vert.x)가 무상태·상태저장·컨테이너형 서비스로 요청을 분기하고 memory, hybrid, persistent, wal 같은 저장소 모드로 내구성과 성능을 조정하며 일부 서비스는 실제 Docker 컨테이너를 실행하여 높은 충실도를 유지한다. README에 제시된 수치로는 네이티브 이미지가 약 24ms에 시작하고 유휴 메모리가 약 13MiB로 나타나 CI 친화적인 경량성을 확보했으며 LocalStack 호환 계층과 Testcontainers 모듈로 기존 파이프라인 전환 비용을 낮춘다. 다만 Docker-backed 서비스는 도커 소켓 접근과 더 큰 이미지, 호스트 권한 고려가 필요하므로 단순 기능 테스트와 고충실도 통합 테스트 사이에서 적절한 모드 선택이 요구된다.
핵심 포인트
- 실제 컨테이너를 사용하는 Docker-backed 서비스로 런타임과 데이터베이스의 운영상 특성을 로컬에서 재현하므로 얕은 모킹보다 높은 충실도를 제공한다. 이 접근법은 RDS, Lambda 실행, OpenSearch, MSK 등 프로토콜과 성능이 중요한 서비스에서 유효하며, Docker 소켓 공유를 통해 엔진을 직접 실행한다. 충실도 향상은 더 현실적인 통합 테스트를 가능하게 하지만 호스트 권한과 이미지 크기 같은 운영상의 고려를 동반한다.
- 시작 시간과 유휴 메모리 측면에서 경량을 추구하여 본문에 제시된 수치로는 네이티브 이미지가 약 24ms에 시작하고 유휴 메모리가 약 13MiB 수준으로 나타났다. 이러한 경량 특성은 CI 파이프라인에서 빠른 부팅과 낮은 리소스 소비로 테스트 병렬화를 확대할 수 있다. 반면 일부 고충실도 서비스는 추가 Docker 이미지와 리소스를 요구하므로 상황에 따라 트레이드오프가 존재한다.
- LocalStack Community와의 호환성 계층을 제공하여 기존 LocalStack 기반 설정을 최소한의 변경으로 전환할 수 있으며 LocalStack 변수와 init 스크립트를 자동으로 매핑한다. 이 호환성은 마이그레이션 비용을 낮추고 도구 생태계의 연속성을 보장한다. 동시에 Floci는 MIT 라이선스 하에 보안 업데이트를 계속 제공하도록 설계되어 커뮤니티 유지 관점에서 차별화된다.
- 로컬에서 표준 AWS 클라이언트가 작동하도록 HTTP 엔드포인트를 노출하여 기존 SDK, CLI, Terraform, CDK, OpenTofu 워크플로를 수정 없이 재현할 수 있다. 이 구성은 endpoint를 http://localhost:4566로 맞추기만 하면 동작하며 자격 증명은 기본적으로 비어 있지 않은 값이면 허용된다. 따라서 개발과 CI에서 클라우드 계정 없이 애플리케이션 통합 테스트가 가능하다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| Startup time | time | ~24 ms | vs LocalStack Community: ~3.3 s |
| Idle memory | memory | ~13 MiB | vs LocalStack Community: ~143 MiB |
| Docker image size | size | ~90 MB | vs LocalStack Community: ~1.0 GB |
이미지 분석
22.5k
STARS
2.3k
FORKS
+214
TRENDING
23
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.