

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

# 減少碎片中的複本數量
<a name="decrease-replica-count"></a>

您可以減少 Valkey 或 Redis OSS （啟用叢集模式） 碎片中的複本數量，或 Valkey 或 Redis OSS （停用叢集模式） 的複寫群組中的複本數量：
+ 對於 Valkey 或 Redis OSS （停用叢集模式），如果啟用異地同步備份，您可以將複本數量減少為一個，如果未啟用，則可以減少為零。
+ 對於 Valkey 或 Redis OSS （啟用叢集模式），您可以將複本數量減少為零。但是，若主要節點失敗，您將無法容錯移轉至複本。

您可以使用 AWS 管理主控台、 AWS CLI 或 ElastiCache API 來減少節點群組 （碎片） 或複寫群組中的複本數量。

**Topics**
+ [使用 AWS 管理主控台](#decrease-replica-count-con)
+ [使用 AWS CLI](#decrease-replica-count-cli)
+ [使用 ElastiCache API](#decrease-replica-count-api)

## 使用 AWS 管理主控台
<a name="decrease-replica-count-con"></a>

下列程序使用 主控台來減少 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組中的複本數量。

**減少 Valkey 或 Redis OSS 碎片中的複本數量**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey** 或 **Redis OSS**，然後選擇您要刪除複本的複寫群組名稱。

1. ​選擇每個您欲從其中移除複本節點的碎片方塊。

1. 選擇 **Delete replicas (刪除複本)**。

1. 完成 **Delete Replicas from Shards (從碎片刪除複本)** 頁面：

   1. 針對 **New number of replicas/shard (新的複本/碎片數)**，輸入您希望所選取碎片擁有的複本數。該數字必須等於或大於 1。我們建議您為每個碎片設定至少兩個複本，做為運作的最低需求。

   1. 選擇 **Delete (刪除)** 以刪除複本，或選擇 **Cancel (取消)** 以取消操作。

**重要**  
如果您未指定要刪除的複本節點，ElastiCache for Redis OSS 會自動選取要刪除的複本節點。執行此作業時，ElastiCache for Redis OSS 會嘗試保留複寫群組的異地同步備份架構，接著保留具有主要叢集最低複寫延遲的複本。
您無法刪除複寫群組中的主節點。若您指定刪除主要節點，操作會失敗並出現錯誤，指出已選取主要節點進行刪除。

## 使用 AWS CLI
<a name="decrease-replica-count-cli"></a>

若要減少 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `decrease-replica-count`命令搭配下列參數：
+ `--replication-group-id` - 必要項目。識別您希望減少複本數的複寫群組。
+ `--apply-immediately` 或 `--no-apply-immediately` - 必要項目。指定是否要立即減少複本計數 (`--apply-immediately`)，或是在下一次維護時間時進行 (`--no-apply-immediately`)。目前不支援 `--no-apply-immediately`。
+ `--new-replica-count` - 選用。指定您希望的複本節點數量。`--new-replica-count` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `--new-replica-count` 的值不符合此需求，呼叫便會失敗。
+ `--replicas-to-remove` - 選用。包含節點 ID 清單，指定要移除的複本節點。
+ `--replica-configuration` - 選用。允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `--replica-configuration` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，碎片 ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 選用參數，指定您希望的複本節點數。`NewReplicaCount` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `NewReplicaCount` 的值不符合此需求，呼叫便會失敗。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `--replica-configuration`的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `--new-replica-count`、`--replicas-to-remove` 或 `--replica-configuration` 參數。

**Example**  
以下範例會使用 `--new-replica-count` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count
    --replication-group-id sample-repl-group \
    --new-replica-count 1 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --new-replica-count 1 ^
    --apply-immediately
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count \
    --replication-group-id sample-repl-group \
    --replicas-to-remove 0001,0003 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --replicas-to-remove 0001,0003 \
    --apply-immediately
```
以下範例會使用 `--replica-configuration` 將複寫群組 `sample-repl-group` 中的複本數減少到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache decrease-replica-count \
    --replication-group-id sample-repl-group \
    --replica-configuration \
        NodeGroupId=0001,NewReplicaCount=1,PreferredAvailabilityZones=us-east-1a,us-east-1c \
        NodeGroupId=0003,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache decrease-replica-count ^
    --replication-group-id sample-repl-group ^
    --replica-configuration ^
        NodeGroupId=0001,NewReplicaCount=2,PreferredAvailabilityZones=us-east-1a,us-east-1c ^
        NodeGroupId=0003,NewReplicaCount=3,PreferredAvailabilityZones=us-east-1a,us-east-1b,us-east-1c \
    --apply-immediately
```

如需使用 CLI 減少複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [decrease-replica-count](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html)。

## 使用 ElastiCache API
<a name="decrease-replica-count-api"></a>

若要減少 Valkey 或 Redis OSS 碎片中的複本數量，請使用 `DecreaseReplicaCount`動作搭配下列參數：
+ `ReplicationGroupId` - 必要項目。識別您希望減少複本數的複寫群組。
+ `ApplyImmediately` - 必要項目。指定是否要立即減少複本計數 (`ApplyImmediately=True`)，或是在下一次維護時間時進行 (`ApplyImmediately=False`)。目前不支援 `ApplyImmediately=False`。
+ `NewReplicaCount` - 選用。指定您希望的複本節點數量。`NewReplicaCount` 的值必須為有效值，小於節點群組中目前的數量。如需了解最低允許值，請參閱[減少碎片中的複本數量](#decrease-replica-count)。若 `--new-replica-count` 的值不符合此需求，呼叫便會失敗。
+ `ReplicasToRemove` - 選用。包含節點 ID 清單，指定要移除的複本節點。
+ `ReplicaConfiguration` - 選用。包含節點群組清單，允許您為每個節點群組分別設定複本數及可用區域。針對您要獨立設定每個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，使用此參數。

  `ReplicaConfiguraion` 有三個選用成員：
  + `NodeGroupId` - 待設定節點群組的四位數 ID。對於 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，節點群組 ID 一律為 `0001`。若要尋找 Valkey 或 Redis OSS （啟用叢集模式） 節點群組的 （碎片） ID，請參閱 [尋找碎片的 ID](Shards.md#shard-find-id)。
  + `NewReplicaCount` - 此作業結束後，您希望此節點群組中擁有的複本數。若已啟用多個可用區，該值必須小於目前的複本數，且其最小值為 1；若未啟用具備自動容錯移轉的多個可用區，則最小值為 0。若此值不小於目前節點群組中的複本數，則呼叫會失敗並附帶異常。
  + `PreferredAvailabilityZones` - `PreferredAvailabilityZone` 字串的清單，指定複寫群組節點所在的可用區域。`PreferredAvailabilityZone` 值的數量必須等於 `NewReplicaCount` \$1 1 的值，以包含主要節點。如果省略 `ReplicaConfiguration` 的此成員，ElastiCache for Redis OSS 會為每個新複本選擇可用區域。

**重要**  
您必須包含一個 (並且只能一個) `NewReplicaCount`、`ReplicasToRemove` 或 `ReplicaConfiguration` 參數。

**Example**  
以下範例會使用 `NewReplicaCount` 將複寫群組 `sample-repl-group` 中的複本數減少至一。範例完成時，每個節點群組中都會有一個複本。無論是具有單一節點群組的 Valkey 或 Redis OSS （停用叢集模式） 群組，還是具有多個節點群組的 Valkey 或 Redis OSS （啟用叢集模式） 群組，此數字都適用。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &NewReplicaCount=1
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下範例透過從節點群組移除兩個指定複本 (`0001` 與 `0003`)，來減少複寫群組 `sample-repl-group` 中的複本數。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &ReplicasToRemove.ReplicaToRemove.1=0001
      &ReplicasToRemove.ReplicaToRemove.2=0003
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```
以下範例會使用 `ReplicaConfiguration` 將複寫群組 `sample-repl-group` 中的複本數減少到為兩個指定節點群組指定的值。假設有多個節點群組，這是 Valkey 或 Redis OSS （啟用叢集模式） 複寫群組。當指定選用的 `PreferredAvailabilityZones` 時，所列出的可用區域數量必須等於 `NewReplicaCount` \$1 1 的值。此方法可涵蓋由 `NodeGroupId` 識別群組的主要節點。  

```
https://elasticache.us-west-2.amazonaws.com/
      ?Action=DecreaseReplicaCount
      &ApplyImmediately=True
      &ReplicaConfiguration.ConfigureShard.1.NodeGroupId=0001
      &ReplicaConfiguration.ConfigureShard.1.NewReplicaCount=1
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.1.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1c
      &ReplicaConfiguration.ConfigureShard.2.NodeGroupId=0003
      &ReplicaConfiguration.ConfigureShard.2.NewReplicaCount=2
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.1=us-east-1a
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.2=us-east-1b
      &ReplicaConfiguration.ConfigureShard.2.PreferredAvailabilityZones.PreferredAvailabilityZone.4=us-east-1c
      &ReplicationGroupId=sample-repl-group
      &Version=2015-02-02
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20150202T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 減少複本數量的詳細資訊，請參閱 *Amazon ElastiCache 命令列參考*中的 [DecreaseReplicaCount](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)。