

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

# Amazon Keyspaces 的多區域複寫 （適用於 Apache Cassandra)
<a name="multiRegion-replication"></a>

您可以使用 Amazon Keyspaces 多區域複寫，透過 AWS 區域 您選擇的自動化、全受管、*主動-主動*複寫來複寫資料。透過主動-主動複寫，每個區域都可以獨立執行讀取和寫入。您可以改善區域降級的可用性和彈性，同時受益於全域應用程式的低延遲本機讀取和寫入。

使用多區域複寫時，Amazon Keyspaces 會在區域之間非同步複寫資料，資料通常會在一秒內跨區域傳播。此外，透過多區域複寫，您不再難以解決衝突和修正資料差異問題，因此您可以專注於應用程式。

根據預設，Amazon Keyspaces 會在相同 內的三個[可用區域中](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)複寫資料， AWS 區域 以提供耐用性和高可用性。透過多區域複寫，您可以建立多區域金鑰空間，以 AWS 區域 您選擇的不同地理位置複寫資料表。

**Topics**
+ [使用多區域複寫的優點](#mrr-benefits)
+ [容量模式和定價](#mrr-pricing)
+ [多區域複寫如何在 Amazon Keyspaces 中運作](multiRegion-replication_how-it-works.md)
+ [Amazon Keyspaces 多區域複寫用量備註](multiRegion-replication_usage-notes.md)
+ [設定 Amazon Keyspaces 的多區域複寫 （適用於 Apache Cassandra)](multiRegion-replication-configure.md)

## 使用多區域複寫的優點
<a name="mrr-benefits"></a>

多區域複寫提供下列優點。
+ **具有單一位數毫秒延遲的全域讀取和寫入** – 在 Amazon Keyspaces 中，複寫是主動的。您可以從最接近您客戶的區域，以任何規模的單一位數毫秒延遲提供本機讀取和寫入。您可以將 Amazon Keyspaces 多區域資料表用於需要快速回應時間的全域應用程式。
+ **改善單一區域降級的業務持續性和保護** – 透過多區域複寫，您可以將應用程式重新導向至多區域金鑰空間中的不同區域 AWS 區域 ，以從單一區域降級中復原。由於 Amazon Keyspaces 提供主動-主動複寫，因此不會影響您的讀取和寫入。

  Amazon Keyspaces 會追蹤已在多區域金鑰空間上執行但尚未傳播到所有複本區域的任何寫入。區域恢復上線後，Amazon Keyspaces 會自動同步任何遺失的變更，讓您可以復原而不會有任何應用程式影響。
+ **跨區域高速複**寫 – 多區域複寫使用跨區域的快速儲存型資料實體複寫，複寫延遲通常不到 1 秒。

  Amazon Keyspaces 中的複寫對您的資料庫查詢幾乎沒有影響，因為它不會與您的應用程式共用運算資源。這表示您可以解決高寫入輸送量使用案例，或輸送量突然遽增或爆增的使用案例，而不會影響應用程式。
+ **一致性和衝突解決** – 對任何區域中的資料所做的任何變更都會複寫到多區域金鑰空間中的其他區域。如果應用程式同時更新不同區域中的相同資料，則可能會發生衝突。

  為了協助提供最終一致性，Amazon Keyspaces 使用儲存格層級時間戳記，而*最後一個寫入器會在並行更新之間取得*對帳。衝突解決是完全受管的，並在背景發生，不會影響任何應用程式。

如需支援的組態和功能的詳細資訊，請參閱 [Amazon Keyspaces 多區域複寫用量備註](multiRegion-replication_usage-notes.md)。

## 容量模式和定價
<a name="mrr-pricing"></a>

對於多區域金鑰空間，您可以使用*隨需容量模式*或*佈建容量模式*。如需詳細資訊，請參閱[在 Amazon Keyspaces 中設定讀取/寫入容量模式](ReadWriteCapacityMode.md)。

對於隨需模式，您需要支付 1 個寫入請求單位 (WRU) 的費用，以寫入每列最多 1 KB 的資料，方式與單一區域資料表相同。但是，您需要為多區域金鑰空間的每個區域中的寫入付費。例如，在具有兩個區域的多區域金鑰空間中寫入一列 3 KB 的資料需要 6 WRUs：3 \$1 2 = 6 WRUs。此外，包含靜態和非靜態資料的寫入需要額外的寫入操作。

對於佈建模式，您需支付 1 個寫入容量單位 (WCU) 的費用，每一列最多寫入 1 KB 的資料，與單一區域資料表相同。但是，您需要為多區域金鑰空間的每個區域中的寫入付費。例如，在具有兩個區域的多區域金鑰空間中每秒寫入 3 KB 的資料列需要 6 WCUs：3 \$1 2 = 6 WCUs。此外，包含靜態和非靜態資料的寫入需要額外的寫入操作。

如需定價的詳細資訊，請參閱 [Amazon Keyspaces （適用於 Apache Cassandra) 定價](https://aws.amazon.com/keyspaces/pricing)。

# 多區域複寫如何在 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)。

# Amazon Keyspaces 多區域複寫用量備註
<a name="multiRegion-replication_usage-notes"></a>

當您搭配 Amazon Keyspaces 使用多區域複寫時，請考慮下列事項。
+ 您可以選取任何[可用的公](programmatic.endpoints.md#global_endpoints) AWS 區域有。如需 AWS 區域 [預設停用之](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) 的詳細資訊，請參閱 [預設 AWS 區域 停用 中的多區域複寫](multiRegion-replication_how-it-works.md#howitworks_mrr_opt_in)。
+ AWS GovCloud (US) Regions 不支援 和中國區域。
+ 請考慮下列解決方法，直到功能可用為止：

  建立多區域資料表時設定存留時間 (TTL)。您將無法啟用和停用 TTL，或稍後調整 TTL 值。如需詳細資訊，請參閱[使用 Amazon Keyspaces 的存留時間 (TTL) 過期資料 （適用於 Apache Cassandra)](TTL.md)。
  + 對於靜態加密，請使用 AWS 擁有的金鑰。多區域資料表目前不支援客戶受管金鑰。如需詳細資訊，請參閱 

    [靜態加密：在 Amazon Keyspaces 中運作的方式](encryption.howitworks.md).
+ 您可以使用 `ALTER KEYSPACE`將區域新增至單一區域或多區域金鑰空間。如需詳細資訊，請參閱[將 AWS 區域 新增至 Amazon Keyspaces 中的金鑰空間](keyspaces-multi-region-add-replica.md)。
  + 將區域新增至單一區域金鑰空間之前，請確定金鑰空間下的資料表未設定客戶受管金鑰。
  + 針對金鑰空間或資料表設定的任何現有標籤都不會複寫到新區域。
+ 當您搭配 Amazon Keyspaces 自動擴展使用佈建容量管理時，請務必使用 Amazon Keyspaces API 操作來建立和設定多區域資料表。Amazon Keyspaces 代您呼叫的基礎 Application Auto Scaling API 操作沒有多區域功能。

  如需詳細資訊，請參閱[更新 Amazon Keyspaces 中多區域資料表的佈建容量和自動擴展設定](tables-mrr-autoscaling.md)。如需如何預估佈建多區域資料表寫入容量輸送量的詳細資訊，請參閱 [Amazon Keyspaces 中多區域資料表的估計和佈建容量](tables-multi-region-capacity.md)。
+ 雖然資料會自動跨多區域資料表的所選區域複寫，但當用戶端連線到某個區域中的端點並查詢`system.peers`資料表時，查詢只會傳回本機資訊。查詢結果會顯示為用戶端的單一資料中心叢集。
+ Amazon Keyspaces 多區域複寫是非同步的，並且支援寫入的`LOCAL_QUORUM`一致性。 `LOCAL_QUORUM`一致性要求在將成功傳回用戶端之前，在本機區域中的兩個複本上持久保留對資料列的更新。然後，將寫入傳播到複寫的區域 （或區域） 會以非同步方式執行。

  Amazon Keyspaces 多區域複寫不支援同步複寫或`QUORUM`一致性。
+ 當您建立多區域金鑰空間或資料表時，您在建立程序期間定義的任何標籤都會自動套用至所有區域中的所有金鑰空間和資料表。當您使用 `ALTER KEYSPACE`或 變更現有標籤時`ALTER TABLE`，更新只會套用至您進行變更之區域中的鍵空間或資料表。
+ Amazon CloudWatch `ReplicationLatency` 為每個複寫區域提供指標。它透過追蹤到達資料列、比較其到達時間與其初始寫入時間，以及計算平均值來計算此指標。計時會儲存在來源區域的 CloudWatch 當中。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon Keyspaces](monitoring-cloudwatch.md)。

  檢視平均和最大時間，以判斷平均和最壞情況的複寫延遲會很有用。此延遲沒有 SLA。
+ 在隨需模式下使用多區域資料表時，如果資料表複本遇到新的流量峰值，您可能會發現非同步複寫寫入的延遲增加。與 Amazon Keyspaces 自動將單一區域隨需資料表的容量調整為其接收的應用程式流量類似，Amazon Keyspaces 會自動將多區域隨需資料表複本的容量調整為其接收的流量。增加複寫延遲是暫時性的，因為 Amazon Keyspaces 會在流量增加時自動配置更多容量。一旦所有複本都適應您的流量，複寫延遲應該會恢復正常。如需詳細資訊，請參閱[峰值流量與擴展屬性](ReadWriteCapacityMode.OnDemand.md#ReadWriteCapacityMode.PeakTraffic)。
+ 在佈建模式中使用多區域資料表時，如果您的應用程式超過佈建的輸送量容量，您可能會發現容量不足錯誤和複寫延遲增加。為了確保所有 AWS 區域 多區域資料表中的所有資料表複本都有足夠的讀取和寫入容量，建議您設定 Amazon Keyspaces 自動擴展。Amazon Keyspaces Auto Scaling 透過自動調整輸送量容量以回應實際的應用程式流量，協助您有效率地佈建可變工作負載的輸送量容量。如需詳細資訊，請參閱[自動擴展如何適用於多區域資料表](autoscaling.md#autoscaling.multi-region)。

# 設定 Amazon Keyspaces 的多區域複寫 （適用於 Apache Cassandra)
<a name="multiRegion-replication-configure"></a>

您可以使用 主控台、Cassandra 查詢語言 (CQL) 或 AWS Command Line Interface ，在 Amazon Keyspaces 中建立和管理多區域金鑰空間和資料表。

本節提供如何建立和管理多區域金鑰空間和資料表的範例。您在多區域金鑰空間中建立的所有資料表會自動從金鑰空間繼承多區域設定。

如需支援的組態和功能的詳細資訊，請參閱 [Amazon Keyspaces 多區域複寫用量備註](multiRegion-replication_usage-notes.md)。

**Topics**
+ [設定建立多區域金鑰空間和資料表所需的 IAM 許可](howitworks_replication_permissions.md)
+ [設定將 新增至金鑰空間所需的 IAM AWS 區域 許可](howitworks_replication_permissions_addReplica.md)
+ [在 Amazon Keyspaces 中建立多區域金鑰空間](keyspaces-mrr-create.md)
+ [將 AWS 區域 新增至 Amazon Keyspaces 中的金鑰空間](keyspaces-multi-region-add-replica.md)
+ [將新區域新增至金鑰空間時，請檢查複寫進度](keyspaces-multi-region-replica-status.md)
+ [在 Amazon Keyspaces 中使用預設設定建立多區域資料表](tables-mrr-create-default.md)
+ [在 Amazon Keyspaces 中使用自動擴展的佈建模式中建立多區域資料表](tables-mrr-create-provisioned.md)
+ [更新 Amazon Keyspaces 中多區域資料表的佈建容量和自動擴展設定](tables-mrr-autoscaling.md)
+ [在 Amazon Keyspaces 中檢視多區域資料表的佈建容量和自動擴展設定](tables-mrr-view.md)
+ [關閉 Amazon Keyspaces 中資料表的自動擴展](tables-mrr-autoscaling-off.md)
+ [在 Amazon Keyspaces 中手動設定多區域資料表的佈建容量](tables-mrr-capacity-manually.md)

# 設定建立多區域金鑰空間和資料表所需的 IAM 許可
<a name="howitworks_replication_permissions"></a>

若要成功建立多區域金鑰空間和資料表，IAM 主體需要能夠建立服務連結角色。此服務連結角色是 Amazon Keyspaces 預先定義的唯一 IAM 角色類型。它包含 Amazon Keyspaces 代表您執行動作所需的所有許可。如需服務連結角色的詳細資訊，請參閱[使用 Amazon Keyspaces 多區域複寫的角色](using-service-linked-roles-multi-region-replication.md)。

若要建立多區域複寫所需的服務連結角色，IAM 主體的政策需要下列元素：
+ `iam:CreateServiceLinkedRole` – 委託人可執行**的動作**。
+ `arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication` – 可以對其執行動作**的資源**。
+ `iam:AWSServiceName": "replication.cassandra.amazonaws.com` – 此角色可連接的唯一 AWS 服務是 Amazon Keyspaces。

以下是將最低必要許可授予委託人以建立多區域金鑰空間和資料表的政策範例。

```
{
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication",
            "Condition": {"StringLike": {"iam:AWSServiceName": "replication.cassandra.amazonaws.com"}}
}
```

如需多區域金鑰空間和資料表的其他 IAM 許可，請參閱*《服務授權參考*》中的 [Amazon Keyspaces （適用於 Apache Cassandra) 的動作、資源和條件金鑰](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html)。

# 設定將 新增至金鑰空間所需的 IAM AWS 區域 許可
<a name="howitworks_replication_permissions_addReplica"></a>

若要將區域新增至金鑰空間，IAM 主體需要下列許可：
+ `cassandra:Alter`
+ `cassandra:AlterMultiRegionResource`
+ `cassandra:Create`
+ `cassandra:CreateMultiRegionResource`
+ `cassandra:Select`
+ `cassandra:SelectMultiRegionResource`
+ `cassandra:Modify`
+ `cassandra:ModifyMultiRegionResource`

如果資料表是在佈建模式中設定並啟用自動擴展，則需要下列額外許可。
+ `application-autoscaling:RegisterScalableTarget`
+ `application-autoscaling:DeregisterScalableTarget`
+ `application-autoscaling:DescribeScalableTargets`
+ `application-autoscaling:PutScalingPolicy`
+ `application-autoscaling:DescribeScalingPolicies`

若要成功將區域新增至單一區域金鑰空間，IAM 主體也需要能夠建立服務連結角色。此服務連結角色是 Amazon Keyspaces 預先定義的唯一 IAM 角色類型。它包含 Amazon Keyspaces 代表您執行動作所需的所有許可。如需服務連結角色的詳細資訊，請參閱[使用 Amazon Keyspaces 多區域複寫的角色](using-service-linked-roles-multi-region-replication.md)。

若要建立多區域複寫所需的服務連結角色，IAM 主體的政策需要下列元素：
+ `iam:CreateServiceLinkedRole` – 委託人可執行**的動作**。
+ `arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication` – 可以對其執行動作**的資源**。
+ `iam:AWSServiceName": "replication.cassandra.amazonaws.com` – 此角色可連接的唯一 AWS 服務是 Amazon Keyspaces。

以下是將最低必要許可授予委託人，以將區域新增至金鑰空間的政策範例。

```
{
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication",
            "Condition": {"StringLike": {"iam:AWSServiceName": "replication.cassandra.amazonaws.com"}}
}
```

# 在 Amazon Keyspaces 中建立多區域金鑰空間
<a name="keyspaces-mrr-create"></a>

本節提供如何建立多區域金鑰空間的範例。您可以使用 CQL 或 在 Amazon Keyspaces 主控台上執行此操作 AWS CLI。您在多區域金鑰空間中建立的所有資料表會自動從金鑰空間繼承多區域設定。

**注意**  
建立多區域金鑰空間時，Amazon Keyspaces 會使用`AWSServiceRoleForAmazonKeyspacesReplication`帳戶中的名稱建立服務連結角色。此角色允許 Amazon Keyspaces 代表您將寫入複寫到多區域資料表的所有複本。如需詳細資訊，請參閱 [使用 Amazon Keyspaces 多區域複寫的角色](using-service-linked-roles-multi-region-replication.md)。

------
#### [ Console ]

**建立多區域金鑰空間 （主控台）**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 在導覽窗格中，選擇**金鑰空間**，然後選擇**建立金鑰空間**。

1. 針對**金鑰空間名稱**，輸入金鑰空間的名稱。

1. 在**多區域複寫**區段中，您可以新增清單中可用的其他區域。

1. 若要完成，請選擇**建立金鑰空間**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 建立多區域金鑰空間**

1. 若要建立多區域金鑰空間，請使用 `NetworkTopologyStrategy`指定要複寫金鑰空間 AWS 區域 的 。您必須包含目前的區域和至少一個額外的區域。

   金鑰空間中的所有資料表都會從金鑰空間繼承複寫策略。您無法在資料表層級變更複寫策略。

   `NetworkTopologyStrategy` – 每個區域的複寫因素為三個 AWS 區域，因為 Amazon Keyspaces 預設會將資料複寫到相同區域內[的三個可用區域](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)。

   下列 CQL 陳述式為範例。

   ```
   CREATE KEYSPACE mykeyspace
   WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3' };
   ```

1. 您可以使用 CQL 陳述式查詢`system_multiregion_info`金鑰空間中的`tables`資料表，以程式設計方式列出區域和您指定的多區域資料表狀態。下列程式碼為範例。

   ```
   SELECT * from system_multiregion_info.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
   ```

   陳述式的輸出如下所示：

   ```
    keyspace_name  | table_name     | region         | status
   ----------------+----------------+----------------+--------
    mykeyspace     | mytable        | us-east-1      | ACTIVE
    mykeyspace     | mytable        | ap-southeast-1 | ACTIVE
    mykeyspace     | mytable        | eu-west-1      | ACTIVE
   ```

------
#### [ CLI ]

**使用 建立新的多區域金鑰空間 AWS CLI**
+ 若要建立多區域金鑰空間，您可以使用下列 CLI 陳述式。在 中指定您目前的區域和至少一個額外的區域`regionList`。

  ```
  aws keyspaces create-keyspace --keyspace-name mykeyspace \
  --replication-specification replicationStrategy=MULTI_REGION,regionList=us-east-1,eu-west-1
  ```

------

若要建立多區域資料表，請參閱 [在 Amazon Keyspaces 中使用預設設定建立多區域資料表](tables-mrr-create-default.md)和 [在 Amazon Keyspaces 中使用自動擴展的佈建模式中建立多區域資料表](tables-mrr-create-provisioned.md)。

# 將 AWS 區域 新增至 Amazon Keyspaces 中的金鑰空間
<a name="keyspaces-multi-region-add-replica"></a>

您可以將新的 AWS 區域 新增至單一或多區域金鑰空間的金鑰空間。新的複本區域會套用至金鑰空間中的所有資料表。

若要將單一區域變更為多區域金鑰空間，您必須為金鑰空間中的所有資料表啟用用戶端時間戳記。如需詳細資訊，請參閱[Amazon Keyspaces 中的用戶端時間戳記](client-side-timestamps.md)。

如果您要將其他區域新增至多區域金鑰空間，Amazon Keyspaces 必須使用每個現有資料表的一次性跨區域還原，將現有資料表複寫至新區域。每個資料表的還原費用按 GB 計費，如需詳細資訊，請參閱 Amazon Keyspaces （適用於 Apache Cassandra) 定價頁面上的[備份和還原](https://aws.amazon.com/keyspaces/pricing/#:~:text=per%20GB-month-,Restoring%20a%20table,-Restoring%20a%20table)。針對此還原操作，跨區域傳輸資料無需付費。除了資料之外，除了標籤之外的所有資料表屬性都會複寫到新的區域。

您可以在 CQL、 `update-keyspace`命令與 AWS CLI或 主控台中使用 `ALTER KEYSPACE`陳述式，將新區域新增至 Amazon Keyspaces 中的單一或多區域金鑰空間。若要成功執行 陳述式，您使用的帳戶必須位於已提供 金鑰空間的其中一個區域中。正在新增複本時，您無法對正在更新和複寫的資源執行任何其他資料定義語言 (DDL) 操作。

如需新增區域所需許可的詳細資訊，請參閱 [設定將 新增至金鑰空間所需的 IAM AWS 區域 許可](howitworks_replication_permissions_addReplica.md)。

**注意**  
將其他區域新增至單一區域金鑰空間時，Amazon Keyspaces 會使用`AWSServiceRoleForAmazonKeyspacesReplication`您帳戶中的名稱建立服務連結角色。此角色允許 Amazon Keyspaces 將資料表複寫至新區域，並代表您將寫入從一個資料表複寫至多區域資料表的所有複本。如需詳細資訊，請參閱 [使用 Amazon Keyspaces 多區域複寫的角色](using-service-linked-roles-multi-region-replication.md)。

------
#### [ Console ]

請依照下列步驟，使用 Amazon Keyspaces 主控台將區域新增至金鑰空間。

**將區域新增至金鑰空間 （主控台）**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 在導覽窗格中，選擇**金鑰空間**，然後從清單中選擇金鑰空間。

1. 選擇 ** (AWS 區域)** 索引標籤。

1. 在**AWS 區域**索引標籤上，選擇**新增區域**。

1. 在**新增區域**對話方塊中，選擇您要新增至金鑰空間的其他區域。

1. 若要完成，請選擇**新增**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 將區域新增至金鑰空間**
+ 若要將新區域新增至金鑰空間，您可以使用下列陳述式。在此範例中，美國東部 （維吉尼亞北部） 區域和美國西部 （奧勒岡） 區域已提供 金鑰空間，而 CQL 陳述式正在新增美國西部 （加利佛尼亞北部） 區域。

  ```
  ALTER KEYSPACE my_keyspace
  WITH REPLICATION = {
      'class': 'NetworkTopologyStrategy',
      'us-east-1': '3',
      'us-west-2': '3',
      'us-west-1': '3'
  } AND CLIENT_SIDE_TIMESTAMPS = {'status': 'ENABLED'};
  ```

------
#### [ CLI ]

**使用 將區域新增至金鑰空間 AWS CLI**
+ 若要使用 CLI 將新區域新增至金鑰空間，您可以使用下列範例。請注意，`client-side-timestamps` 預設值為 `DISABLED`。使用 `update-keyspace`命令，您必須將值變更為 `ENABLED`。

  ```
  aws keyspaces update-keyspace \
  --keyspace-name my_keyspace \
  --replication-specification '{"replicationStrategy": "MULTI_REGION", "regionList": ["us-east-1", "eu-west-1", "eu-west-3"] }' \
  --client-side-timestamps '{"status": "ENABLED"}'
  ```

------

# 將新區域新增至金鑰空間時，請檢查複寫進度
<a name="keyspaces-multi-region-replica-status"></a>

將新區域新增至 Amazon Keyspaces 金鑰空間是一項長時間執行的操作。若要追蹤進度，您可以使用本節中顯示的查詢。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 驗證新增區域進度**
+  若要驗證在指定金鑰空間中建立新資料表複本的進度，您可以查詢`system_multiregion_info.keyspaces`資料表。下列 CQL 陳述式為範例。

  ```
  SELECT keyspace_name, region, status, tables_replication_progress
  FROM system_multiregion_info.keyspaces
  WHERE keyspace_name = 'my_keyspace';
  ```

  當複寫操作正在進行時，狀態會顯示新區域中資料表建立的進度。這是 10 個資料表中有 5 個已複寫到新區域的範例。

  ```
   keyspace_name | region    | status    | tables_replication_progress
  ---------------+-----------+-----------+-------------------------
     my_keyspace | us-east-1 | Updating  | 
     my_keyspace | us-west-2 | Updating  | 
     my_keyspace | eu-west-1 | Creating  | 50%
  ```

  複寫程序成功完成後，輸出應如下所示。

  ```
   keyspace_name | region    | status
  ---------------+-----------+-----------
     my_keyspace | us-east-1 | Active
     my_keyspace | us-west-2 | Active
     my_keyspace | eu-west-1 | Active
  ```

------
#### [ CLI ]

**使用 AWS CLI 驗證新增區域進度**
+ 若要確認指定金鑰空間的資料表複本建立狀態，您可以使用下列範例。

  ```
  aws keyspaces get-keyspace \
  --keyspace-name my_keyspace
  ```

  輸出看起來應該與此範例類似。

  ```
  {
      "keyspaceName": "my_keyspace",
      "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/my_keyspace/",
      "replicationStrategy": "MULTI_REGION",
      "replicationRegions": [
          "us-east-1",
          "eu-west-1"
      ]
      "replicationGroupStatus": [
          {
              "RegionName": "us-east-1",
              "KeyspaceStatus": "Active"
          },
          {
              "RegionName": "eu-west-1",
              "KeyspaceStatus": "Creating",
              "TablesReplicationProgress": "50.0%"
          }
      ]
  }
  ```

------

# 在 Amazon Keyspaces 中使用預設設定建立多區域資料表
<a name="tables-mrr-create-default"></a>

本節提供如何在隨需模式下使用所有預設設定建立多區域資料表的範例。您可以使用 CQL 或 在 Amazon Keyspaces 主控台上執行此操作 AWS CLI。您在多區域金鑰空間中建立的所有資料表會自動從金鑰空間繼承多區域設定。

若要建立多區域金鑰空間，請參閱 [在 Amazon Keyspaces 中建立多區域金鑰空間](keyspaces-mrr-create.md)。

------
#### [ Console ]

**使用預設設定建立多區域資料表 （主控台）**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 選擇多區域金鑰空間。

1. 在**資料表**索引標籤上，選擇**建立資料表**。

1. 針對**資料表名稱**，輸入資料表的名稱。正在複寫 AWS 區域 此資料表的 會顯示在資訊方塊中。

1. 繼續執行資料表結構描述。

1. 在**資料表設定**下，繼續執行**預設設定**選項。請注意多區域資料表的下列預設設定。
   + **容量模式** – 預設容量模式為**隨需**。如需設定**佈建**模式的詳細資訊，請參閱 [在 Amazon Keyspaces 中使用自動擴展的佈建模式中建立多區域資料表](tables-mrr-create-provisioned.md)。
   + **加密金鑰管理** – 僅支援 **AWS 擁有的金鑰**選項。
   + **用戶端時間戳記** – 多區域資料表需要此功能。
   + 如果您需要開啟資料表及其所有複本的存留時間 (TTL)，請選擇**自訂設定**。
**注意**  
您無法變更現有多區域資料表上的 TTL 設定。

1. 若要完成，請選擇**建立資料表**。

------
#### [ Cassandra Query Language (CQL) ]

**使用預設設定在隨需模式下建立多區域資料表**
+ 若要建立具有預設設定的多區域資料表，您可以使用下列 CQL 陳述式。

  ```
  CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck))
      WITH CUSTOM_PROPERTIES = {
  	'capacity_mode':{
  		'throughput_mode':'PAY_PER_REQUEST'
  	},
  	'point_in_time_recovery':{
  		'status':'enabled'
  	},
  	'encryption_specification':{
  		'encryption_type':'AWS_OWNED_KMS_KEY'
  	},
  	'client_side_timestamps':{
  		'status':'enabled'
  	}
  };
  ```

------
#### [ CLI ]

**使用 AWS CLI**

1. 若要使用預設設定建立多區域資料表，您只需要指定結構描述。您可以使用下列範例。

   ```
   aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable \
   --schema-definition 'allColumns=[{name=pk,type=int}],partitionKeys={name= pk}'
   ```

   命令的輸出為：

   ```
   {
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable"
   }
   ```

1. 若要確認資料表的設定，您可以使用下列陳述式。

   ```
   aws keyspaces get-table --keyspace-name mykeyspace --table-name mytable
   ```

   輸出會顯示多區域資料表的所有預設設定。

   ```
   {
       "keyspaceName": "mykeyspace",
       "tableName": "mytable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable",
       "creationTimestamp": "2023-12-19T16:50:37.639000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "pk",
                   "type": "int"
               }
           ],
           "partitionKeys": [
               {
                   "name": "pk"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2023-12-19T16:50:37.639000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       },
       "clientSideTimestamps": {
           "status": "ENABLED"
       },
       "replicaSpecifications": [
           {
               "region": "us-east-1",
               "status": "ACTIVE",
               "capacitySpecification": {
                   "throughputMode": "PAY_PER_REQUEST",
                   "lastUpdateToPayPerRequestTimestamp": 1702895811.469
               }
           },
           {
               "region": "eu-north-1",
               "status": "ACTIVE",
               "capacitySpecification": {
                   "throughputMode": "PAY_PER_REQUEST",
                   "lastUpdateToPayPerRequestTimestamp": 1702895811.121
               }
           }
       ]
   }
   ```

------

# 在 Amazon Keyspaces 中使用自動擴展的佈建模式中建立多區域資料表
<a name="tables-mrr-create-provisioned"></a>

本節提供如何使用自動擴展在佈建模式中建立多區域資料表的範例。您可以使用 CQL 或 在 Amazon Keyspaces 主控台上執行此操作 AWS CLI。

如需支援的組態和多區域複寫功能的詳細資訊，請參閱 [Amazon Keyspaces 多區域複寫用量備註](multiRegion-replication_usage-notes.md)。

若要建立多區域金鑰空間，請參閱 [在 Amazon Keyspaces 中建立多區域金鑰空間](keyspaces-mrr-create.md)。

當您使用自動擴展設定在佈建模式中建立新的多區域資料表時，您可以指定資料表的一般設定，這些設定對複寫 AWS 區域 資料表的所有項目都有效。然後，您可以覆寫每個複本的讀取容量設定和讀取自動擴展設定。不過，寫入容量會在所有複本之間保持同步，以確保有足夠的容量跨所有區域複寫寫入。

**注意**  
Amazon Keyspaces 自動擴展需要存在可代表您執行自動擴展動作的服務連結角色 (`AWSServiceRoleForApplicationAutoScaling_CassandraTable`)。系統會自動建立此角色。如需詳細資訊，請參閱[使用 Amazon Keyspaces 的服務連結角色](using-service-linked-roles.md)。

------
#### [ Console ]

**建立啟用自動擴展的新多區域資料表**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 選擇多區域金鑰空間。

1. 在**資料表**索引標籤上，選擇**建立資料表**。

1. 在**資料表詳細資訊區段的建立**資料表頁面上，選取金鑰空間，並提供新資料表的名稱。 ****

1. 在**資料欄**區段中，建立資料表的結構描述。

1. 在**主索引鍵**區段中，定義資料表的主索引鍵，然後選取選用的叢集資料欄。

1. 在**資料表設定**區段中，選擇**自訂設定**。

1. 繼續**讀取/寫入容量設定**。

1. 針對**容量模式**，選擇**佈建**。

1. 在**讀取容量**區段中，確認**已自動選取擴展**。

   您可以選擇為複寫資料表的所有 AWS 區域 設定相同的讀取容量單位。或者，您可以清除核取方塊，並以不同方式設定每個區域的讀取容量。

   如果您選擇以不同的方式設定每個區域，您可以為每個資料表複本選取最小和最大讀取容量單位，以及目標使用率。
   + **最小容量單位** – 輸入資料表應隨時準備好支援的最小輸送量層級的值。該值必須介於 1 和您帳戶的每秒最大輸送量配額之間 （預設為 40，000)。
   + **最大容量單位** – 輸入您要為資料表佈建的最大輸送量。該值必須介於 1 和您帳戶的每秒最大輸送量配額之間 （預設為 40，000)。
   + **目標使用率** – 輸入介於 20% 到 90% 之間的目標使用率。當流量超過定義的目標使用率時，容量會自動擴展。當流量低於定義的目標時，會自動再次縮減規模。
   + 如果您想要手動佈建資料表的讀取容量，請清除**自動調整規模**核取方塊。此設定適用於資料表的所有複本。
**注意**  
為了確保所有複本有足夠的讀取容量，我們建議針對佈建的多區域資料表進行 Amazon Keyspaces 自動擴展。
**注意**  
若要進一步了解您帳戶的預設配額以及如何增加這些配額，請參閱 [Amazon Keyspaces 配額 （適用於 Apache Cassandra)](quotas.md)。

1. 在**寫入容量**區段中，確認**已自動選取擴展**。然後設定資料表的容量單位。寫入容量單位會保持同步， AWS 區域 以確保有足夠的容量跨區域複寫寫入事件。
   + 如果您想要手動佈建資料表的寫入容量，請**自動清除擴展**。此設定適用於資料表的所有複本。
**注意**  
為了確保所有複本有足夠的寫入容量，我們建議針對佈建的多區域資料表進行 Amazon Keyspaces 自動擴展。

1. 選擇 **Create Table** (建立資料表)。您的資料表是使用指定的自動擴展參數建立的。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 建立具有佈建容量模式和自動擴展的多區域資料表**
+ 若要使用自動擴展在佈建模式中建立多區域資料表，您必須先定義資料表`CUSTOM_PROPERTIES`的 來指定容量模式。指定佈建容量模式之後，您可以使用 來設定資料表的自動擴展設定`AUTOSCALING_SETTINGS`。

  如需自動擴展設定、目標追蹤政策、目標值和選用設定的詳細資訊，請參閱 [使用自動擴展建立新的資料表](autoscaling.createTable.md)。

  若要定義特定區域中資料表複本的讀取容量，您可以將下列參數設定為資料表 的一部分`replica_updates`：
  + 區域
  + 佈建的讀取容量單位 （選用）
  + 讀取容量的自動擴展設定 （選用）

  下列範例顯示佈建模式中多區域資料表的`CREATE TABLE`陳述式。一般寫入和讀取容量自動擴展設定相同。不過，讀取自動擴展設定會指定額外的冷卻時間 60 秒，然後再將資料表的讀取容量向上或向下擴展。此外，美國東部區域 （維吉尼亞北部） 的讀取容量自動擴展設定高於其他複本的讀取容量自動擴展設定。此外，目標值設定為 70%，而不是 50%。

  ```
  CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck))
  WITH CUSTOM_PROPERTIES = {  
      'capacity_mode': {  
          'throughput_mode': 'PROVISIONED',  
          'read_capacity_units': 5,  
          'write_capacity_units': 5  
      }
  } AND AUTOSCALING_SETTINGS = {
      'provisioned_write_capacity_autoscaling_update': {
          'maximum_units': 10,  
          'minimum_units': 5,  
          'scaling_policy': {
              'target_tracking_scaling_policy_configuration': {
                  'target_value': 50
              }  
          }  
      },
      'provisioned_read_capacity_autoscaling_update': {  
          'maximum_units': 10,  
          'minimum_units': 5,  
          'scaling_policy': {  
              'target_tracking_scaling_policy_configuration': {  
                  'target_value': 50,
                  'scale_in_cooldown': 60,  
                  'scale_out_cooldown': 60
              }  
          }  
      },
      'replica_updates': {
          'us-east-1': {
              'provisioned_read_capacity_autoscaling_update': {
                  'maximum_units': 20,
                  'minimum_units': 5,
                  'scaling_policy': {
                      'target_tracking_scaling_policy_configuration': {
                          'target_value': 70
                      } 
                  }
              }
          }
      }
  };
  ```

------
#### [ CLI ]

**使用 在佈建模式下建立具有自動擴展的新多區域資料表 AWS CLI**
+ 若要使用自動擴展組態在佈建模式中建立多區域資料表，您可以使用 AWS CLI。請注意，您必須使用 Amazon Keyspaces CLI `create-table`命令來設定多區域自動擴展設定。這是因為 Application Auto Scaling 是 Amazon Keyspaces 用來代表您執行自動擴展的服務，不支援多個區域。

  如需自動擴展設定、目標追蹤政策、目標值和選用設定的詳細資訊，請參閱 [使用自動擴展建立新的資料表](autoscaling.createTable.md)。

  若要定義特定區域中資料表複本的讀取容量，您可以將下列參數設定為資料表 的一部分`replicaSpecifications`：
  + 區域
  + 佈建的讀取容量單位 （選用）
  + 讀取容量的自動擴展設定 （選用）

  當您使用複雜的自動擴展設定和資料表複本的不同組態建立佈建多區域資料表時，從 JSON 檔案載入資料表的自動擴展設定和複本組態會很有幫助。

  若要使用下列程式碼範例，您可以從 [auto-scaling.zip](samples/auto-scaling.zip) 下載範例 JSON 檔案，並擷取 `auto-scaling.json` 和 `replication.json`。請記下檔案的路徑。

  在此範例中，JSON 檔案位於目前的 目錄中。如需不同的檔案路徑選項，請參閱[如何從檔案載入參數](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)。

  ```
  aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable \
  --schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]' \
  --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \
  --auto-scaling-specification file://auto-scaling.json \
  --replica-specifications file://replication.json
  ```

------

# 更新 Amazon Keyspaces 中多區域資料表的佈建容量和自動擴展設定
<a name="tables-mrr-autoscaling"></a>

本節包含如何使用 主控台、CQL 和 AWS CLI 來管理佈建多區域資料表之 Amazon Keyspaces 自動擴展設定的範例。如需一般自動擴展組態選項及其運作方式的詳細資訊，請參閱 [使用 Amazon Keyspaces 自動擴展自動管理輸送量容量](autoscaling.md)。

請注意，如果您使用多區域資料表的佈建容量模式，您必須一律使用 Amazon Keyspaces API 呼叫來設定自動擴展。這是因為基礎 Application Auto Scaling API 操作不熟悉區域。

如需如何預估佈建多區域資料表寫入容量輸送量的詳細資訊，請參閱 [Amazon Keyspaces 中多區域資料表的估計和佈建容量](tables-multi-region-capacity.md)。

如需 Amazon Keyspaces API 的詳細資訊，請參閱 [https://docs.aws.amazon.com/keyspaces/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/keyspaces/latest/APIReference/Welcome.html)。

當您更新多區域資料表的佈建模式或自動擴展設定時，您可以更新資料表每個複本的讀取容量設定和讀取自動擴展組態。

不過，寫入容量會在所有複本之間保持同步，以確保有足夠的容量跨所有區域複寫寫入。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 更新多區域資料表的佈建容量和自動擴展設定**
+  您可以使用 `ALTER TABLE` 更新現有資料表的容量模式和自動擴展設定。如果您要更新目前處於隨需容量模式的資料表，`capacity_mode`則需要 。如果您的資料表已處於佈建容量模式，則可以省略此欄位。

  如需自動擴展設定、目標追蹤政策、目標值和選用設定的詳細資訊，請參閱 [使用自動擴展建立新的資料表](autoscaling.createTable.md)。

  在相同的陳述式中，您也可以更新資料表的 `replica_updates` 屬性，以更新特定區域中資料表複本的讀取容量和自動擴展設定。下列陳述式為範例。

  ```
  ALTER TABLE mykeyspace.mytable
  WITH CUSTOM_PROPERTIES = {  
      'capacity_mode': {  
          'throughput_mode': 'PROVISIONED',  
          'read_capacity_units': 1,  
          'write_capacity_units': 1  
      }
  } AND AUTOSCALING_SETTINGS = {
      'provisioned_write_capacity_autoscaling_update': {
          'maximum_units': 10,  
          'minimum_units': 5,  
          'scaling_policy': {
              'target_tracking_scaling_policy_configuration': {
                  'target_value': 50
              }  
          }  
      },
      'provisioned_read_capacity_autoscaling_update': {  
          'maximum_units': 10,  
          'minimum_units': 5,  
          'scaling_policy': {  
              'target_tracking_scaling_policy_configuration': {  
                  'target_value': 50,
                  'scale_in_cooldown': 60,  
                  'scale_out_cooldown': 60
              }  
          }  
      },
      'replica_updates': {
          'us-east-1': {
              'provisioned_read_capacity_autoscaling_update': {
                  'maximum_units': 20,
                  'minimum_units': 5,
                  'scaling_policy': {
                      'target_tracking_scaling_policy_configuration': {
                          'target_value': 70
                      } 
                  }
              }
          }
      }
  };
  ```

------
#### [ CLI ]

**使用 更新多區域資料表的佈建容量和自動擴展設定 AWS CLI**
+ 若要更新現有資料表的佈建模式和自動擴展組態，您可以使用 AWS CLI `update-table`命令。

  請注意，您必須使用 Amazon Keyspaces CLI 命令來建立或修改多區域自動擴展設定。這是因為 Application Auto Scaling 是 Amazon Keyspaces 用來代表您執行資料表容量自動擴展的服務，不支援多個 AWS 區域。

   若要更新特定區域中資料表複本的讀取容量，您可以變更資料表 的下列其中一個選用參數`replicaSpecifications`：
  + 佈建的讀取容量單位 （選用）
  + 讀取容量的自動擴展設定 （選用）

  當您使用複雜的自動擴展設定和資料表複本的不同組態更新多區域資料表時，從 JSON 檔案載入資料表的自動擴展設定和複本組態會很有幫助。

  若要使用下列程式碼範例，您可以從 [auto-scaling.zip](samples/auto-scaling.zip) 下載範例 JSON 檔案，並解壓縮 `auto-scaling.json`和 `replication.json`。請記下檔案的路徑。

  在此範例中，JSON 檔案位於目前的 目錄中。如需不同的檔案路徑選項，請參閱[如何從檔案載入參數](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)。

  ```
  aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \
  --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \
  --auto-scaling-specification file://auto-scaling.json \
  --replica-specifications file://replication.json
  ```

------

# 在 Amazon Keyspaces 中檢視多區域資料表的佈建容量和自動擴展設定
<a name="tables-mrr-view"></a>

您可以使用 CQL 或 在 Amazon Keyspaces 主控台上檢視多區域資料表的佈建容量和自動擴展設定 AWS CLI。本節提供如何使用 CQL 和 執行此操作的範例 AWS CLI。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 檢視多區域資料表的佈建容量和自動擴展設定**
+ 若要檢視多區域資料表的自動擴展組態，請使用下列命令。

  ```
  SELECT * FROM system_multiregion_info.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
  ```

  此命令的輸出如下所示：

  ```
   keyspace_name  | table_name | region         | provisioned_read_capacity_autoscaling_update                                                                                                                                                                      | provisioned_write_capacity_autoscaling_update
  ----------------+------------+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    mykeyspace    |  mytable   | ap-southeast-1 | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}
    mykeyspace    |  mytable   | us-east-1      | {'minimum_units': 5, 'maximum_units': 20, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 70, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}
    mykeyspace    |  mytable   | eu-west-1      | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}
  ```

------
#### [ CLI ]

**使用 檢視多區域資料表的佈建容量和自動擴展設定 AWS CLI**
+ 若要檢視多區域資料表的自動擴展組態，您可以使用 `get-table-auto-scaling-settings`操作。下列 CLI 命令為範例。

  ```
  aws keyspaces get-table-auto-scaling-settings --keyspace-name mykeyspace --table-name mytable
  ```

  您應該會看到下列輸出。

  ```
  {
      "keyspaceName": "mykeyspace",
      "tableName": "mytable",
      "resourceArn": "arn:aws:cassandra:us-east-1:777788889999:/keyspace/mykeyspace/table/mytable",
      "autoScalingSpecification": {
          "writeCapacityAutoScaling": {
              "autoScalingDisabled": false,
              "minimumUnits": 5,
              "maximumUnits": 10,
              "scalingPolicy": {
                  "targetTrackingScalingPolicyConfiguration": {
                      "disableScaleIn": false,
                      "scaleInCooldown": 0,
                      "scaleOutCooldown": 0,
                      "targetValue": 50.0
                  }
              }
          },
          "readCapacityAutoScaling": {
              "autoScalingDisabled": false,
              "minimumUnits": 5,
              "maximumUnits": 20,
              "scalingPolicy": {
                  "targetTrackingScalingPolicyConfiguration": {
                      "disableScaleIn": false,
                      "scaleInCooldown": 60,
                      "scaleOutCooldown": 60,
                      "targetValue": 70.0
                  }
              }
          }
      },
      "replicaSpecifications": [
          {
              "region": "us-east-1",
              "autoScalingSpecification": {
                  "writeCapacityAutoScaling": {
                      "autoScalingDisabled": false,
                      "minimumUnits": 5,
                      "maximumUnits": 10,
                      "scalingPolicy": {
                          "targetTrackingScalingPolicyConfiguration": {
                              "disableScaleIn": false,
                              "scaleInCooldown": 0,
                              "scaleOutCooldown": 0,
                              "targetValue": 50.0
                          }
                      }
                  },
                  "readCapacityAutoScaling": {
                      "autoScalingDisabled": false,
                      "minimumUnits": 5,
                      "maximumUnits": 20,
                      "scalingPolicy": {
                          "targetTrackingScalingPolicyConfiguration": {
                              "disableScaleIn": false,
                              "scaleInCooldown": 60,
                              "scaleOutCooldown": 60,
                              "targetValue": 70.0
                          }
                      }
                  }
              }
          },
          {
              "region": "eu-north-1",
              "autoScalingSpecification": {
                  "writeCapacityAutoScaling": {
                      "autoScalingDisabled": false,
                      "minimumUnits": 5,
                      "maximumUnits": 10,
                      "scalingPolicy": {
                          "targetTrackingScalingPolicyConfiguration": {
                              "disableScaleIn": false,
                              "scaleInCooldown": 0,
                              "scaleOutCooldown": 0,
                              "targetValue": 50.0
                          }
                      }
                  },
                  "readCapacityAutoScaling": {
                      "autoScalingDisabled": false,
                      "minimumUnits": 5,
                      "maximumUnits": 10,
                      "scalingPolicy": {
                          "targetTrackingScalingPolicyConfiguration": {
                              "disableScaleIn": false,
                              "scaleInCooldown": 60,
                              "scaleOutCooldown": 60,
                              "targetValue": 50.0
                          }
                      }
                  }
              }
          }
      ]
  }
  ```

------

# 關閉 Amazon Keyspaces 中資料表的自動擴展
<a name="tables-mrr-autoscaling-off"></a>

本節提供如何在佈建容量模式中關閉多區域資料表自動擴展的範例。您可以使用 CQL 或 在 Amazon Keyspaces 主控台上執行此操作 AWS CLI。

**重要**  
對於使用佈建容量模式的多區域資料表，我們建議您使用自動擴展。如需詳細資訊，請參閱[Amazon Keyspaces 中多區域資料表的估計和佈建容量](tables-multi-region-capacity.md)。

**注意**  
若要刪除 Application Auto Scaling 使用的服務連結角色，您必須在帳戶中所有 的所有資料表上停用自動擴展 AWS 區域。

------
#### [ Console ]

**關閉主控台上現有多區域資料表的 Amazon Keyspaces 自動擴展**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 選擇您要使用的資料表，然後選擇**容量**索引標籤。

1. 在**容量設定**區段中，選擇**編輯**。

1. 若要停用 Amazon Keyspaces 自動擴展，請清除**自動擴展**核取方塊。停用自動擴展會將資料表取消註冊為 Application Auto Scaling 的可擴展目標。若要刪除 Application Auto Scaling 用來存取 Amazon Keyspaces 資料表的服務連結角色，請遵循中的步驟[刪除 Amazon Keyspaces 的服務連結角色](using-service-linked-roles-app-auto-scaling.md#delete-service-linked-role-app-auto-scaling)。

1. 定義自動擴展設定時，請選擇**儲存**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 關閉多區域資料表的自動擴展**
+  您可以使用 `ALTER TABLE` 關閉現有資料表的自動擴展。請注意，您無法關閉個別資料表複本的自動擴展。

  在下列範例中，資料表讀取容量的自動擴展已關閉。

  ```
  ALTER TABLE mykeyspace.mytable
  WITH AUTOSCALING_SETTINGS = {
      'provisioned_read_capacity_autoscaling_update': {
          'autoscaling_disabled': true
      }
  };
  ```

------
#### [ CLI ]

**使用 關閉多區域資料表的自動擴展 AWS CLI**
+  您可以使用 AWS CLI `update-table`命令來關閉現有資料表的自動擴展。請注意，您無法關閉個別資料表複本的自動擴展。

  在下列範例中，資料表讀取容量的自動擴展已關閉。

  ```
  aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable 
             \ --auto-scaling-specification readCapacityAutoScaling={autoScalingDisabled=true}
  ```

------

# 在 Amazon Keyspaces 中手動設定多區域資料表的佈建容量
<a name="tables-mrr-capacity-manually"></a>

如果您必須關閉多區域資料表的自動擴展，則可以使用 CQL 或 手動佈建複本資料表的讀取容量 AWS CLI。

**注意**  
對於使用佈建容量模式的多區域資料表，我們建議您使用自動擴展。如需詳細資訊，請參閱[Amazon Keyspaces 中多區域資料表的估計和佈建容量](tables-multi-region-capacity.md)。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 手動設定多區域資料表的佈建容量**
+ 您可以使用 `ALTER TABLE` 手動佈建複本資料表的資料表讀取容量。

  ```
  ALTER TABLE mykeyspace.mytable
  WITH CUSTOM_PROPERTIES = {  
      'capacity_mode': {  
          'throughput_mode': 'PROVISIONED',  
          'read_capacity_units': 1,  
          'write_capacity_units': 1  
      },
      'replica_updates': {
          'us-east-1': {
              'read_capacity_units': 2
           }
      }
  };
  ```

------
#### [ CLI ]

**使用 手動設定多區域資料表的佈建容量 AWS CLI**
+ 如果您必須關閉多區域資料表的自動擴展，您可以使用 `update-table`手動佈建複本資料表的讀取容量。

  ```
  aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \
  --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \
  --replica-specifications region="us-east-1",readCapacityUnits=5
  ```

------