DynamoDB
Amazon DynamoDB
無需管理伺服器即可使用的 AWS NoSQL 資料庫。
一句話說明
無需管理伺服器即可使用的 AWS NoSQL 資料庫。
概要
無伺服器的 NoSQL 資料庫。可依鍵值設計進行高速讀寫,容易應對容量與存取量增加。
主要用途
- 儲存諮詢資料
- 儲存使用者設定
- 存取模式明確的應用程式資料
CLF-C02 考試重點
- 為 NoSQL 的受管資料庫
- 可選擇按需計費
- 以分割鍵為核心進行設計
SAA-C03 考試重點
- 依存取模式進行資料表設計
- 避免大量使用 Scan,以 Query 為主
- 理解 DAX 與 GSI 的用途後再使用
實際使用情境
Amazon DynamoDB 是 AWS 提供的全託管 NoSQL 資料庫服務。伺服器的佈建、OS 修補、叢集管理皆由 AWS 負責,開發者可專注於資料表設計與應用程式程式碼。 **設計的核心是以存取模式驅動**。DynamoDB 透過分區鍵(PK)與選用的排序鍵(SK)來識別資料。分區鍵相同的項目會儲存於同一分區,基於排序鍵範圍的 Query 可達到高速。資料表設計應依「先列舉存取模式,再以鍵結構表現這些模式」的順序進行,不採取像 RDB 般正規化後再 JOIN 的做法。 **Query 與 Scan 的區分使用**是重要的最佳化要點。Query 指定分區鍵並使用索引,因此快速且低成本;Scan 則順序掃描整個資料表,隨資料量增加而變得緩慢且高成本。在正式環境中應避免大量使用 Scan,標準的設計模式是建立 GSI(全域次要索引)並以 Query 解決。 **容量模式**有 2 種。隨需模式依存取量自動擴展,未使用部分不計費。預先佈建模式則需事先指定 RCU(讀取容量單位)/ WCU(寫入容量單位),並搭配 Auto Scaling 使用。 **DynamoDB Streams** 是可即時取得資料表變更(INSERT / MODIFY / REMOVE)的事件串流功能。可與 Lambda 連動,實作事件驅動的處理(複寫、通知、彙總)。 **透過 IAM 進行存取控制**時,應以動作為單位(`PutItem` / `GetItem` / `Query` / `Scan` 等)而非資料表為單位授予權限。遵循最小權限原則,僅授予 Lambda 函式所需操作的 IAM 角色。 SAA-C03 會考 GSI / LSI(本地次要索引)的設計、DAX(DynamoDB Accelerator)所提供的記憶體內快取、DynamoDB Streams + Lambda 的整合模式,以及與 RDS 的區分選用判斷基準。
官方文件
成本注意事項
- 按需模式適合小規模與存取量變動的情境
- 大量使用 Scan 在資料量增加時會導致成本上升
安全性注意事項
- 透過 IAM 僅允許 PutItem 等必要操作
- 儲存個人資訊時須留意日誌輸出與存取權限
相關服務
相關比較文章
相關架構圖
標籤
最後更新日: 2026-06-01
上一個術語
AWS Cost Explorer
下一個術語
Amazon Elastic Block Store