DynamoDB vs Amazon Aurora
DynamoDB 還是 Aurora 適合我的工作負載?
Amazon DynamoDB 是全受管的 NoSQL 鍵值與文件儲存,專為任何規模下的個位數毫秒效能而打造,且沒有固定 schema。Amazon Aurora 是相容 MySQL 與 PostgreSQL 的受管關聯式資料庫,使用完整 SQL,具備表格、joins 與 ACID 交易。若需要高規模的鍵值存取,選 DynamoDB;若需要關聯式查詢,選 Aurora。
DynamoDB vs Amazon Aurora 一覽
| 特性 | DynamoDB | Amazon Aurora |
|---|---|---|
| 資料模型 | NoSQL 鍵值與文件儲存;無 schema(僅需 primary key) | 關聯式:具有已定義 schema 與關係的結構化表格、列與欄 |
| 查詢語言 | AWS SDK/API 操作外加 PartiQL,一種用於 select/insert/update/delete 的 SQL 相容查詢語言 | 完整 SQL,相容 MySQL 或 PostgreSQL |
| Joins | 沒有伺服器端 joins;你需事先為存取模式建模(通常採單一表格設計) | 透過關聯式引擎,跨表格原生 SQL JOIN |
| 索引 | local 與 global secondary index(LSI / GSI) | MySQL/PostgreSQL 提供的標準關聯式索引(primary 與 secondary) |
| 一致性 | 預設為最終一致讀取;可依請求使用強一致讀取 | 強一致,具備完整關聯式完整性 |
| 擴充 | 跨 partition 水平擴充;每個表格的項目數或表格大小沒有上限;隨需或佈建容量 | 一個 writer 外加最多 15 個低延遲唯讀複本,橫跨三個可用區域;儲存自動成長至 256 TiB;Aurora Serverless v2 自動擴充容量 |
| 交易 | 單一 Region 內最多 100 個項目(合計 4 MB)的 ACID 交易 | 完整的多語句 ACID 交易 |
| 定價模型 | 隨需或佈建容量(讀/寫單位)外加儲存 | 執行個體容量(On-Demand 或 Reserved)或 Aurora Serverless v2,外加儲存與 I/O |
| 最適合 | Web 規模的鍵值/文件工作負載,可預測的低延遲 | 需要 joins、複雜查詢與 SQL 熟悉度的關聯式工作負載 |
何時 DynamoDB 是較佳選擇
當你的存取模式已知且基於鍵,並且需要隨流量成長仍可預測的個位數毫秒延遲時,DynamoDB 很適合。根據 AWS DynamoDB Developer Guide,它設計為在分散式硬體上向外擴充,項目數量或總表格大小沒有上限,這適合 Web 規模的應用,例如社交網路、遊戲、媒體分享與 IoT。當你想要無伺服器的營運模型、無需調整執行個體大小,以及當彈性、半結構化的項目形狀(包含 JSON)是一項優勢時,它是很好的搭配。若你的工作負載是間歇性或本質為鍵值,DynamoDB 的按請求計費模型可讓成本緊貼使用量。
何時 Aurora 是較佳選擇
Aurora 適合關聯式工作負載:具有真實關係的資料、複雜的臨機查詢、joins、彙總,以及 SQL 為自然工具的報表。由於 Aurora 相容 MySQL 與 PostgreSQL,既有的 SQL 程式碼、工具與 ORM 通常只需極少改動即可運作,已熟練 SQL 的團隊也能延續其技能。當跨許多相關表格的強一致性與關聯式完整性很重要,或當你需要橫跨豐富 schema 的多語句交易時,Aurora 是強力選擇。AWS 也指出兩者往往互補 — 例如 DynamoDB 用於熱路徑,Aurora 用於分析或報表路徑。
使用 DynamoDB
選定 DynamoDB 之後,DynoTable 是一款桌面版 DynamoDB 用戶端,無需 AWS Console 即可瀏覽、編輯與查詢表格。由於 DynamoDB 沒有伺服器端 joins,針對你的鍵與索引表達查詢正是日常工作大部分心力所在。免費的 DynamoDB Expression Builder 協助你組合 key condition、filter expression 與 projection,並產出對應的 SDK、CLI 或 PartiQL 程式碼。DynoTable 是一款閉源商業應用程式;它讀取你標準的 AWS 憑證並直接與 DynamoDB 通訊,因此從其他用戶端切換時無需遷移任何東西。
FAQ
DynamoDB 比 Aurora 便宜嗎?
視工作負載而定 — 兩者都不是普遍較便宜的。DynamoDB 按隨需或佈建的讀/寫容量外加儲存計費,因此成本緊貼請求量,且在閒置時可趨近於零。Aurora 按執行個體容量(或 Aurora Serverless v2)外加儲存與 I/O 計費。對於間歇性的鍵值流量,DynamoDB 的按請求模型往往成本較低;對於持續、高流量的關聯式工作負載,佈建的 Aurora 叢集可能更經濟。決定之前,先為你自己的讀/寫模式建模。
無伺服器應用要選 Aurora 還是 DynamoDB?
兩者都提供無伺服器風格的營運,因此決定因素是資料模型,而非計費模型。DynamoDB 天生就是無伺服器 — 沒有執行個體需要管理、容量自動擴充、按請求定價 — 這適合大規模的鍵值與文件存取。Aurora Serverless v2 自動擴充關聯式引擎(並可在閒置時縮至零),適合真正需要 SQL、joins 與關聯式完整性的無伺服器應用。若是鍵值存取模式選 DynamoDB,若你的應用本質為關聯式則選 Aurora。
相關
- 學習:何時使用 DynamoDB · DynamoDB 的 SQL
- 使用免費的 DynamoDB Expression Builder 快速建立查詢。
- 下載 DynoTable,支援 macOS、Windows 或 Linux。
最後驗證於 2026-07-12,對照 AWS DynamoDB Developer Guide 與 Amazon Aurora 文件。Amazon DynamoDB、Amazon Aurora、MySQL 與 PostgreSQL 為 其各自擁有者的商標;此處引用僅供識別之用。