ByteNoteByteNote
Floci:免费开源的 LocalStack 替代品
字

字节笔记本

2026年10月5日 · 约 7 分钟读完

Floci:免费开源的 LocalStack 替代品

API中转
¥120

如果你做 AWS 开发,大概率用过 LocalStack:在本地跑起 AWS 服务,开发和测试都不用碰真云。但 LocalStack 的免费版功能有限,很多常用服务要用 Pro 版,每月 35 美元起步。

Floci 是 LocalStack 的免费开源替代,官方的口号是「轻量、蓬松、永远免费」:无需账号、无需 auth token、没有功能限制,docker compose up 一条命令就能跑起来。

Floci 架构示意:现有工作流通过 localhost:4566 接入 Floci

它是什么

Floci(仓库 floci-io/floci)是一个开源的本地 AWS 模拟器,面向日常开发、CI 流水线和离线测试。一句话概括:在本地跑 AWS 服务,不用云账号、不用付费、无功能门槛。

把你的 AWS SDK、CLI、Terraform、CDK 或 OpenTofu 指向 http://localhost:4566,现有的工作流原样照跑。代码几乎不用改,换个 endpoint 就能从真 AWS 切到本地模拟,也可以随时切回去。

名字来自 floccus(絮状云),因为它轻得像一团爆米花。项目采用 MIT 协议,可以放心用在个人项目、公司内部工具和 CI 环境。

和 LocalStack 的差距在哪

FlociLocalStack 免费版LocalStack Pro
价格永远免费免费,功能有限每月 35 美元起
账号不需要要注册要注册
Auth Token不需要需要需要
功能限制没有不少服务要 Pro没有
启动方式docker compose up安装加配置安装加配置
开源协议MIT部分开源闭源

Floci 的差异可以概括成「三无」:无账号、无 Token、无功能门。LocalStack 免费版里,Lambda、Step Functions、Kinesis 这类常用服务都要 Pro 才能用,而 Floci 全部开放。

怎么用

方式一:Docker Compose

yaml
# compose.yaml
services:
  floci:
    image: floci/floci:latest
    ports:
      - "4566:4566"
bash
docker compose up

# 配置环境变量
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test

# 之后正常使用 AWS CLI
aws s3 mb s3://my-bucket
aws dynamodb list-tables

方式二:官方 CLI

bash
floci start          # 启动
eval $(floci env)    # 自动配置环境变量
aws s3 ls            # 正常使用
floci stop           # 停止

Floci 快速上手流程:从 compose.yaml 到 AWS CLI 命令

所有服务都挂在 localhost:4566,任意 region 都可以,credentials 随便填一个非空值就行。

从 LocalStack 迁移也几乎零成本:两边默认端口都是 4566,把 endpoint 指过去,其余代码和脚本保持原样。

支持哪些服务

Floci 覆盖了 AWS 开发和测试中最常用的服务:

  • S3(对象存储)
  • DynamoDB(NoSQL 数据库)
  • SQS / SNS(消息队列与通知)
  • Lambda(无服务器函数)
  • Kinesis(流处理)
  • CloudFormation(基础设施即代码)
  • IAM / STS(权限与临时凭证)
  • Secrets Manager / SSM(密钥与配置)
  • Step Functions(状态机)
  • SES(邮件)
  • CloudWatch(监控与日志)
  • EventBridge(事件总线)

仓库文档列出的支持范围其实更大,还包括 API Gateway、Cognito、KMS、ECS、EC2、RDS、ElastiCache、AppSync、Route53 等一大串。实现方式也值得一提:大部分服务在进程内模拟,启动快、资源占用低;而 Lambda、RDS、ECS、ElastiCache、OpenSearch 这类对保真度要求高的服务,则用真实 Docker 容器来跑,而不是浅层的假响应。

SDK 和工具链怎么接

工具接入方式
AWS SDK(Python / Node / Go / Java)设置 endpoint_url
AWS CLIAWS_ENDPOINT_URL 环境变量
Terraform / OpenTofuendpoints 配置块
AWS CDK环境变量
Testcontainers官方模块,Java / Node / Python 可用
LocalStack同端口,无缝迁移

Testcontainers 模块是个加分项:在测试代码里直接启动一个隔离的 Floci 实例,不共享状态,也不用担心端口冲突,测试之间的干净度更容易保证。

谁适合用

  • 个人开发者:不想为本地测试每月支付 35 美元。
  • 开源项目:不想要求每一位贡献者都注册 LocalStack 账号、配置 token。
  • CI 流水线:不用在 pipeline 里塞凭证,原生镜像毫秒级启动,空闲内存占用低。
  • 离线场景:出差或飞机上没有网络,也能照常跑 AWS 相关的集成测试。
  • 教学演示:学生不用注册云账号,就能上手 S3、DynamoDB、Lambda 这些服务。

小结

Floci 是 LocalStack 的免费开源替代:无账号、无 Token、无功能门,docker compose up 就能在本地跑起 AWS 服务,MIT 协议。如果你做 AWS 开发,又被 LocalStack 的付费墙卡住,它是最省事的解法,就像它的名字一样,轻量、蓬松、永远免费。

本文基于 Floci 官方仓库(https://github.com/floci-io/floci )与社区公开讨论整理,技术细节以仓库文档为准。

相关文章

分享: