管理全域資料表的最佳實務和要求 - Amazon DynamoDB

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

管理全域資料表的最佳實務和要求

您可以使用 Amazon DynamoDB 全域表格,跨 AWS 區域複寫表格資料。全域資料表中的複本列表和次要索引必須具有相同的寫入容量設定,才能確保資料能正確複寫。

為了將來清楚起見,最好不要將 Region 放在任何有朝一日可能變成全域資料表的資料表的名稱中。

警告

每個全域資料表的資料表名稱在您的 AWS 帳戶中必須是唯一的。

全域資料表版本

若要判斷您正在使用的全域資料表版本,請參閱判斷您正在使用的全域資料表版本

管理容量的要求

全域資料表必須按以下兩種方式之一設定輸送容量:

  1. 隨需容量模式,以複寫寫入請求單位 (rWRU) 測量

  2. 具有自動擴展功能的佈建容量模式,以複寫寫入容量單位 (rWCU) 測量

使用具有自動擴展功能的佈建容量模式或隨需容量模式,可確保全域資料表擁有足夠的容量,以便對全域資料表的所有區域執行複寫寫入。

注意

在任何區域中從一種資料表容量模式切換到其他容量模式,會切換所有複本的模式。

部署全域資料表

在中 AWS CloudFormation,每個全域資料表都由單一區域中的單一堆疊控制。無論複本數量有多少。當您部署範本時, CloudFormation 會建立/更新所有複本,做為單一堆疊作業的一部分。因此,您不應該在多個區域中部署相同的 AWS::DynamoDB::GlobalTable 資源。否則會因不受支援而導致錯誤。

如果您在多個區域中部署應用程式範本,則可以使用條件僅在單一區域中建立資源。您也可以選擇在與應用程式分開的堆疊中定義 AWS::DynamoDB::GlobalTable 資源,並確保它僅部署到單一區域。如需詳細資訊,請參閱全域表 CloudFormation

DynamoDB 資料表由 AWS::DynamoDB::Table 參照,而全域資料表則為AWS::DynamoDB::GlobalTable。就目前而言,這基本上使得它們有兩種不同的資源。 CloudFormation 因此,一種方法是透過使用 GlobalTable 建構模組建立可能是全域的所有資料表。然後,您可以將它們保留為獨立資料表來啟動,並在稍後視需要將它們新增至區域。

如果你有一個常規表,並且你想在使用時轉換它 CloudFormation,推薦的方法是:

  1. 設定要保留的刪除原則。

  2. 從堆疊中移除資料表。

  3. 在控制台中將資料表轉換為全域資料表。

  4. 將全域資料表作為新資源導入堆疊。

注意

目前不支援跨帳戶複寫。

使用全域資料表來協助處理潛在的區域中斷

擁有或能在替代區域中快速建立執行堆疊的獨立副本,每個區域都會存取其本機 DynamoDB 端點。

使用 Route53 或前 AWS Global Accelerator 往最近的健康區域。或者,讓用戶端知道其可能使用的多個端點。

在每個區域中使用運作狀態檢查,可靠地判斷堆疊是否有任何問題,包括 DynamoDB 是否降級。例如,不要只偵測 DynamoDB 端點是否啟動。實際發出呼叫,確保完全成功的資料庫流量。

如果運作狀態檢查失敗,流量可以路由到其他區域 (透過使用 Route53 更新 DNS 項目、讓全域加速器執行不同的路由,或讓用戶端選擇不同的端點)。全域資料表具有良好的 RPO (復原點目標),因為資料會持續同步,且具有良好的 RTO (復原時間目標),因為這兩個區域都會隨時準備好資料表,以供讀取和寫入流量使用。

有關運作狀態檢查的詳細資訊,請參閱運作狀態檢查

注意

DynamoDB 是其他服務經常在其上建立控制平面作業的核心服務,因此您不太可能會遇到 DynamoDB 在某個區域中降級服務,而其他服務未受到限制的情況。

備份全域資料表

備份全域資料表時,備份一個區域中的資料表應該已足夠,不需要備份所有區域中的所有資料表。如果目的是能恢復不小心刪除或修改的資料,那麼一個區域中的 PITR 便已足夠。同樣地,為了歷史目的 (例如法規要求) 而保留快照時,在一個區域中進行備份也應該足夠。備份資料可以透過 AWS Backup複製到多個區域。

複本和計算寫入單位

為了進行規劃,您應該獲取區域將執行的寫入次數,並將其新增到其他區域的寫入次數中。這很重要,因為在一個區域中執行的每個寫入也必須在每個複本區域中執行。如果您沒有足夠的容量來處理所有寫入,就會發生容量例外狀況。此外,區域間複寫的等待時間也會增加。

例如,假設您預期在俄亥俄州對複本資料表進行每秒 5 次寫入,在維吉尼亞北部對複本資料表進行每秒 10 次寫入,在愛爾蘭對複本資料表進行每秒 5 次寫入。在這種情況下,您應預期在俄亥俄州、維吉尼亞北部和愛爾蘭區域使用 20 個 rWCU 或 rWRU。換句話說,您應預期在所有三個區域共使用 60 個 rWCU。

如需有關具有自動擴展功能的佈建容量和 DynamoDB 的詳細資訊,請參閱 使用 DynamoDB Auto Scaling 功能自動管理輸送容量

注意

如果資料表在具有自動擴展功能的佈建容量模式下執行,則允許佈建的寫入容量在每個區域的這些自動擴展設定鐘中浮動。