---
title: "Floci 对比 LocalStack：AWS 模拟器选型 2026"
canonical: https://wavect.io/zh/blog/floci-vs-localstack-aws-emulator/
language: zh
description: "对比 Floci、LocalStack 与 AWS SAM 的服务覆盖、保真度、Docker 依赖、价格和 CI 适配，并附低风险迁移清单。"
image: "https://wavect.io/img/blog/headers/header_floci-vs-localstack-aws-emulator.png"
author: ["Kevin Riedl"]
published: "2026-07-26"
updated: "2026-09-02"
reviewed: "2026-09-02"
---

# Floci 对比 LocalStack：2026 年 AWS 本地模拟器选型指南

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

9 分钟 阅读 · 2026年7月26日 最近审核 2026年9月2日

[**下一篇**](/zh/blog/shared-kv-cache-llm-inference-latency/)

要点速览

Floci 是一个可信的 MIT 许可 AWS 本地模拟器，适合快速本地测试与 CI，也可作为无需账号的 LocalStack Community 替代方案。但网络宣传仍不准确：Floci 以 Java 开发并通过 Quarkus Native 编译，13 MiB 指空闲内存而非二进制大小；截至 2026 年 9 月 2 日，其权威矩阵列出 85 项模拟服务，并非完整 AWS。Floci 自己的页面也不一致，营销页声称 100 项，迁移指南仍写 58 项。许多服务使用 Docker 支撑的引擎。项目的 1,925 项通过测试覆盖受测 SDK 调用，不能证明完整 AWS 行为。可用 Floci 获得快速反馈，同时保留真实 AWS 契约测试；若商业支持或更高保真度值得付费，则选 LocalStack；若集中在 Lambda 与 API Gateway，则 AWS SAM 更聚焦。

**如果你需要快速、免许可费的 AWS 集成测试，Floci 值得试用，但它不是“装在 13 MB 里的整套 AWS 云”。**它提供了实用的本地控制面、熟悉的 AWS 协议和较广的服务覆盖。官方资料也清楚暴露了边界：13 MiB 指空闲内存，多项服务会启动真实 Docker 容器，SDK 测试通过也不等于复刻生产 AWS。

给采购方的简短结论是：把 Floci 用作快速反馈层，不要把它当成上线前唯一证据。契约、IAM、网络和部署测试仍应保留在真实 AWS 中。如果商业支持和高级工具值得许可费，选 LocalStack；如果范围主要是 Lambda 和 API Gateway，先选 AWS SAM。

我们在 2026 年 9 月 2 日核查了公开代码库、服务矩阵、迁移指南、兼容性测试及竞品官方文档。本文是独立案头评估，不是赞助内容，也不是自行完成的性能实测。

## Floci 是什么？

[Floci](https://github.com/floci-io/floci) 是采用 MIT 许可的本地 AWS 模拟器。它监听 `4566` 端口。只要把标准 AWS SDK、AWS CLI、Terraform、OpenTofu 或 CDK 指向本地端点，就能继续使用熟悉的调用方式。默认内存模式适合一次性测试；持久化、混合和预写日志模式则在速度与状态保留之间做不同取舍。

Floci 使用 Java 开发，再通过 Quarkus 和 GraalVM Mandrel 编译为原生可执行文件。它不是 Go 项目。原生编译省掉了常规 JVM 预热，因此官方启动数据很快，但这不代表所有被模拟的 AWS 依赖都被塞进了单一进程。

## 网络热帖中的 Floci 说法准确吗？

| 说法 | 一手资料显示 | 判断 |
| --- | --- | --- |
| “整套 AWS 云都能在本地运行。” | 截至 2026 年 9 月 2 日，权威矩阵列出 85 项模拟服务，每项只有明确列出的操作。AWS 实际产品和行为远多于此。 | 错误。覆盖面广不等于完整 AWS。 |
| “它是一个 Go 二进制程序。” | 代码库主要由 Java 构成，使用 Quarkus Native 和 GraalVM Mandrel。 | 错误。 |
| “总占用只有 13 MiB。” | Floci 公布的是约 13 MiB 空闲内存，原生可执行文件约 40 MB，Docker 镜像约 90 MB。 | 容易误导。内存、二进制大小和镜像大小不是同一指标。 |
| “45 项服务不到一秒全部启动。” | 项目宣称约 24 毫秒启动。权威矩阵列出 85 项服务，营销页则宣传 100 项。这些是项目方数据，不是我们的独立实测。 | 发布时的数量已过时，当前项目页面也互相矛盾。 |
| “现有 SDK 代码无需改动。” | 客户端仍需本地凭证、区域和端点配置。从 LocalStack 迁移时往往可保留 4566 端口及多数业务调用，但官方列出了差异。 | 业务调用层面大体成立，并非完全零配置。 |
| “零依赖，也没有后台进程。” | Docker 是官方推荐分发方式。Lambda 始终使用 Docker；RDS、ElastiCache、ECS、EC2、EKS、MSK、OpenSearch 等也使用容器支撑的引擎。 | 对完整功能集而言错误。 |
| “全部开源，没有付费层。” | 代码库采用 MIT 许可，项目在核查日没有宣传功能门槛或付费层。 | 截至核查日成立，但不包含担保或付费支持承诺。 |

当前服务数量应以 [官方权威服务矩阵](https://floci.io/floci/services/) 为准，不应沿用发布或营销页面。Floci 自己的页面目前也有信息漂移：迁移指南写 58 项，营销页宣传 100 项，权威矩阵则写 85 项。请固定测试版本，并逐项核对应用实际调用的操作。

## 1,925 项测试全部通过，是否等于 AWS 完全兼容？

不等于。公开的 [兼容性测试套件](https://github.com/floci-io/floci/tree/main/compatibility-tests) 会让真实 Java、Node.js、Python、Go 与 Rust SDK 客户端，以及 AWS CLI、Terraform、OpenTofu 和 CDK 访问正在运行的 Floci。这能有力说明受测请求可被正确序列化、执行和反序列化。

但它不是一套把相同用例同时跑在 Floci 与生产 AWS、再比较结果的差分测试。测试 README 的目标是验证标准工具能否对接模拟器，并未声称覆盖所有操作、错误、授权边界、事件顺序、重试、配额和最终一致性。

| 证据 | 可以证明 | 不能证明 |
| --- | --- | --- |
| 1,925 项项目测试通过 | 固定版本通过项目所选的 SDK 与 IaC 场景。 | AWS API 和行为的完整等价。 |
| Docker 支撑的真实引擎 | 部分计算、数据库和流处理路径使用真实底层软件。 | 控制面、限制、网络和故障模式与托管服务完全相同。 |
| 相同端口与 AWS 线路协议 | 很多客户端只需较少业务代码改动即可切换端点。 | 所有 LocalStack 脚本、变量和检查端点都一致。 |

正确验收标准不是“服务名称存在”，而是“我们依赖的操作、字段、错误、权限和副作用，对这一层测试而言足够接近”。

## Floci、LocalStack、AWS SAM 与真实 AWS 怎么选？

| 选项 | 最适合 | 截至 2026 年 9 月 2 日的商业模式 | 主要代价 |
| --- | --- | --- | --- |
| Floci | 在明确 AWS 子集上运行快速本地与 CI 集成测试 | MIT 许可，未宣传付费层或认证令牌 | 团队要自行验证保真度，也承担更多采用风险。 |
| LocalStack | 需要广泛模拟、商业支持和高级本地云工具的团队 | Hobby 仅供免费非商业使用；Base 年付为每用户每月 39 美元，月付 45 美元；Ultimate 年付为 89 美元。 | 商业使用需要付费方案、账号和认证令牌。 |
| AWS SAM CLI | 围绕 SAM、CloudFormation 或合成 CDK 模板开发 Lambda 与 API Gateway | CLI 开源；在云端测试或部署仍产生正常 AWS 费用 | 它是聚焦 serverless 的工具，不是广泛 AWS 本地控制面。 |
| 真实 AWS 测试账号 | 验证契约、IAM、网络、配额与部署行为 | AWS 资源费用，加上隔离、准备和清理环境的平台工作 | 反馈较慢，还要管理凭证、清理、并发和波动成本。 |

LocalStack 在 2026 年 3 月 23 日调整了产品打包。其 [许可文档](https://docs.localstack.cloud/aws/licensing/) 把非商业 Hobby 与商业 Base、Ultimate、Enterprise 分开。预算前请再次查看 [价格页面](https://www.localstack.cloud/pricing) ，因为价格和权益会变化。

[AWS SAM local](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/using-sam-cli-local.html) 是官方提供的窄范围方案，可本地调用 Lambda 并运行 API Gateway。AWS 明确提醒，本地测试不能验证所有内容，例如云资源之间的权限，并建议尽可能在云端测试。

## 什么情况下应该选择 Floci？

| 场景 | 建议 | 原因 |
| --- | --- | --- |
| 测试使用已支持的 S3、DynamoDB、SQS、SNS、Lambda 或事件流，且 CI 启动时间重要。 | 试点 Floci | 原生控制面和内存状态正对这类工作负载。 |
| 正在替换 LocalStack Community，现有流程已使用 4566、虚拟凭证和端点覆盖。 | 测试替换镜像 | Floci 会转换若干变量，并兼容常见 health 与 init 路径。 |
| 需要企业支持、AWS 资源复制、治理或可追责供应商。 | 评估付费 LocalStack | 许可费可能低于内部长期维护兼容缺口的成本。 |
| 只需本地 Lambda 调用和 API Gateway 路由。 | 先用 AWS SAM | 官方工具更窄，也更贴合该工作流。 |
| 上线依赖精确 IAM 拒绝、VPC、配额、区域差异或最终一致性。 | 使用真实 AWS | 本地模拟器不应成为托管云行为的最终裁判。 |

## 如何低风险地从 LocalStack 迁移到 Floci？

1. **盘点操作，不只看服务名。** 记录全部客户端、API action、事件源、检查端点、初始化 hook 和 Terraform 资源。
2. **固定两边版本。** 比较明确的 LocalStack 与 Floci 版本，不要给浮动 `latest` 标签做基准。
3. **同一套用例跑两遍。** 比较通过率、启动 p50 与 p95、总耗时、峰值内存、镜像下载量和故障诊断质量。
4. **增加契约探针。** 验证字段、错误码、分页、排序、重试、重复投递、超时和持久化，不要只做 happy path CRUD。
5. **覆盖 Docker 路径。** Lambda 和其他真实引擎需要 Docker 权限、镜像、网络和清理，这些都应计入 CI。
6. **保留真实 AWS 门禁。** 用隔离账号中的较小测试集覆盖 IAM、CloudFormation、网络和生产关键事件链。
7. **预先写好退出标准。** 只有节省的 runner 与开发时间高于迁移、维护和误判成本时才采用。

官方 [LocalStack 迁移指南](https://floci.io/floci/getting-started/migrate-from-localstack/) 列出了兼容层和例外。Lambda 始终基于容器，`LAMBDA_REMOTE_DOCKER` 不受支持，数据目录不同，调用 AWS CLI 或 boto3 的 init 脚本需要更大的 `compat` 镜像。

## 可复现的 Floci CI 基线

```
services:
  floci:
    image: floci/floci:1.6.0
    ports:
      - "4566:4566"
    environment:
      FLOCI_STORAGE_MODE: memory
```

```
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 s3 mb s3://integration-fixtures
aws s3 ls
```

只有服务确实需要容器执行时才挂载 Docker socket，并在共享或不可信 runner 上使用前审查权限。挂载 Docker socket 实际上接近主机级控制权，不是无害的测试设置。

## Floci 的真实成本是多少？

许可费用是零，总成本不是。需要计算迁移、固定版本升级、模拟器专用 fixture、CI 镜像、Docker 权限、误报与漏报排查，以及仍然必须保留的真实 AWS 测试。再把这些成本与 LocalStack 许可和临时 AWS 环境比较。

衡量每个被接受变更的成本，不要孤立看启动时间：

`每月测试成本 = runner 分钟 + 云测试支出 + 模拟器许可 + 维护时间 + 故障调查`

24 毫秒启动只有在缩短关键路径时才有价值。如果 Lambda runtime 镜像、数据库容器或应用构建主导了任务，它就不是决策核心。这也是我们在 [IKB 基础设施与集成项目](/zh/case-studies/ikb/) 和 [上线前软件 QA 清单](/zh/software-development-guide/software-qa-checklist-before-launch/) 中采用的交付原则：测试那个仍有能力否决发布的系统边界。

Wavect 提供 [定制软件与云集成工程](/zh/services/software-development/) 。正因为存在商业利益，建议才必须可测量：你的团队应能在不采购我们服务的情况下，判断 Floci、付费 LocalStack、AWS SAM 或直接 AWS 测试哪一个最安全、总成本最低。如果需要独立审查迁移与测试方案， [可以与 Wavect 讨论你的 AWS 交付体系](/zh/contact/) 。

## Floci 与 LocalStack 常见问题

### Floci 是用 Go 编写的吗？

不是。Floci 是 Java 项目，通过 Quarkus Native 和 GraalVM Mandrel 编译为原生可执行文件。它没有常规 JVM 预热，但源代码并不是 Go。

### Floci 能在本地运行完整 AWS 云吗？

不能。截至 2026 年 9 月 2 日，权威矩阵列出 85 项模拟服务并明确列出操作和限制，而营销页同时宣传 100 项。这是广泛且不断变化的覆盖，不是完整 AWS 产品与行为目录。

### Floci 真的只有 13 MiB 吗？

项目宣称原生控制面空闲内存约 13 MiB。其对比页另列原生可执行文件约 40 MB、Docker 镜像约 90 MB。使用服务容器还会增加资源。

### Floci 需要 Docker 吗？

Docker 是推荐安装方式，多项服务也需要它。Lambda 始终使用容器；RDS、ElastiCache、ECS、EC2、EKS、MSK、OpenSearch 等也通过 Docker 编排真实引擎。

### Floci 能无缝替代 LocalStack 吗？

对于使用 4566 端口、标准 AWS 客户端、虚拟凭证和常见 init 或 health 路径的 Community 工作流，改动可能很小，但并非普遍无缝。请检查变量、Docker 行为、数据路径和全部实际调用。

### Floci 可以免费商用吗？

MIT 许可允许商业使用、修改和分发，前提是保留许可声明。截至核查日未宣传付费层，软件也不提供担保。

### Floci 能替代真实 AWS 测试吗？

不能。可用它获得快速集成反馈；生产关键 IAM、网络、配额、区域行为、CloudFormation 和端到端事件投递仍应在真实 AWS 验证。

## 一手来源与研究边界

本文在 2026 年 9 月 2 日核查了 [Floci 代码库](https://github.com/floci-io/floci) 、 [安装指南](https://floci.io/floci/getting-started/installation/) 、 [权威服务矩阵](https://floci.io/floci/services/) 、 [项目方基准对比](https://floci.io/aws/compare/) 、 [兼容性测试源码](https://github.com/floci-io/floci/tree/main/compatibility-tests) 和 [MIT 许可](https://github.com/floci-io/floci/blob/main/LICENSE) 。竞品信息来自 LocalStack 的 [许可文档](https://docs.localstack.cloud/aws/licensing/) 、 [价格页](https://www.localstack.cloud/pricing) 以及 AWS 的 [SAM 测试指南](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-test-and-debug.html) 。

我们没有独立复现 24 毫秒启动、13 MiB 空闲内存、每秒 289 次 Lambda 请求或竞品对比数据，它们仍是项目方测量。服务覆盖、版本、价格和兼容性变化很快，采购前应固定版本并重跑选型测试。

## 最终思考

Floci 比网络热帖更有价值，也没有热帖说得那么神奇。一个快速、MIT 许可、兼容常见 SDK 协议的 AWS 模拟器，确实可以减少本地开发和 CI 摩擦。但它没有把整套 AWS 塞进 13 MiB，也没有消除 Docker，更不能用测试通过数量证明生产完全等价。

请用自己的操作、失败场景和 runner 账单试点，并保留真实 AWS 契约层。最终选择能提供快速反馈、又不会制造过度信心的最小工具组合。

## 你可能也喜欢..

[**AI 编码智能体该选 Git worktree 还是 Jujutsu** 先拆分代码库、依赖、环境和审查成本，再调整并行 CI 的底层工具。](/zh/blog/git-worktrees-vs-jujutsu-ai-coding-agents/) [**Wavect 对比传统开发机构** 比较结果导向的产品工程与传统人力供应模式。](/zh/compare/wavect-vs-dev-agencies/)

架构与平台

## 接下来读什么

对长期交付产生影响的框架、平台与系统设计选择。

[从这里开始**智慧城市软件架构：MQTT、LoRaWAN、Kubernetes 与 Terraform**](/zh/blog/smart-city-architecture-best-practices-2026/)

- [NVIDIA Run:ai 开源：GPU 编排不等于软件工厂](/zh/blog/nvidia-runai-open-source-gpu-software-factory/)
- [GitButler 并行 AI 智能体：多个分支，一个运行中的应用](/zh/blog/gitbutler-parallel-ai-agents-one-workspace/)
- [Vendo SaaS 集成：租户隔离与审批边界](/zh/blog/vendo-saas-tenant-isolation/)
- [SaaS 集成 AgentMail：租户隔离与重复邮件恢复](/zh/blog/agentmail-saas-duplicate-sends-recovery/)
- [AI 编程时代的软件护城河：谁来维护你构建的系统？](/zh/blog/ai-coding-software-moat-operations/)

[上一篇文章**AI 会让跨平台框架变得多余吗？**](/zh/blog/will-ai-kill-cross-platform-frameworks/) [下一篇文章**Git Worktree 与 Jujutsu：AI 编程智能体版本控制决策指南（2026）**](/zh/blog/git-worktrees-vs-jujutsu-ai-coding-agents/)

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

9 分钟 阅读 · 2026年7月26日 最近审核 2026年9月2日

[**下一篇**](/zh/blog/shared-kv-cache-llm-inference-latency/)
