DynamoDB 是開源的嗎?
不是。DynamoDB 是專有、全受管的 AWS 服務 — 原始碼並未公開,而且你無法自行託管正式環境的引擎。至於本機開發,AWS 提供了 DynamoDB Local,一個免費、可下載的模擬器,另外也有一些第三方資料庫宣稱提供你可以自行執行的 DynamoDB 相容 API。
這在實務上代表什麼
DynamoDB 只在 AWS 內部執行。你是以 API 的形式消費它 — 沒有伺服器軟體可下載、可授權、可檢視或可維運,也沒有社群版。那同時也是它的賣點:AWS 負責建置、修補、複寫、擴充與備份,而這個服務沒有版本,也沒有維護時段。
DynamoDB Local 是免費的,不是開放的
AWS 提供 DynamoDB Local,一個可在你電腦上執行的 DynamoDB 下載版,形式為 Docker 映像檔、Java archive 或 Apache Maven 相依項。它免費可用、可離線運作,但它是供開發與測試用的模擬器 — 不是正式環境的引擎,而且同樣不是開源的。
模擬器不是引擎
這個落差比授權更重要,因為模擬器從不強制執行容量。建一張 1 RCU 的表格,存一個略小於 4 KB 的項目,然後在循序迴圈中以強一致方式讀回它:
for (let i = 0; i < 500; i++) {
await client.send(
new GetItemCommand({TableName: 'demo', Key: {pk: {S: 'HOT'}}, ConsistentRead: true})
);
}500 次讀取在 353 毫秒內完成,而且沒有任何東西被節流。那大約是每秒 1,400 次強一致讀取,而那張表格只佈建了一個單位。模擬器收下 ProvisionedThroughput,然後忽略它。
對真正的服務執行同樣形狀的迴圈,會在第 49 次讀取時被節流,也就是累積的爆量額度用完之後。
所以一次在本機一路綠燈的負載測試,對容量什麼都沒告訴你。本機測試重試與退避也一樣沒用,因為根本沒有東西會被節流到需要重試。
相容的替代方案
由於 DynamoDB API 有完整文件,有些開源與第三方資料庫實作了 DynamoDB 相容的 endpoint。相容程度因功能而異,所以在把它們任何一個當成無痛替代品之前,請先驗證你仰賴的那些操作(交易、streams、secondary index)。
深入了解
用 DynamoDB Local 指南在本機執行模擬器,在運算式建構器裡以視覺化方式建構查詢,並下載 DynoTable — 它能同時連接 AWS 與本機端點。
參考資料
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Setting up DynamoDB local (downloadable version) — Amazon DynamoDB Developer Guide
- Fast NoSQL Key-Value Database — Amazon DynamoDB — AWS
最後驗證於 2026-07-13,對照上方連結的官方 AWS 文件。
已於 2026-07-28 在 Node v24.18.0 上,透過 @aws-sdk/client-dynamodb 3.1095.0 對照 DynamoDB Local 3.3.0 量測。第 49 次讀取那個線上服務的數字,來自我們自己較早前對 us-east-1 的 DynamoDB 所做的重現。