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

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

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

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

全域資料表提供全受管解決方案,用以部署多個區域和多個作用中資料庫,而不需要建置和維護您自己的複寫解決方案。您可以指定希望表格可供使用的 AWS 區域,DynamoDB 會將持續的資料變更傳播到所有這些區域。

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

  • 在您選擇的區域中自動複製 DynamoDB 表 AWS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 您可以使AWS 受管金鑰AWSServiceRoleForDynamoDBReplication服務連結角色對客戶管理金鑰或用於加密複本的服務連結角色,在全域表上執行 AWS KMS 作業。

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

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

  • 如果您要修改或刪除複本列表的 IAM 角色政策,則必須在複本列表處於 Active 狀態時這麼做。否則,建立、更新或刪除複本列表可能會失敗。

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

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

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

注意

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