Amazon DynamoDB 特徵

為何使用 DynamoDB?

Amazon DynamoDB 是一種支援鍵值文件資料模型的無伺服器 NoSQL 資料庫服務。開發人員可使用 DynamoDB 來建置現代的無伺服器應用程式,這些應用程式可從小規模開始並在全球擴展。DynamoDB 可透過自動執行水平擴展來進行擴展,以支援幾乎任何大小的資料表。

可用性、耐久性和容錯能力是內建功能且無法關閉,可讓您不需為這些功能架構應用程式。

DynamoDB 的設計是要執行可能使得傳統關聯式資料庫不堪負載的高效能、網際網路規模的應用程式。DynamoDB 憑藉十多年的開拓性創新投資經驗,可提供無限的可擴展性,同時提供回應不到 10 毫秒的一致效能和高達 99.999% 的可用性。

若要了解新功能和能力,請造訪 DynamoDB 新增功能公告

無伺服器效能與無限的可擴展性

DynamoDB 同時支援鍵值和文件資料模型。做為 NoSQL 資料庫,DynamoDB 具有靈活的結構描述,因此,每個項目都能有許多不同的屬性。靈活的結構描述可讓您隨業務需求變更輕鬆調整,而沒有如同在關聯式資料庫般,必須重新定義資料表結構描述的負擔。

使用 DynamoDB,不需佈建、修補或管理任何伺服器,也不需安裝、維護或操作任何軟體。DynamoDB 沒有版本 (主要版本、次要版本或修補程式),也沒有維護時段,而且 DynamoDB 提供零停機時間維護服務。 DynamoDB 隨需定價提供依用量計費定價、擴展至零,並自動擴展資料表以根據容量進行調整,且無需管理即可維持效能。

DynamoDB 適用於關鍵任務工作負載,包括針對需要複雜商業邏輯的應用程式,支援單元性、一致性、隔離性和耐用性 (ACID) 交易。DynamoDB 為交易提供原生的伺服器端支援,簡化開發人員對資料表內或資料表間的多個項目進行協調式、全有或全無變更的體驗。

DynamoDB 支援每筆交易 100 個動作,以改善開發人員的生產力。利用對於交易的支援,開發人員可以將 DynamoDB 的規模、效能和企業優勢延伸至更廣泛的一組關鍵任務工作負載。

DynamoDB 全域資料表可在您選擇的 AWS 區域中,以 99.999% 的可用性對您的資料進行主動-主動式複寫。全域資料表為多重主動式,意味著您可從任何複本進行寫入和讀取,而且您全域複寫的應用程式可在選定的區域中本機存取資料,以獲得個位數毫秒的讀取與寫入效能。

此外,全域資料表可自動擴展容量,以因應您的多區域工作負載。全域資料表可改善應用程式的多區域彈性,並且應視為組織業務持續性策略的一部分。

DynamoDB Streams 是一項變更資料擷取功能。每當應用程式建立、更新或刪除資料表中的項目時,DynamoDB Streams 都會以近乎即時的速度,按時序序列記錄每個項目層級變更,因此非常適合事件導向型架構應用程式取用和處理變更。所有變更會解除複製並存放 24 小時。

此外,應用程式還可存取此日誌,並在資料項目經過近乎即時地修改之前和之後出現時檢視這些項目。DynamoDB Streams 確保每則串流記錄在串流中只出現一次,而且對於每個修改的項目,串流記錄的出現順序與項目的實際修改相同。

與所有其他資料庫系統類似,您可從建立資料表開始,該資料表是一個項目集合。使用 DynamoDB 時,資料表中的每個項目都有其自己的主索引鍵。此外,許多應用程式還可受益於擁有一個或多個輔助索引鍵,以使用其他屬性更有效地搜尋資料。DynamoDB 提供建立全域和本機次要索引的選項,這可讓您使用次要或替代索引鍵來查詢資料表中的資料。

全域次要索引也稱為稀疏索引。除了為您提供資料存取方式的最大靈活性之外,您還能夠以較低的成本、優異的效能來佈建較低的寫入輸送量

安全與可靠性

使用 DynamoDB 時,無需使用者名稱或密碼。DynamoDB 使用 AWS Identity and Access Management (IAM) 進行身分驗證、建立和存取資源。您可根據該使用者的身分,指定 IAM 政策以資源為基礎的政策和條件,以進行精細存取、限制對資料表中特定項目和屬性的讀取或寫入存取。這可讓客戶在程式碼層級強制執行安全政策。

DynamoDB 預設會加密所有客戶靜態資料。 靜態加密會使用 AWS Key Management Service (KMS) 中存放的加密金鑰來增強資料的安全性。 除了 AWS 資料庫加密 SDK 之外,您還可以執行屬性層級加密,進一步對表格中的資料強制執行精細的存取控制。DynamoDB 可讓您透過靜態加密,建立符合嚴格加密合規和法規要求,而且對安全性要求甚高的應用程式。

加密金鑰可保護您的資料,防止未經授權存取基礎儲存,進而提供額外的資料保護層。 您可以指定 DynamoDB 是否應使用 AWS 擁有的金鑰 (預設加密類型)、AWS 受管金鑰,或客戶受管金鑰來加密使用者資料。使用 AWS KMS key 進行的預設加密可免費提供。

時間點復原 (PITR) 有助於保護您的 DynamoDB 資料表免遭意外寫入或刪除操作。 PITR 提供 DynamoDB 資料表資料的持續備份,而您可以將該資料表的資料還原至前 35 天內任何時間點,最多可恢復到秒。

PITR 不會使用佈建的容量,也不會影響應用程式的效能或可用性。啟用 PITR 或起始備份和還原操作非常簡單,只要在 AWS 管理主控台完成一步操作或使用單一 API 呼叫即可。

隨需備份與還原可讓您完整備份 DynamoDB 表資料以進行資料存檔,協助您符合公司與政府的法規要求。您可以備份資料量從幾 MB 到數百 TB 不等的表格,不會對生產應用程式的效能或可用性造成影響。 透過 AWS Backup 整合,您還可以複製跨帳戶和跨區域的隨需備份、對備份標記成本分配,以及將備份轉移至冷儲存。

DynamoDB 支援閘道虛擬私有雲端 (VPC) 端點和介面 VPC 端點,用於 VPC 內或內部部署資料中心的連線。您可透過使用 AWS PrivateLink 啟用的介面 VPC 端點,設定從內部部署應用程式到 DynamoDB 的私有網路連線。這讓客戶能夠簡化與 DynamoDB 的私有連線並確保合規。

成本效益

DynamoDB 為每個資料表提供容量模式:隨需和佈建。

  • 針對較無法預測的工作負載,您無法確定是否會有高使用率,那麼,隨需容量模式可為您處理容量的管理,而您只需要對使用的部分付費。
  • 使用佈建容量模式的資料表需要您設定讀取與寫入容量。當您確定所指定的佈建容量會有相當高的使用量,則佈建容量模式會較具成本效益。 

針對使用隨需容量的資料表,當工作負載急速增加或下降至任何先前達到的流量層級時,DynamoDB 會快速容納它。如果工作負載的流量層級達到新的尖峰,DynamoDB 會快速調整以容納工作負載。您還可以選擇性地為個別隨需資料表和關聯的次要索引設定讀取或寫入 (或兩者) 輸送量上限,從而輕鬆平衡成本與效能。您可以對新的和現有資料表使用隨需容量模式,而且可以繼續使用現有的 DynamoDB API,不需變更程式碼。

針對不常存取的資料,您可以使用 Amazon DynamoDB 標準 – IA 資料表類別,這有助於將 DynamoDB 成本降低高達 60%。標準 – IA 資料表專為長期儲存不常存取的資料而設計了較低的儲存成本,例如應用程式日誌、歷史遊戲資料、舊社交媒體貼文等等。其具有與 Amazon DynamoDB 標準資料表相同的可用性、耐久性和效能,這對於大多數工作負載來說是預設且最具成本效益的選項。

針對使用佈建容量的資料表,DynamoDB 會根據您之前設定的容量來提供輸送量和儲存的自動擴展,方法是監控應用程式的效能使用量。

  • 如果應用程式流量成長,DynamoDB 會增加輸送量來容納負載。
  • 如果您的應用程式流量縮減,DynamoDB 會向下縮減,使得您對未使用的容量付較少的費用。

與 AWS 服務整合

從 Amazon Simple Storage Service (Amazon S3) 大量匯入和匯出可協助您從資料中取得更大價值,無需撰寫程式碼即可將 DynamoDB 資料表從一個應用程式、帳戶或區域移動、轉換和複製到另一個。大量匯入和匯出不會使用資料表的讀取或寫入容量,因此,您無需規劃或佈建額外的容量。大量匯入和匯出程序完全由 DynamoDB 管理。

從 Amazon S3 大量匯入可讓您使用支援的格式 (包括 CSV、DynamoDB JSON 和 Amazon Ion),匯入從 MB 到 TB 任意規模的資料。 相較於使用佈建容量的用戶端型寫入,使用從 Amazon S3 大量匯入時,客戶最多可節省 66% 的費用

透過大量匯出至 Amazon S3,您可在過去 35 天內的任意時間點 (每秒精細度),從啟用 PITR 的資料表匯出資料。將資料從 DynamoDB 匯出至 Amazon S3 之後,您可以使用其他 AWS 服務 (例如 Amazon Athena、Amazon SageMaker 等) 來分析您的資料並擷取可行的洞察。

Amazon Kinesis Data Streams for DynamoDB 可擷取 DynamoDB 資料表中的項目層級變更,以便支援即時儀表板、產生指標,以及將資料傳遞至資料湖。Kinesis Data Streams 可讓建立各種進階串流應用程式,例如即時日誌彙總、即時商業分析和 IoT 資料擷取。

透過 Kinesis Data Streams,您還可以使用 Amazon Kinesis Data Firehose 將 DynamoDB 資料自動傳遞至其他 AWS 服務,例如 Amazon S3、Amazon OpenSearch Service 和 Amazon Redshift。

為了輕鬆監控資料庫效能,DynamoDB 已與 Amazon CloudWatch 整合,這樣可收集和處理原始資料庫效能資料。您可以使用 CloudWatch,為您的 DynamoDB 資料庫建立指標和警示的自訂檢視和儀表板。預設會提供此監控功能且免費使用。此外,您還可以建立警示,以便依據指標效能自動傳送給您。

Amazon CloudWatch Contributor Insights 可協助您快速識別對資料庫和應用程式效能造成影響的人員或內容。此功能可讓您更輕鬆地在發生操作事件時,更迅速地隔離、診斷及化解問題。

常見問答集

DynamoDB 的獨特優勢包括:它是久經驗證的全受管、可擴展至零的無伺服器資料庫,可提供回應不到 10 毫秒的效能和高達 99.999% 的可用性。憑藉其大規模且一致的效能,DynamoDB 還提供內建的安全性、耐久性和可靠性,可滿足最嚴苛要求的全域應用程式所需。

憑藉其易用性,DynamoDB 通常適用於尋求一致、快速效能與無限可擴展性的新型現代應用程式,以及已建立的網際網路規模應用程式。

DynamoDB 專為開發人員打造,因為它無伺服器,因此使用我們的技術文件可以非常輕鬆地完成設定。