全域資料表:DynamoDB 的多區域複寫 - Amazon DynamoDB

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

全域資料表:DynamoDB 的多區域複寫

Amazon DynamoDB 全域資料表是全受管、多個區域及多個作用中的資料庫,為大幅擴展的全域應用程式提供快速且本地化的讀寫效能。

全域資料表提供全受管解決方案,用以部署多個區域和多個作用中資料庫,而不需要建置和維護您自己的複寫解決方案。您可以指定要資料表可用的 AWS 區域,DynamoDB 會將正在進行的資料變更傳播至所有區域。全域資料表適用於所有 區域。

使用全域資料表的特定優點包括:

  • 在您的 AWS 區域選擇中自動複寫 DynamoDB 資料表

  • 消除在區域之間複製資料的困難工作並解決更新衝突,讓您可以專注在應用程式的業務邏輯上。

  • 即使在可能性較低整個區域皆隔離或降級的情況下,也能協助您的應用程式保持高可用性。

DynamoDB 全域資料表適用於使用者分散在全球的大規模應用程式。在這類環境中,使用者希望應用程式的效能可以很快。全域資料表提供全球 AWS 區域自動多活動複寫功能。他們可以讓您將低延遲的資料存取交付給使用者,無論他們身在何處。

以下影片將為您介紹全域資料表。

您可以在 AWS 管理主控台或 中設定全域資料表 AWS CLI。全域資料表使用現有的 DynamoDB APIs,因此不需要變更應用程式。您只需為佈建的資源付費,無需前期成本或承諾。

跨區域使用全域資料表無縫複寫資料

假設您有分散在三個地理區域的龐大客戶群:美國東岸、美國西岸和西歐。這些客戶可以使用您的應用程式更新其描述檔資訊。在這個使用案例中,您必須在三個客戶所在的不同 AWS 區域中建立三個相同的 DynamoDB 資料表,且名稱為 CustomerProfiles。這三個資料表將相互完全分開,其中一個資料表的資料變更不會反映在其他資料表。若沒有受管的複寫解決方案,您可能必須撰寫程式碼以複寫資料變更。但是,執行這項作業耗時且費力。

您不需要自己撰寫程式碼,就能建立由三個區域特定的 CustomerProfiles 資料表組成的全域資料表。然後,DynamoDB 會自動在這些資料表之間複製資料變更,以便將對某個區域中的 CustomerProfiles 資料變更順暢地傳播到其他地區。此外,如果其中一個 AWS 區域暫時無法使用,您的客戶仍然可以存取其他區域中的相同CustomerProfiles資料。

注意
  • 全域資料表 全域資料表版本 2017.11.29 (舊版) 的區域支援僅限於美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (加利佛尼亞北部)、美國西部 (奧勒岡)、歐洲 (愛爾蘭)、歐洲 (倫敦)、歐洲 (法蘭克福)、亞太區域 (新加坡)、亞太區域 (雪梨)、亞太區域 (東京) 和亞太區域 (首爾)。

  • 交易操作提供原子度、一致性、隔離和耐久性 (ACID) 保證,僅在原始寫入的 區域中提供。全域資料表不支援跨區域交易。例如,如果您在美國東部 (俄亥俄) 和美國西部 (奧勒岡) 區域擁有具有複本的全域資料表,並在美國東部 (維吉尼亞北部) 區域執行 TransactWriteItems 操作,則可能會在複寫變更時,在美國西部 (奧勒岡) 區域觀察部分完成的交易。只有當變更已在來源區域遞交的情況下,這些變更才會複寫至其他區域。

  • 如果您停用 AWS 區域 ,DynamoDB 會在偵測到 AWS 無法存取區域 20 小時後,從複寫群組中移除此複本。此複本將不會被刪除,而且將會停止從該區域的複寫以及對該區域的複寫。

  • 新增唯讀複本後,您必須等待 24 小時才能成功刪除來源資料表。若您在新增唯讀複本後的前 24 小時內嘗試刪除資料表,您將收到錯誤訊息:「無法刪除複本,因為它在過去 24 小時內做為新增到資料表中的新複本的來源區域」。

  • 新增複本時,不會對來源區域造成效能影響。

  • 當您變更複本的讀取和寫入容量時,新的寫入容量會反映到其他同步複本,但新的讀取容量則不會。

如需 AWS 區域可用性和定價的相關資訊,請參閱 Amazon DynamoDB 定價

為您的全域資料表提供安全性和存取權 AWS KMS

  • 您可以針對客戶受管金鑰AWS 受管金鑰用於加密複本的 ,使用AWSServiceRoleForDynamoDBReplication服務連結角色來執行全域資料表 AWS KMS 的操作。

  • 如果用於加密複本的客戶受管金鑰無法存取,DynamoDB 會將此複本從複寫群組中移除。複本不會刪除,而且在偵測到KMS金鑰無法存取後 20 小時,複寫將停止從此區域到此區域。

  • 如果想要將用來加密複本列表的客戶受管的金鑰 停用時,只有當金鑰不再用來加密複本列表時,您才必須執行這項操作。發出刪除複本列表的命令之後,您必須等待刪除操作完成,並讓全域資料表變成 Active,再停用金鑰。否則,可能會導致來往複本列表的資料複寫僅部分完成。

  • 如果您想要修改或刪除複本資料表IAM的角色政策,您必須在複本資料表處於 Active 狀態時執行此操作。否則,建立、更新或刪除複本列表可能會失敗。

  • 根據預設,系統會建立全域資料表,並停用刪除保護。即使全域資料表啟用刪除保護,該資料表的任何複本都會以刪除保護預設為停用開始。

  • 當資料表停用刪除保護時,可能會意外刪除該資料表。資料表啟用刪除保護時,沒有人可將其刪除。

  • 變更一個複本表的刪除保護設定,不會更新群組中的其他複本。

注意

全域資料表版本 2017.11.29 (舊版) 不支援客戶受管金鑰。如果您想要在 DynamoDB 全域資料表中使用客戶受管金鑰,您需要將資料表升級至全域資料表版本 2019.11.21 (目前),然後啟用它。