可以在 AWS 之外使用 DynamoDB 吗?

可以。DynamoDB 通过 HTTPS 在任何地方都可访问——你的代码不必跑在 AWS 上。任何持有 AWS 凭证的应用都能通过 SDK 或签名请求调用区域 endpoint,不管它跑在你的笔记本、本地服务器还是另一朵云上。只有数据库本身住在 AWS 里。

访问是怎么工作的

DynamoDB 是一个 API,不是一个由你托管的套接字:客户端向一个区域性 HTTPS endpoint 发送用 AWS 凭证签名、并经 IAM 授权的请求。AWS 的各语言 SDK(JavaScript、Python、Java、Go 等)、CLI 和控制台用的都是这同一个公开 API——它们谁都不在乎自己跑在哪里。

curl 就能看到这一点,连 AWS 账户都不用有。向某个区域的 endpoint 发一个空的 ListTables 请求体,它会回答:

{
  "__type": "com.amazon.coral.service#MissingAuthenticationTokenException",
  "message": "Request is missing Authentication Token"
}

一个被拒绝的请求,但也是服务从一台不在 AWS 上的笔记本那里接受、解析并回复了的请求。加上 SigV4 签名,同样的调用就会成功。

网络会让你付出什么

endpoint 在任何地方都可达;延迟却不是在任何地方都一样。我们于 2026-07-28 从西班牙的一条家用宽带上做了测量:每个区域通过一条复用的 HTTPS 连接发十次未签名的 ListTables,读取 curl 的 time_starttransfer

区域首次请求(TCP + TLS)热连接中位数
eu-central-1(法兰克福)232 ms50 ms
eu-west-1(爱尔兰)204 ms59 ms
us-east-1(北弗吉尼亚)456 ms118 ms
us-west-2(俄勒冈)577 ms182 ms
sa-east-1(圣保罗)743 ms247 ms
ap-northeast-1(东京)905 ms263 ms

一台机器、一天、一条线路,所以请读比例,而不是绝对的毫秒数。

DynamoDB 在服务端以个位数毫秒作答。从西班牙到东京,网络在上面再加大约 250 ms,也就是数据库所做工作的 25 到 50 倍。一个在区域内感觉是瞬时的读取循环,到了区域外就成了你程序里最慢的东西。

第一次请求的开销是热连接的三到四倍,全都花在 TCP 和 TLS 建立上。长驻进程只付一次。而短命的进程——一个定时任务、一段 CLI 脚本、一个每次调用都新建客户端的函数——每次都要付。请复用客户端。

在 AWS 之外还有什么会变

  • 数据传输——离开 AWS 的流量要计数据传输费,而免费额度是共享的、不是按服务给的:「AWS customers receive 100 GB of free data transfer out to the internet free each month, aggregated across all AWS Services and Regions (except China and GovCloud).」
  • 凭证——AWS 之外的代码用不了实例角色,所以你得显式地管理访问密钥或联合身份凭证。

完全不用 AWS 也能开发

做开发你甚至不需要 AWS 账户:DynamoDB Local 在你自己的机器上运行这套 API,离线且免费。等你准备好了,换个 endpoint,同样的代码就指向 Web 服务了。

深入了解

桌面客户端就是这件事每天的证明:DynoTable 跑在你的 Mac 或 PC 上——完全在 AWS 之外——并且既能连 AWS 区域,也能连本地 endpoint。用表达式构建器构建它所发送的查询。

参考资料

最后核实于 2026-07-13,依据上方链接的 AWS 官方文档。

延迟于 2026-07-28 从西班牙的一条家用宽带测量,每个区域在一条复用连接上发十次请求。你的数字会不一样;重点在于区域之间的差距。

无需控制台即可使用 DynamoDB

一款快速的 DynamoDB 桌面客户端,可运行 DynamoDB 无法执行的真正 SQL——JOINs、GROUP BY、聚合——并支持可视化编辑和运行在你自己的 Bedrock 密钥上的 AI agent。

30 天免费试用,无需信用卡 — 之后为无时间限制的免费版。