本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon DynamoDB 全域資料表,您可以跨 AWS 區域複寫資料表資料。全域資料表中的複本列表和次要索引必須具有相同的寫入容量設定,才能確保資料能正確複寫。
為了將來清楚起見,最好不要將 Region 放在任何有朝一日可能變成全域資料表的資料表的名稱中。
警告
您 AWS 帳戶中每個全域資料表的資料表名稱必須是唯一的。
全域資料表版本
若要判斷您正在使用的全域資料表版本,請參閱 判斷您正在使用的 DynamoDB 全域資料表版本。
管理容量的要求
全域資料表必須按以下兩種方式之一設定輸送容量:
-
隨需容量模式,以複寫寫入請求單位 (rWRUs) 測量
-
具有自動擴展的佈建容量模式,以複寫寫入容量單位 (rWCUs) 測量
使用具有自動擴展功能的佈建容量模式或隨需容量模式,可確保全域資料表擁有足夠的容量,以便對全域資料表的所有區域執行複寫寫入。
注意
在任何區域中從一種資料表容量模式切換到其他容量模式,會切換所有複本的模式。
部署全域資料表
在 中 AWS CloudFormation,每個全域資料表由單一區域中的單一堆疊控制。無論複本數量有多少。部署範本時, CloudFormation 會在單一堆疊操作中建立/更新所有複本。因此,您不應該在多個區域中部署相同的 AWS::DynamoDB::GlobalTable
資源。否則會因不受支援而導致錯誤。
如果您在多個區域中部署應用程式範本,則可以使用條件僅在單一區域中建立資源。您也可以選擇在與應用程式分開的堆疊中定義 AWS::DynamoDB::GlobalTable
資源,並確保它僅部署到單一區域。如需詳細資訊,請參閱 中的全域資料表 CloudFormation
DynamoDB 資料表由 AWS::DynamoDB::Table
參照,而全域資料表則為AWS::DynamoDB::GlobalTable
。就 CloudFormation 相關而言,這基本上會讓他們有兩個不同的資源。因此,一種方法是透過使用 GlobalTable
建構模組建立可能是全域的所有資料表。然後,您可以將它們保留為獨立資料表來啟動,並在稍後視需要將它們新增至區域。
如果您有一般資料表,而且想要在使用 時將其轉換 CloudFormation,建議的方法為:
設定要保留的刪除原則。
從堆疊中移除資料表。
在控制台中將資料表轉換為全域資料表。
將全域資料表作為新資源導入堆疊。
注意
目前不支援跨帳戶複寫。
使用全域資料表來協助處理潛在的區域中斷
擁有或能在替代區域中快速建立執行堆疊的獨立副本,每個區域都會存取其本機 DynamoDB 端點。
使用 Route53 或 AWS Global Accelerator 路由至最近的運作狀態區域。或者,讓用戶端知道其可能使用的多個端點。
在每個區域中使用運作狀態檢查,可靠地判斷堆疊是否有任何問題,包括 DynamoDB 是否降級。例如,不要只偵測 DynamoDB 端點是否啟動。實際發出呼叫,確保完全成功的資料庫流量。
如果運作狀態檢查失敗,流量可以路由到其他區域 (透過使用 Route53 更新DNS項目、使用不同的 Global Accelerator 路由,或由用戶端選擇不同的端點)。全域資料表具有良好 RPO(復原點目標),因為資料持續同步,且良好 RTO(復原時間目標),因為兩個區域都會為讀取和寫入流量保持資料表就緒狀態。
有關運作狀態檢查的詳細資訊,請參閱運作狀態檢查。
注意
DynamoDB 是其他服務經常在其上建立控制平面作業的核心服務,因此您不太可能會遇到 DynamoDB 在某個區域中降級服務,而其他服務未受到限制的情況。
備份全域資料表
備份全域資料表時,備份一個區域中的資料表應該已足夠,不需要備份所有區域中的所有資料表。如果目的是能夠復原錯誤刪除或修改的資料,則PITR在一個區域中應該就足夠了。同樣地,為了歷史目的 (例如法規要求) 而保留快照時,在一個區域中進行備份也應該足夠。備份資料可以透過 AWS Backup複製到多個區域。
複本和計算寫入單位
為了進行規劃,您應該獲取區域將執行的寫入次數,並將其新增到其他區域的寫入次數中。這很重要,因為在一個區域中執行的每個寫入也必須在每個複本區域中執行。如果您沒有足夠的容量來處理所有寫入,就會發生容量例外狀況。此外,區域間複寫的等待時間也會增加。
例如,假設您預期在俄亥俄州對複本資料表進行每秒 5 次寫入,在維吉尼亞北部對複本資料表進行每秒 10 次寫入,在愛爾蘭對複本資料表進行每秒 5 次寫入。在這種情況下,您應該預期 rWRUs 在每個區域中使用 20 個 rWCUs 或 :俄亥俄、維吉尼亞北部和愛爾蘭。換句話說,您應該預期在所有三個區域中使用 60 rWCUs 總數。
如需有關具有自動擴展功能的佈建容量和 DynamoDB 的詳細資訊,請參閱 使用 DynamoDB Auto Scaling 功能自動管理輸送容量。
注意
如果資料表在具有自動擴展功能的佈建容量模式下執行,則允許佈建的寫入容量在每個區域的這些自動擴展設定鐘中浮動。