DynamoDB 全域資料表的輸送容量規劃
將流量從一個區域移轉到另一個區域需要仔細考慮與容量有關的 DynamoDB 資料表設定。
管理寫入容量時可考慮以下幾點:
全域資料表必須處於隨需模式,或啟用自動擴展的佈建。
如果使用自動擴展進行佈建,則會跨區域複寫寫入設定 (最小、最大和目標使用率)。雖然自動擴展設定會同步,但實際佈建的寫入容量可能在各區域間獨立變動。
造成佈建寫入容量差異的原因之一是 TTL 功能。當您在 DynamoDB 中啟用 TTL 時,您可以指定屬性名稱,其值表示項目的到期時間,以秒為單位的 Unix 紀元時間格式。之後,DynamoDB 可刪除項目,而不會產生寫入成本。有了全域資料表,您可以在任何區域設定 TTL,該設定便會自動複寫到另一個區域關聯的全域資料表。當某個項目符合通過 TTL 規則刪除的條件時,該工作可以在任何區域完成。執行刪除操作時不會耗用於源資料表上的寫入單位,但複本資料表會取得該刪除操作的複寫寫入操作,並將產生複製寫入單元成本。MRSC 資料表不支援 TTL。
如果您使用自動擴展,請確定佈建的寫入容量上限設定足以處理所有寫入操作以及所有潛在的 TTL 刪除操作。自動擴展會根據每個區域的寫入耗用進行調整。隨需資料表沒有最大佈建的寫入容量設定,但是資料表層級最大寫入輸送量限制會指定隨需資料表允許的最大持續寫入容量。預設限制為 40,000,但可以調整。我們建議您設定充足,以處理隨需資料表可能需要的所有寫入操作 (包括 TTL 寫入操作)。當您設定全域資料表時,所有參與區域的這個值必須相同。
管理讀取容量時可考慮以下幾點:
允許區域之間的讀取容量管理設定不同,因為需假設不同的區域可能具有獨立的讀取模式。當第一次將全域複本新增至資料表時,會傳播來源區域的容量。建立之後,您可以調整讀取容量設定,而這個設定不會傳輸到另一端。
使用 DynamoDB 自動擴展時,請確保佈建的最大讀取容量設定充足,以處理所有區域的所有讀取操作。在標準操作期間,讀取容量可能會分散到區域,但在容錯移轉期間,資料表應該能夠自動適應增加的讀取工作負載。隨需資料表沒有最大佈建的讀取容量設定,但是資料表層級最大讀取輸送量限制會指定隨需資料表允許的最大持續讀取容量。預設限制為 40,000,但可以調整。如果所有讀取操作都要路由到此單一區域,我們建議您將它設定充足,以處理資料表可能需要的所有讀取操作。
若某區域的資料表平時讀取流量較低,但在容錯移轉後可能需承受大量讀取流量,您可以預先暖機資料表容量,以因應較高的讀取需求。
Route 53 ARC 具有整備檢查功能,可用於確認 DynamoDB 各區域的資料表設定與帳戶配額是否一致,無論您是否使用 Route 53 進行請求路由。這些就緒性檢查還可以幫助調整帳戶層級的配額,以確保符合。