跳到主要內容
Database資料庫初級CLF-C02SAA-C03

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 等必要操作
  • 儲存個人資訊時須留意日誌輸出與存取權限

相關服務

相關比較文章

相關架構圖

標籤

databasenosqlserverless

最後更新日: 2026-06-01