什麼是 Amazon DynamoDB? - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

什麼是 Amazon DynamoDB?

Amazon DynamoDB 是一種無伺服器的 NoSQL 全受管資料庫,在任何規模下都具有 10 毫秒的效能。

DynamoDB 可滿足您克服關聯式資料庫擴展和操作複雜性的需求。DynamoDB 是專為需要任何規模一致效能的作業工作負載打造且經過最佳化。例如,無論您有 10 億或 1 億使用者,DynamoDB 都能為購物車使用案例提供一致的 10 毫秒效能。DynamoDB 於 2012 年推出,持續協助您擺脫關聯式資料庫,同時降低成本並大規模提升效能。

各種規模、產業和地理區域的客戶使用 DynamoDB 建置現代化的無伺服器應用程式,這些應用程式可以從小規模開始並在全球擴展。DynamoDB 可擴展以支援幾乎任何大小的表格,同時提供一致的 10 毫秒效能和高可用性。

對於 Amazon 黃金日等活動,DynamoDB 為多個高流量的 Amazon 屬性和系統提供支援,包括 Alexa、Amazon 網站和所有亞馬物流中心。針對這類事件,DynamoDB API 已處理來自 Amazon 屬性和系統的數兆個呼叫。DynamoDB 會持續為數百名客戶提供每秒尖峰流量超過 50 萬個請求的資料表。它還為數百名表格大小超過 200 TB 的客戶提供服務,並且每小時處理超過 10 億個請求。

DynamoDB 的特性

無伺服器

使用 DynamoDB,您不需要佈建任何伺服器,也不需要修補、管理、安裝、維護或操作任何軟體。DynamoDB 提供零停機時間維護。它沒有版本(主要版本,次要或修補程序),並且沒有維護窗口。

DynamoDB 的隨需容量模式提供讀取和寫入請求的 pay-as-you-go 定價,因此您只需按使用量付費。透過隨需,DynamoDB 可立即擴展或縮減您的表格,以調整容量並維持效能,而且不需要管理。它還可以縮小到零,因此當您的表沒有流量並且沒有冷啟動時,您無需支付輸送量費用。

NoSQL

DynamoDB 做為 NoSQL 資料庫是專門打造的,相較於傳統的關聯式資料庫,可提供更好的效能、擴充性、管理性和彈性。為了支援各種使用案例,DynamoDB 同時支援鍵值和文件資料模型。

與關聯式資料庫不同,DynamoDB 不支援 JOIN 運算子。我們建議您對資料模型進行非規範化,以減少回答查詢所需的資料庫往返和處理能力。DynamoDB 做為 NoSQL 資料庫,提供強大的讀取一致性ACID 交易,以建置企業級應用程式。

完全受管

DynamoDB 是一項完全受控的資料庫服務,可處理管理資料庫的無差別繁重工作,讓您可以專注於為客戶建立價值。它可處理設定、組態、維護、高可用性、硬體佈建、安全性、備份、監控等。這可確保您在建立 DynamoDB 表時立即為生產工作負載做好準備。DynamoDB 不斷提高其可用性、可靠性、效能、安全性和功能,無需升級或停機。

任何規模均具有個位數毫秒的效能

DynamoDB 專為改善關聯式資料庫的效能和延展性而打造,以提供任何規模的 10 毫秒效能。為了實現這種規模和效能,DynamoDB 針對高效能工作負載進行了最佳化,並提供可促進資料庫使用效率的 API。它會省略效率低下且大規模效能不佳的功能,例如 JOIN 作業。無論您有 1 億或 1 億使用者,DynamoDB 都能為您的應用程式提供一致的 10 毫秒效能。

使用案例

各種規模、產業和地理區域的客戶使用 DynamoDB 建置現代化的無伺服器應用程式,這些應用程式可以從小規模開始並在全球擴展。DynamoDB 非常適合需要在任何規模提供一致效能的使用案例,而且營運開銷很少至零。下列清單顯示您可以在其中使用 DynamoDB 的一些使用案例:

  • 金融服務應用程序 — 假設您是一家金融服務公司,構建應用程序,例如實時交易和路由,貸款管理,令牌生成和交易分類帳。使用 DynamoDB 全域表,您的應用程式可以透過快速的本機讀取和寫入效能回應事件,並為您選擇 AWS 區域 的流量提供服務。

    DynamoDB 適用於具有最嚴格可用性需求的應用程式。它消除了手動擴展執行個體的操作負擔,以增加儲存或輸送量、版本控制和授權。

    您可以使用 DynamoDB 交易,透過單一要求在一或多個表格之間實現原子性、一致性、隔離性和耐久性 (ACID)。(ACID) 交易適合包括處理金融交易或履行訂單的工作負載。DynamoDB 可在工作負載上升或減少時立即容納工作負載,讓您有效地根據市場條件 (例如交易時間) 擴展資料庫。

  • 戲應用程式 — 身為遊戲公司,您可以將 DynamoDB 用於遊戲平台的所有部分,例如遊戲狀態、玩家資料、工作階段歷史記錄和排行榜。選擇 DynamoDB 的規模、一致的效能以及無伺服器架構所提供的簡易操作。DynamoDB 非常適合支援成功遊戲所需的向外延展架構。它可以快速擴展遊戲的輸送量進出(無需冷啟動即可擴展到零)。無論您是要向外擴展以獲得尖峰流量,還是在遊戲用量低時縮減,這種可擴展性都可以優化架構的效率。

  • 串流應用程式 — 媒體和娛樂公司使用 DynamoDB 做為內容、內容管理服務的中繼資料索引,或提供近乎即時的體育統計資料。他們還使用 DynamoDB 來執行使用者監看清單和書籤服務,並處理每日數十億個客戶事件以產生建議。這些客戶將受益於 DynamoDB 的可擴充性、效能和備援能力。DynamoDB 可隨著工作負載變更的增加或縮減而擴展,讓串流媒體使用案例能夠支援任何層級的需求。

若要進一步了解來自不同產業的客戶如何使用 DynamoDB,請參閱 Amazon DynamoDB 客戶這是我的架構。

DynamoDB 支援的功能

具有全域表的多重作用中複製

全域表提供您所選資料的多重作用中複寫,並 AWS 區域 具有 99.999% 的可用性。全域資料表提供完全受控的解決方案,可部署多區域、多重作用中的資料庫,而無需建置和維護您自己的複寫解決方案。使用全域表格,您可 AWS 區域 以指定表格可用的位置。DynamoDB 會將持續的資料變更複寫到所有這些表格。

您的全球分散式應用程式可在您選取的區域本機存取資料,以達到 10 毫秒的讀寫效能。由於全域資料表是多重作用中的資料表,因此您不需要主資料表。這表示在區域之間進行應用程式容錯移轉時,不會有複雜或延遲的容錯移轉或資料庫停機時間。

ACID 交易

DynamoDB 是專為關鍵任務工作負載而建置的。它包括對需要複雜業務邏輯的應用程序(ACID)事務支持。DynamoDB 為交易提供原生的伺服器端支援,簡化開發人員在表格內部和跨表格對多個項目進行協調 all-or-nothing 變更的體驗。

變更事件驅動架構的資料擷取

DynamoDB 支援以近乎即時的方式串流項目層級變更資料擷取 (CDC) 記錄。它提供兩種適用於 CDC 的串流模型:DynamoDB Streams 和適用於 DynamoDB 的 Kinesis Data Streams。每當應用程式建立、更新或刪除資料表中的項目時,串流會以近乎即時的方式記錄每個項目層級變更的時間順序序列。這使 DynamoDB Streams 非常適合具有事件導向架構的應用程式使用並對變更採取行動。

次要索引

DynamoDB 提供建立全域和本機次要索引的選項,可讓您使用其他索引鍵查詢資料表資料。使用這些次要索引,您可以使用主索引鍵以外的屬性存取資料,從而為您提供存取資料的最大彈性。

服務整合

DynamoDB 與數個 AWS 服務 廣泛整合,可協助您從資料中獲得更多價值、消除無差異的繁重工作,並大規模操作工作負載。一些例子是: AWS CloudFormation CloudWatch,Amazon,Amazon S3, AWS Identity and Access Management (IAM)和 AWS Auto Scaling. 下列各節說明您可以使用 DynamoDB 執行的一些服務整合:

無伺服器整合

若要建置 end-to-end 無伺服器應用程式,DynamoDB 會與許多無伺服器原生整合。 AWS 服務例如,您可以將 DynamoDB 與 AWS Lambda 整合以建立觸發器,觸發器是自動回應 DynamoDB Streams 中事件的程式碼片段。使用觸發器,您可以建置事件驅動的應用程式,以回應 DynamoDB 表中的資料修改。為了進行成本最佳化,您可以從 DynamoDB 串流篩選 Lambda 處理的事件

下列清單顯示與 DynamoDB 無伺服器整合的一些範例:

將資料匯入和匯出到 Amazon S3

將 DynamoDB 與 Amazon S3 整合可讓您輕鬆將資料匯出到 Amazon S3 儲存貯體,以進行分析和機器學習。DynamoDB 支援完整表格匯出和增量匯出,以便在指定時段內匯出已變更、更新或刪除的資料。您也可以將資料從 Amazon S3 匯入新的 DynamoDB 資料表。

零 ETL 整合

DynamoDB 支援與 Amazon 紅移和亞馬遜服務的零 ETL 整合。 OpenSearch 這些整合可讓您執行複雜的分析,並在 DynamoDB 表格資料上使用進階搜尋功能。例如,您可以對 DynamoDB 資料執行全文檢索和向量搜尋,以及語意搜尋。零 ETL 整合不會影響 DynamoDB 上執行的生產工作負載。

快取

DynamoDB 加速器 (DAX) 是專為 DynamoDB 建置的全受管、高可用性快取服務。DAX 可提供高達 10 倍的效能改善 (從毫秒到微秒),即使每秒有數百萬個要求也是如此。DAX 可完成將記憶體內加速新增至 DynamoDB 表格所需的所有繁重工作,而不需要您管理快取失效、資料填入或叢集管理。

安全

DynamoDB 利用身分與存取權管協助您安全地控制 DynamoDB 資源的存取。使用 IAM,您可以集中管理許可,以控制哪些 DynamoDB 使用者可以存取資源。您可以使用 IAM 來控制能通過身分驗證 (登入) 和授權使用資源的 (具有許可) 的人員。由於 DynamoDB 會使用 IAM,因此沒有使用者名稱或密碼可用來存取 DynamoDB。因為您不需要管理任何複雜的密碼輪換原則,因此可簡化您的安全性狀態。透過 IAM,您還可以啟用精細的存取控制,以在屬性層級提供授權。您也可以定義以資源為基礎的政策,支援 IAM 存取分析器封鎖公用存取 (BPA),以簡化政策管理。

根據預設,DynamoDB 會加密所有靜態客戶資料。靜態加密會使用 AWS Key Management Service(AWS KMS) 中儲存的加密金鑰來增強資料的安全性。您可以透過靜態加密,建立符合嚴格加密合規和法規要求,而且對安全性要求甚高的應用程式。當您存取加密的資料表,DynamoDB 會以透明方式解密資料表資料。您不必變更任何代碼或應用程式來使用或管理加密的資料表。DynamoDB 會持續提供與您預期相同的 10 毫秒延遲,而且所有 DynamoDB 查詢都能在您的加密資料上順暢運作。

您可以指定 DynamoDB 是否應使用 AWS 擁有的金鑰 (預設加密類型) 或客戶管理的金鑰來加密使用者資料。 AWS 受管金鑰使用AWS擁有的 KMS 金鑰進行預設加密,無需額外付費。對於客戶端加密,您可以使用AWS 數據庫加密 SDK

DynamoDB 也遵循多種合規標準,包括 HIPAA、PCI DSS 和 GDPR,可讓您符合法規要求。

恢復能力

根據預設,DynamoDB 會自動跨三個可用區域複寫您的資料,以提供高耐久性和 99.99% 的可用性 SLA。DynamoDB 也提供其他功能,協助您實現業務持續性和災難復原目標。

DynamoDB 包含下列功能,可協助支援您的資料復原和備份需求:

全域資料表

DynamoDB 全域資料表可提供 99.999% 的可用性 SLA 和多區域恢復能力。這可協助您建置彈性應用程式,並針對最短的復原時間目標 (RTO) 和復原點目標 (RPO) 進行最佳化。全域資料表也與 AWS Fault Injection Service (AWS FIS) 整合,可針對您的全域資料表工作負載執行錯誤注入實驗。例如,暫停對任何複本表格的全域表格複寫。

持續備份與 point-in-time 復原

持續備份提供您每秒的精細度,以及啟動復原的能力。 point-in-time 使用 point-in-time 復原功能,您可以將資料表還原到過去 35 天內的任何時間點,直到第二個時間點。

連續備份和啟動 point-in-time 還原不會使用佈建的容量。它們也不會對應用程式的效能或可用性造成任何影響。

隨需備份與還原

隨需備份與還原可讓您建立表格的完整備份,以便長期保留和封存,以符合法規遵循需求。備份不會影響資料表的效能,您可以備份任何大小的資料表。透過AWS Backup 整合,您可以用 AWS Backup 來自動排程、複製、標記和管理 DynamoDB 隨選備份的生命週期。使用時 AWS Backup,您可以跨帳戶和區域複製隨需備份,並將較舊的備份轉換為冷存儲以實現成本優化。

存取 DynamoDB

您可以使用AWS Management Console、、或 DynamoDB API 來使用 DynamoDBAWS Command Line InterfaceDynamoDB 專用 NoSQL Workbench

DynamoDB

DynamoDB 會針對資料表中的讀取、寫入和儲存資料收費,以及您選擇啟用的任何選用功能。DynamoDB 具有兩種容量模式,其各自的計費選項可用於處理表格上的讀取和寫入:隨需和佈建。

DynamoDB 也提供免費方案,可提供 25 GB 的儲存空間。免費方案還包括 25 個佈建的寫入和 25 個佈建的讀取容量單位 (WCU、RCU),足以每月處理 200 M 個要求。

如需詳細資訊,請參閱 Amazon DynamoDB 定價。

DynamoDB 入門

如果您是 DynamoDB 的首次使用者,建議您先閱讀下列主題:

  • DynamoDB 入門— 引導您完成 DynamoDB 設定、建立範例表和上傳資料的程序。本主題也提供有關使用 AWS Management Console、 AWS CLI、NoSQL 工作台和 DynamoDB API 執行某些基本資料庫作業的相關資訊。

  • 核心元件 — 描述基本的 DynamoDB 概念。

  • 使用 DynamoDB 進行設計和架構的最佳實務— 提供有關 NoSQL 設計、DynamoDB Well-Architected 的鏡頭、表格設計和其他數個 DynamoDB 功能的相關建議。這些最佳實務可協助您在使用 DynamoDB 時將效能最大化並將輸送量成本降至最低。

我們也建議您檢閱下列提供完整 end-to-end 程序的教學課程,以熟悉 DynamoDB。您可以使用的免費層完成這些教學課程 AWS。

如需遷移至 DynamoDB 的資源、工具和策略的相關資訊,請參閱移轉至 DynamoDB。若要閱讀最新的部落格和白皮書,請參閱 Amazon DynamoDB 資源。