

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

# 多區域複寫如何在 Amazon Keyspaces 中運作
<a name="multiRegion-replication_how-it-works"></a>

本節概述 Amazon Keyspaces 多區域複寫的運作方式。如需定價的詳細資訊，請參閱 [Amazon Keyspaces （適用於 Apache Cassandra) 定價](https://aws.amazon.com/keyspaces/pricing)。

**Topics**
+ [多區域複寫如何在 Amazon Keyspaces 中運作](#multiRegion-replication_how-it-works-overview)
+ [多區域複寫衝突解決](#multiRegion-replication_how-it-works-conflict-resolution)
+ [多區域複寫災難復原](#howitworks_disaster_recovery)
+ [預設 AWS 區域 停用 中的多區域複寫](#howitworks_mrr_opt_in)
+ [多區域複寫和與point-in-time的整合](#howitworks_mrr_pitr)
+ [多區域複寫和與 AWS 服務的整合](#howitworks_integration)

## 多區域複寫如何在 Amazon Keyspaces 中運作
<a name="multiRegion-replication_how-it-works-overview"></a>

Amazon Keyspaces 多區域複寫實作資料彈性架構，將您的資料分散到獨立和地理分佈 AWS 區域。它使用*主動-主動複寫*，可提供本機低延遲，讓每個區域能夠獨立執行讀取和寫入。

當您建立 Amazon Keyspaces 多區域金鑰空間時，您可以選擇要複寫資料的其他區域。您在多區域金鑰空間中建立的每個資料表都包含 Amazon Keyspaces 視為單一單位的多個複本資料表 （每個區域一個）。

每個複本都有相同的資料表名稱和相同的主索引鍵結構描述。當應用程式將資料寫入一個區域中的本機資料表時，會使用`LOCAL_QUORUM`一致性層級長期寫入資料。Amazon Keyspaces 會自動將資料非同步複寫到其他複寫區域。跨區域的複寫延遲通常不到一秒，而且不會影響您應用程式的效能或輸送量。

寫入資料後，您可以從具有`LOCAL_ONE/LOCAL_QUORUM`一致性層級的另一個複寫區域中的多區域資料表讀取資料。如需支援的組態和功能的詳細資訊，請參閱 [Amazon Keyspaces 多區域複寫用量備註](multiRegion-replication_usage-notes.md)。

![\[使用者正在讀取和寫入存放在各自本機 Amazon Keyspaces 資料表中的資料， AWS 區域 而 Amazon Keyspaces 會在所有可用區域中的資料表之間非同步複寫寫入。\]](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/keyspaces_multi_Region_replication.png)


## 多區域複寫衝突解決
<a name="multiRegion-replication_how-it-works-conflict-resolution"></a>

Amazon Keyspaces 多區域複寫是完全受管的，這表示您不需要執行複寫任務，例如定期執行修復操作以清除資料同步問題。Amazon Keyspaces 透過偵測和修復衝突 AWS 區域 來監控不同資料表之間的資料一致性，並自動同步複本。

Amazon Keyspaces 使用*最後一個寫入器會贏得*資料對帳方法。透過此衝突解決機制，多區域金鑰空間中的所有區域都會同意最新的更新，並收斂至具有相同資料的狀態。對帳程序不會影響應用程式效能。為了支援解決衝突，多區域資料表的用戶端時間戳記會自動開啟，且無法關閉。如需詳細資訊，請參閱[Amazon Keyspaces 中的用戶端時間戳記](client-side-timestamps.md)。

## 多區域複寫災難復原
<a name="howitworks_disaster_recovery"></a>

使用 Amazon Keyspaces 多區域複寫時，寫入會跨每個區域非同步複寫。在極少數的單一區域降級或故障情況下，多區域複寫可協助您從災難中復原，而對您的應用程式幾乎沒有影響。從災難復原通常使用復原時間目標 (RTO) 和復原點目標 (RPO) 的值進行測量。

 **復原時間目標** – 系統在災難後返回工作狀態所需的時間。RTO 會測量工作負載可容忍的停機時間量，並按時間測量。對於使用多區域複寫容錯移轉到不受影響區域的災難復原計劃，RTO 可以接近零。RTO 受限於您的應用程式偵測故障條件並將流量重新導向至另一個區域的速度。

 **復原點目標** – 可能遺失的資料量 （以時間為單位）。對於使用多區域複寫容錯移轉到不受影響區域的災難復原計劃，RPO 通常為單位數秒。RPO 受限於容錯移轉目標複本的複寫延遲。

如果發生區域故障或降級，您不需要提升次要區域或執行資料庫容錯移轉程序，因為 Amazon Keyspaces 中的複寫是作用中的。反之，您可以使用 Amazon Route 53 將應用程式路由到最接近的運作狀態區域。若要進一步了解 Route 53，請參閱[什麼是 Amazon Route 53？](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html)。

如果單一 AWS 區域 變得隔離或降級，您的應用程式可以使用 Route 53 將流量重新導向至不同的區域，以針對不同的複本資料表執行讀取和寫入。您也可以套用自訂商業邏輯，以判斷何時將請求重新導向至其他區域。例如，讓您的應用程式了解多個可用的端點。

當區域恢復上線時，Amazon Keyspaces 會繼續將任何擱置的寫入從該區域傳播到其他區域中的複本資料表。其也會繼續將寫入從其他複本列表傳播到目前已重回到線上狀態的區域。

## 預設 AWS 區域 停用 中的多區域複寫
<a name="howitworks_mrr_opt_in"></a>

根據預設 AWS 區域 ，下列 支援 Amazon Keyspaces 多區域複寫：
+ 非洲 (開普敦) 區域
+ 中東 (阿拉伯聯合大公國) 區域
+ 亞太地區 (香港) 區域
+ Middle East (Bahrain) Region

您必須先啟用區域，才能將預設停用的區域與 Amazon Keyspaces 多區域複寫搭配使用。如需詳細資訊，請參閱[https://docs.aws.amazon.com/organizations/latest/userguide/](https://docs.aws.amazon.com/organizations/latest/userguide/)》[AWS 區域 中的在帳戶中啟用或停用](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) 。

啟用區域之後，您可以在 區域中建立新的 Amazon Keyspaces 資源，並將該區域新增至多區域金鑰空間。

當您停用 Amazon Keyspaces 多區域複寫所使用的區域時，Amazon Keyspaces 會啟動 24 小時寬限期。在此期間，您可以預期下列行為：
+ Amazon Keyspaces 會持續在已啟用的區域中執行資料處理語言 (DML) 操作。
+ Amazon Keyspaces 會暫停將資料更新從已啟用的區域複寫到已停用的區域。
+ Amazon Keyspaces 會封鎖已停用區域中的所有資料定義語言 (DDL) 請求。

如果您錯誤地停用區域，您可以在 24 小時內重新啟用該區域。如果您在 24 小時寬限期內重新啟用區域，Amazon Keyspaces 將採取下列動作：
+ 自動恢復所有複寫至重新啟用的區域。
+ 在停用區域時複寫在已啟用區域中發生的任何資料更新，以確保資料一致性。
+ 自動繼續所有其他多區域複寫操作。

如果區域在 24 小時時段關閉後仍處於停用狀態，Amazon Keyspaces 會採取下列動作，從多區域複寫中永久移除區域：
+ 從所有多區域複寫金鑰空間中移除已停用的區域。
+ 將已停用區域中的多區域複寫資料表複本轉換為單一區域金鑰空間和資料表。
+ Amazon Keyspaces 不會從已停用的區域刪除任何資源。

Amazon Keyspaces 從多區域金鑰空間永久移除已停用的區域之後，您就無法新增已停用的區域。

## 多區域複寫和與point-in-time的整合
<a name="howitworks_mrr_pitr"></a>

多區域資料表支援Point-in-time復原。若要使用 PITR 成功還原多區域資料表，必須符合下列條件。
+ 來源和目標資料表必須設定為多區域資料表。
+ 來源資料表的金鑰空間和目標資料表的金鑰空間的複寫區域必須相同。
+ 必須在來源資料表的所有複本上啟用 PITR。

您可以從來源資料表可用的任何區域執行還原陳述式。Amazon Keyspaces 會自動還原每個區域中的目標資料表。如需 PITR 的相關詳細資訊，請參閱 [point-in-time復原如何在 Amazon Keyspaces 中運作](PointInTimeRecovery_HowItWorks.md)。

當您建立多區域資料表時，您在建立程序期間定義的 PITR 設定會自動套用至所有區域中的所有資料表。當您使用 變更 PITR 設定時`ALTER TABLE`，Amazon Keyspaces 只會將更新套用至本機資料表，而不會套用至其他區域中的複本。若要啟用現有多區域資料表的 PITR，您必須為所有複本重複 `ALTER TABLE`陳述式。

## 多區域複寫和與 AWS 服務的整合
<a name="howitworks_integration"></a>

您可以使用 Amazon CloudWatch AWS 區域 指標監控不同資料表之間的複寫效能。下列指標提供多區域金鑰空間的持續監控。
+ `ReplicationLatency` – 此指標測量`deletes`從一個複本資料表複寫 `updates`、 `inserts`或 到多區域金鑰空間中另一個複本資料表所需的時間。

如需如何監控 CloudWatch 指標的詳細資訊，請參閱 [使用 Amazon CloudWatch 監控 Amazon Keyspaces](monitoring-cloudwatch.md)。