

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

# 全域資料表的最佳實務
<a name="globaltables-bestpractices"></a>

下列各節說明部署和使用全域資料表的最佳實務。

## 版本
<a name="globaltables-bestpractices-version"></a>

DynamoDB 全域資料表有兩種版本可用：2019.11.21 版 (目前版本) 和 [2017.11.29 版 (舊版)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html)。您應該盡可能使用 2019.11.21 版 (目前版本)。

## 刪除保護
<a name="globaltables-bestpractices-deletionprotection"></a>

若要避免意外刪除全域資料表複本，您應該為其啟用刪除保護。您必須為每個複本啟用刪除保護。

## 使用 AWS CloudFormation
<a name="globaltables-bestpractices-cloudformation"></a>

CloudFormation 目前不支援跨堆疊協調多區域資源，例如全域資料表。如果您在個別區域堆疊中定義全域資料表的每個複本，則在執行複本更新時會因偵測到跨堆疊的偏離而發生錯誤。若要避免此問題，您應該選擇一個區域作為部署全域資料表的參考區域，並在該區域堆疊中定義所有全域資料表複本。

**重要**  
您無法透過在模板中變更資源類型，將類型為 `AWS::DynamoDB::Table` 的資源轉換為類型為 `AWS::DynamoDB::GlobalTable` 的資源。若您變更單一區域資料表的 CloudFormation 資源類型，試圖將其轉換為全域資料表，可能會導致 DynamoDB 資料表遭到刪除。

您可以使用 `AWS::DynamoDB::GlobalTable` 資源，在單一區域中建立資料表。此資料表部署方式與其他單一區域資料表類似。如果您稍後更新堆疊，將其他區域新增至資源，即可將複本新增至資料表，並安全地將其轉換為全域資料表。

如果您的現有 `AWS::DynamoDB::Table` 資源要轉換為 `AWS::DynamoDB::GlobalTable` 資源，建議的資源類型轉換步驟如下：

1. 設定要保留的 `AWS::DynamoDB::Table` 刪除政策。

1. 從堆疊定義中移除資料表。

1. 將複本新增至 AWS 主控台中的單一區域資料表，並將其轉換為全域資料表。

1. 將新的全域資料表作為新 `AWS::DynamoDB::GlobalTable` 資源匯入堆疊。

## 備份和時間點復原
<a name="globaltables-bestpractices-backups"></a>

為全域資料表中的一個複本，啟用自動備份和時間點復原 (PITR)，可能得以滿足您的災難復原目標。使用 AWS備份建立的複本備份可以跨區域自動複寫，以獲得更高的彈性。在選擇備份和 PITR 啟用策略時，請以多區域高可用性環境來考量災難復原計劃目標。

## 多區域高可用性的設計
<a name="globaltables-bestpractices-multiregion"></a>

如需部署全域資料表的方案指引，請參閱 [DynamoDB 全域資料表設計的最佳實務](bp-global-table-design.md)。