Amazon DynamoDB 是一項 Amazon Web Services (AWS) 提供的全受管、多重區域、多重主動模式的 NoSQL 資料庫服務。它專為需要高效能、高擴展性且低延遲的應用程式而設計。
簡單來說,如果你需要一個資料庫來處理極高的讀寫吞吐量,並在任何規模下提供個位數毫秒的延遲,同時又不希望管理複雜的伺服器基礎設施,那麼 DynamoDB 就是一個理想的選擇。它與傳統關聯式資料庫(如 MySQL、PostgreSQL)不同,屬於 Key-Value 和文件型資料庫。主要概念與特點:
- NoSQL 資料庫:
- DynamoDB 是一個非關聯式資料庫,主要支援 Key-Value (鍵值) 和文件 (Document) 資料模型。
- 這意味著它非常適合儲存和查詢半結構化或非結構化資料,並且具有高度的彈性,可以隨應用程式的需求演變資料結構。
- 與傳統 SQL 資料庫不同,它沒有固定的表格結構,不需要預先定義所有欄位。
- 全受管服務:
- AWS 負責所有的資料庫管理任務,包括硬體佈建、叢集設定、修補、備份、恢復、故障偵測、自動故障轉移、以及擴展。
- 這大大降低了運營負擔,讓您可以專注於應用程式開發和業務邏輯。
- 高性能和低延遲:
- DynamoDB 承諾在任何規模下提供個位數毫秒的延遲。無論您的數據量有多大,從幾個 GB 到數百 TB,它都能保持一致的低延遲性能。
- 這是透過其分散式架構和 SSD 固態硬碟儲存實現的。
- 高擴展性:
- DynamoDB 可以處理每秒數百萬個請求。它的儲存和輸送量(讀寫能力)都可以根據需求自動或手動進行擴展,而無需停機。
- 容量模式: 按需模式 (On-Demand Capacity Mode): 自動根據工作負載調整讀寫容量,無需預先佈建,按實際使用量付費,適合流量不可預測的應用。 佈建模式 (Provisioned Capacity Mode): 您需要預先佈建讀取容量單位 (RCU) 和寫入容量單位 (WCU),成本效益更高,適合流量可預測的應用。
- 高可用性與耐用性:
- 資料會自動在多個可用區域 (Availability Zones, AZs) 中同步複製。這提供了高可用性,即使單一 AZ 發生故障,資料也仍然可用。
- 設計為 99.999999999% (11 個 9) 的資料耐用性。
- 全域資料表 (Global Tables): 允許您在多個 AWS 區域中擁有完全受管的多主動模式 (multi-master) 資料表,為全球應用程式提供更低的延遲和更高的區域性可用性。
- 內建安全功能:
- 資料在靜態和傳輸中都受到加密保護。
- 整合 AWS IAM 進行精細的存取控制。
- 支持 VPC Endpoint,確保網路流量不經過公共網際網路。
- 成本效益:
- 按實際使用的讀寫能力和儲存容量付費,沒有最低費用。
- 相較於自行架設和維護高性能 NoSQL 資料庫,通常更具成本效益。
典型使用案例:
- 無伺服器應用程式: 作為 AWS Lambda 函數、API Gateway 後端的資料庫。
- Web 應用程式: 用於使用者會話管理、使用者設定檔、產品目錄等,應對高併發流量。
- 行動應用程式: 儲存使用者資料、遊戲狀態、應用程式設定等。
- 遊戲: 儲存玩家數據、排行榜、遊戲進度。
- 物聯網 (IoT): 收集和儲存來自感測器和設備的大量時間序列數據。
- 微服務架構: 作為微服務的獨立資料儲存層。
總之,Amazon DynamoDB 是一個極為強大、可靠且易於使用的 NoSQL 資料庫,特別適合需要極高性能、高擴展性和無需管理資料庫基礎設施的應用程式。



















