Floci: AWS emulator chạy local, mã nguồn mở, không giới hạn CI
Một bản thay thế LocalStack cho nhu cầu mock AWS khi dev và chạy test — miễn phí hoàn toàn, không feature gate, không cần account, không telemetry.
Bởi Phạm Thanh Tùng
Test code gọi S3, DynamoDB hay Lambda trên account AWS thật là cách nhanh nhất để đốt budget và vướng permission. Lâu nay dân dev dùng LocalStack để mock — nhưng nhiều tính năng thú vị (event sourcing, multi-region, team feature) nằm sau paywall, và có kha khá giới hạn về telemetry, CI quota.
Floci là một lựa chọn mới trong khúc đó: AWS emulator chạy local, MIT license, toàn bộ tính năng mở cho tất cả, không cần account hay token.
Floci là gì
Một Docker image emulate 31 AWS service ở http://localhost:4566 — bao gồm S3, DynamoDB, Lambda, API Gateway, RDS, ECS và các service khác. Hỗ trợ đầy đủ REST JSON, Query, XML, và wire proxy cho database.
Workflow quen thuộc với bất kỳ ai từng dùng LocalStack: pull image, viết một file docker-compose.yml, trỏ AWS SDK của bạn vào endpoint local. Không còn bước nào khác.
Quick start
# docker-compose.yml
services:
floci:
image: floci/floci:latest
ports:
- "4566:4566"
volumes:
- ./floci-data:/var/lib/flociRồi trỏ AWS SDK về http://localhost:4566:
import { S3Client } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: "http://localhost:4566",
region: "us-east-1",
credentials: { accessKeyId: "test", secretAccessKey: "test" },
forcePathStyle: true,
});Chạy docker compose up, SDK gọi vào container thay vì AWS thật — không phát sinh chi phí, không lệ thuộc mạng.
Khác gì LocalStack
• Không feature gate — mọi service, mọi tính năng mở cho tất cả. LocalStack tách thành Community/Pro/Team, nhiều API quan trọng bị khoá ở bản Community.
• Không telemetry — container không gửi dữ liệu sử dụng về đâu cả. Với team làm financial hay healthtech, đây là điểm quan trọng.
• Không giới hạn CI — chạy bao nhiêu pipeline cũng được, không tính theo API call.
• MIT license — fork, sửa, vendor vào repo riêng đều ok.
Khi nào nên dùng
Khi bạn muốn dev loop nhanh với AWS SDK mà không trả tiền cho mỗi test run. Khi CI pipeline cần chạy integration test hàng chục lần một ngày. Khi team có yêu cầu compliance về telemetry outbound.
Khi không nên: test các feature cutting-edge vừa release trên AWS (emulator luôn chạy sau). Và nếu test của bạn đụng tới limit/quota thật của AWS (ví dụ throttling behavior), emulator không thay được môi trường thật.
Xem thêm
Trang chủ và tài liệu tại floci.io/floci. Cài qua Docker Hub, source mở trên GitHub.
Thẻ
- AWS
- Local Dev
- Open Source
- DevOps
Bài viết khác
Dev Experience
Tùy biến statusline cho Claude Code trong 3 bước: model, chi phí, rate limit, branch
Một script shell ngắn hiển thị model đang dùng, context đã xài, chi phí session, rate limit 5h và branch git — chạy nhiều Claude session song song không bị lạc.
· 3 phút đọc
Dev Experience
godly.website: nơi lục khi thấy UI của mình nhạt nhạt
Một gallery tuyển chọn các trang web có visual đẹp đến mức "astronomically good" — dùng để nhặt hero section, micro-interaction, chuyển cảnh khi cần tham khảo nhanh.
· 3 phút đọc
Dev Experience
getdesign.md: kho DESIGN.md để AI agent dựng UI theo brand
Một bộ sưu tập DESIGN.md "lấy cảm hứng" từ các brand lớn — thả một file vào repo, coding agent dựng UI theo đúng phong cách đó, đỡ phải đặc tả lại từ đầu.
· 4 phút đọc
