개요
Floci 는 계정 등록·인증 없이 즉시 실행 가능한 무료 오픈소스 로컬 AWS 에뮬레이터 . LocalStack 커뮤니티 에디션의 2026년 3월 종료 에 대비한 제한 없는 대안. 시작 시간 24ms, 메모리 13MiB, 이미지 90MB 의 초경량 구조로 LocalStack 대비 100배 빠른 시작 속도 와 10배 적은 메모리 를 자랑.
등장 배경: LocalStack 종료
LocalStack 커뮤니티 에디션 (2026년 3월 종료):
✗ 인증 토큰 요구
✗ CI 지원 중단
✗ 보안 업데이트 중지
→ Floci가 제한 없는 대안으로 등장
성능 비교
항목 Floci LocalStack 커뮤니티 시작 시간 24ms ~수초 (100배 차이) 메모리 (idle) 13MiB ~150MiB+ (10배 차이) 이미지 크기 90MB ~수백 MB SDK 테스트 408/408 통과 일부 미지원 인증 불필요 토큰 요구 (커뮤니티 종료) CI 사용 자유 제한 라이선스 MIT 종료 후 폐쇄적
지원 AWS 서비스 (20+)
카테고리 서비스 API API Gateway v2 / HTTP API 인증 Cognito, IAM, STS 스토리지 S3 (Object Lock — COMPLIANCE/GOVERNANCE) DB RDS (PostgreSQL, MySQL, IAM 인증), DynamoDB (Streams 포함) 캐시 ElastiCache (Redis + IAM 인증) 메시징 SQS, SNS, Kinesis 암호화 KMS 컴퓨팅 Lambda 등
→ LocalStack에서는 부분/미지원 이던 기능들도 완전 지원
빠른 시작
docker-compose.yml
version : "3.8"
services :
floci :
image : hectorvent/floci:latest
ports :
- "4566:4566"
volumes :
- ./data:/data
environment :
- FLOCI_STORAGE_MODE=hybrid
- FLOCI_DEFAULT_REGION=us-east-1
실행
docker compose up
AWS CLI 사용
# 자격 증명은 아무 값이나 OK
export AWS_ACCESS_KEY_ID = test
export AWS_SECRET_ACCESS_KEY = test
export AWS_DEFAULT_REGION = us-east-1
# Floci 엔드포인트 사용
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name my-queue
aws --endpoint-url=http://localhost:4566 dynamodb list-tables
SDK 통합
Python (boto3)
import boto3
s3 = boto3.client(
"s3" ,
endpoint_url = "http://localhost:4566" ,
region_name = "us-east-1" ,
aws_access_key_id = "test" ,
aws_secret_access_key = "test" ,
)
s3.create_bucket( Bucket = "my-bucket" )
s3.put_object( Bucket = "my-bucket" , Key = "hello.txt" , Body = b "Hello Floci" )
Node.js (AWS SDK v3)
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3" ;
const s3 = new S3Client ({
endpoint: "http://localhost:4566" ,
region: "us-east-1" ,
credentials: { accessKeyId: "test" , secretAccessKey: "test" },
forcePathStyle: true ,
});
await s3. send ( new PutObjectCommand ({
Bucket: "my-bucket" ,
Key: "hello.txt" ,
Body: "Hello Floci" ,
}));
Java (AWS SDK v2)
S3Client s3 = S3Client. builder ()
. endpointOverride (URI. create ( "http://localhost:4566" ))
. region (Region.US_EAST_1)
. credentialsProvider (StaticCredentialsProvider. create (
AwsBasicCredentials. create ( "test" , "test" )))
. build ();
이미지 태그
태그 특징 latest 네이티브 이미지 (GraalVM), 1초 미만 시작 ⭐ 권장 latest-jvm JVM 기반, 플랫폼 호환성 중시 x.y.z 버전 고정 (네이티브) x.y.z-jvm 버전 고정 (JVM)
→ 네이티브 이미지가 빠르지만, 특수 플랫폼은 JVM 사용
환경 변수 설정
변수 기본값 설명 QUARKUS_HTTP_PORT4566 HTTP 포트 FLOCI_DEFAULT_REGIONus-east-1 기본 리전 FLOCI_DEFAULT_ACCOUNT_ID000000000000 기본 계정 ID FLOCI_STORAGE_MODEhybrid memory / persistent / hybrid / wal FLOCI_STORAGE_PERSISTENT_PATH./data 영구 저장 경로
스토리지 모드
모드 특징 memory RAM만 사용, 재시작 시 데이터 소실 persistent 디스크에 모든 데이터 저장 hybrid ⭐기본, 메모리 + 디스크 균형 wal Write-Ahead Log, 안전성 우선
활용 시나리오
시나리오 방식 CI/CD 테스트 통합 테스트 시 실제 AWS 대신 Floci 로컬 개발 비용 0원으로 AWS 워크플로우 실험 온보딩 신입 개발자 환경 즉시 구성 에어갭 환경 인터넷 없이 AWS API 학습 마이그레이션 검증 LocalStack → Floci 전환
LocalStack에서 마이그레이션
# Before (LocalStack)
services :
localstack :
image : localstack/localstack
environment :
- LOCALSTACK_AUTH_TOKEN=... # 종료 후 필요
ports :
- "4566:4566"
# After (Floci) — 거의 동일, 토큰 불필요
services :
floci :
image : hectorvent/floci:latest
ports :
- "4566:4566"
엔드포인트 동일(localhost:4566) → 코드 변경 거의 없음
평가
장점
MIT 라이선스 (상업적 사용 자유)
초경량 (24ms 시작, 13MiB)
LocalStack 호환 엔드포인트
지원 서비스 풍부 (20+)
인증 불필요
한계 (예상)
신생 프로젝트 → 커뮤니티 작음
일부 최신 AWS 서비스 미지원 가능
실제 AWS 동작과 100% 일치하지 않을 수 있음 (모든 에뮬레이터 공통)
관련 항목