

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

# 設定 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
  ```

------