

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

# 擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集
<a name="scaling-redis-cluster-mode-enabled"></a>

隨著叢集的需求變更，您可以變更 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片數量，以決定改善效能或降低成本。我們建議使用線上水平擴展來執行此動作，因為它可允許叢集在擴展程序期間繼續提供請求的服務。

您用來決定重新擴展叢集的可能條件包括下列：
+ **記憶體壓力：**

  如果叢集中的節點遭受記憶體壓力，您可以決定向外擴展，使得您有更多資源能更妥善地存放資料和提供請求的服務。

  您可以監控下列指標來判斷節點是否受到記憶體壓力：*FreeableMemory*、*SwapUsage* 和 *BytesUsedForCache*。
+ **CPU 或網路瓶頸：**

  如果延遲/傳輸量問題正困擾著您的叢集，您可能需要向外擴展來解決問題。

  您可以監控延遲和傳輸量層級，方法是監控下列指標：*CPUUtilization*、*NetworkBytesIn*、*NetworkBytesOut*、*CurrConnections* 和 *NewConnections*。
+ **您的叢集過度擴展：**

  對叢集的目前需求使得向內擴展不會傷害效能和減少成本。

  您可以監控叢集的使用情況，以判斷是否可以使用下列指標安全地縮減規模：*FreeableMemory*、*SwapUsage*、*BytesUsedForCache*、*CPUUtilization*、*NetworkBytesIn*、*NetworkBytesOut*、*CurrConnections* 和 *NewConnections*。

**擴展的效能影響**  
使用離線程序擴展時，您的叢集將有一大部分程序會離線，因此無法提供請求的服務。使用線上方法擴展時，因為擴展是運算密集的操作，效能會有一些下降，然後，您的叢集會繼續在整個擴展操作中提供請求的服務。您遭遇到的下降程度取決於您的一般 CPU 使用率和您的資料。

有兩種方式可以擴展您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集；水平和垂直擴展。
+ 水平擴展可讓您透過新增或移除節點群組 (碎片)，來變更複寫群組中節點群組 (碎片) 的數量。線上重新分片程序允許向內/向外擴展，同時間叢集仍可繼續服務傳入請求。

  在您的新叢集中以與在舊叢集中不同的方式設定槽。僅限離線方法。
+ 垂直擴展 - 變更節點類型以調整叢集大小。線上垂直擴展允許向上/向下擴展，同時間叢集仍可繼續服務傳入請求。

如果您要透過向內擴展或向下擴展來減少叢集的大小和記憶體容量，請確保新組態有足夠的記憶體可供您的資料和 Valkey 或 Redis OSS 額外負荷使用。

如需詳細資訊，請參閱[選擇您的節點大小](CacheNodes.SelectSize.md)。

**Contents**
+ [Valkey 或 Redis OSS 的離線重新分片 （啟用叢集模式）](#redis-cluster-resharding-offline)
+ [Valkey 或 Redis OSS 的線上重新分片 （啟用叢集模式）](#redis-cluster-resharding-online)
  + [使用線上重新分片功能新增碎片](#redis-cluster-resharding-online-add)
  + [使用線上重新分片移除碎片](#redis-cluster-resharding-online-remove)
    + [移除碎片 (主控台)](#redis-cluster-resharding-online-remove-console)
    + [移除碎片 (AWS CLI)](#redis-cluster-resharding-online-remove-cli)
    + [移除碎片 (ElastiCache API)](#redis-cluster-resharding-online-remove-api)
  + [線上碎片重新平衡](#redis-cluster-resharding-online-rebalance)
    + [線上碎片重新平衡 (主控台)](#redis-cluster-resharding-online-rebalance-console)
    + [線上碎片重新平衡 (AWS CLI)](#redis-cluster-resharding-online-rebalance-cli)
    + [線上碎片重新平衡 (ElastiCache API)](#redis-cluster-resharding-online-rebalance-api)
+ [透過修改節點類型來進行線上垂直擴展](redis-cluster-vertical-scaling.md)
  + [線上擴充規模](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-scaling-up)
    + [向上擴展 Valkey 或 Redis OSS 叢集 （主控台）](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-console)
    + [向上擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](redis-cluster-vertical-scaling.md#Scaling.RedisStandalone.ScaleUp.CLI)
    + [向上擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](redis-cluster-vertical-scaling.md#VeticalScaling.RedisReplGrps.ScaleUp.API)
  + [線上縮減規模](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-scaling-down)
    + [向下擴展 Valkey 或 Redis OSS 叢集 （主控台）](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-down-console)
    + [向下擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](redis-cluster-vertical-scaling.md#Scaling.RedisStandalone.ScaleDown.CLI)
    + [向下擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](redis-cluster-vertical-scaling.md#Scaling.Vertical.ScaleDown.API)

## Valkey 或 Redis OSS 的離線重新分片 （啟用叢集模式）
<a name="redis-cluster-resharding-offline"></a>

您從離線碎片重新組態可獲得的主要優點是，您可以做得更多而不只是從複寫群組新增或移除碎片。當您離線重新碎片並重新平衡時，除了變更複寫群組中的碎片數量之外，您還可以執行下列動作：

**注意**  
啟用資料分層的 Valkey 或 Redis OSS 叢集不支援離線重新分片。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。
+ 變更您複寫群組的節點類型。
+ 指定複寫群組中每個節點的可用區域。
+ 升級至較新的引擎版本。
+ 獨立指定每個碎片中複本節點的數量。
+ 指定每個碎片的金鑰空間。

離線碎片重新組態的主要缺點是，您的叢集會離線開始進行程序的還原部分，並繼續直到您在應用程式中更新端點為止。叢集離線的時間長度會因叢集中資料量而不同。

**重新設定碎片 Valkey 或 Redis OSS （啟用叢集模式） 叢集離線**

1. 建立現有 Valkey 或 Redis OSS 叢集的手動備份。如需詳細資訊，請參閱[取得手動備份](backups-manual.md)。

1. 透過從備份還原來建立新叢集。如需詳細資訊，請參閱[從備份還原到新的快取](backups-restoring.md)。

1. 在應用程式中，將端點更新為新叢集的端點。如需詳細資訊，請參閱[在 ElastiCache 中尋找連線端點](Endpoints.md)。

## Valkey 或 Redis OSS 的線上重新分片 （啟用叢集模式）
<a name="redis-cluster-resharding-online"></a>

透過使用線上重新分片和碎片重新平衡搭配 ElastiCache Valkey 7.2 或更新版本，或 Redis OSS 3.2.10 版或更新版本，您可以動態擴展您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，無需停機。此方法表示叢集可以繼續提供請求的服務 (甚至是在擴展或重新平衡進行中時)。

您可以執行下列動作：
+ **橫向擴展** – 將碎片 （節點群組） 新增至您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （複寫群組），以增加讀取和寫入容量。

  如果您將一或多個碎片新增至複寫群組，每個新碎片中的節點數量與現有碎片最小節點的數量相同。
+ **向內擴展** – 從 Valkey 或 Redis OSS （啟用叢集模式） 叢集移除碎片，以降低讀取和寫入容量，進而降低成本。
+ **重新平衡** – 在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片之間移動鍵空間，以便盡可能在碎片之間平均分佈。

您無法執行下列：
+ **獨立設定碎片：**

  您不可以獨立為碎片指定金鑰空間。若要執行此動作，您必須使用離線程序。

目前，下列限制適用於 ElastiCache 線上重新分片和重新平衡：
+ 這些程序需要 Valkey 7.2 及更新版本，或 Redis OSS 3.2.10 或更新版本。如需升級引擎版本的詳細資訊，請參閱[ElastiCache 的版本管理](VersionManagement.md)。
+ 槽或金鑰空間和大型項目的限制為：

  如果碎片中的任何金鑰包含大型項目，在向外擴展或重新平衡時，不會將該金鑰遷移至新碎片。此功能可能造成不平衡的碎片。

  如果碎片中的任何金鑰包含大型項目 (序列化後項目大於 256 MB)，在向內擴展時，不會刪除該碎片。此功能可能造成一些碎片不會遭到刪除。
+ 向外擴展時，任何新碎片中節點的數量會等於現有碎片中最小節點的數量。
+ 向外擴展時，所有現有碎片共有的任何標籤都會複製到新碎片。
+ 橫向擴展 Global Data Store 叢集時，ElastiCache 不會自動將函數從其中一個現有節點複製到新節點。我們建議在橫向擴展叢集之後，將函數載入新的碎片，如此一來每個碎片都會具有相同函數。

**注意**  
在 ElastiCache for Valkey 7.2 及更高版本，以及 ElastiCache for Redis OSS 第 7 版及更高版本中：擴展叢集時，ElastiCache 會自動將載入其中一個現有節點 （隨機選取） 的函數複寫至新節點。如果您的應用程式使用 [函數](https://valkey.io/topics/functions-intro/)，我們建議您在向外擴展之前將所有函數載入所有碎片，這樣您的叢集就不會在不同的碎片上產生不同的函數定義。

如需詳細資訊，請參閱[線上叢集大小調整](best-practices-online-resharding.md)。

您可以使用AWS CLI、 和 ElastiCache API 水平擴展或重新平衡您的 Valkey 或 Redis OSS （啟用叢集模式）AWS 管理主控台叢集。

### 使用線上重新分片功能新增碎片
<a name="redis-cluster-resharding-online-add"></a>

您可以使用 或 ElastiCache API AWS 管理主控台AWS CLI，將碎片新增至您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集。當您將碎片新增至 Valkey 或 Redis OSS （啟用叢集模式） 叢集時，現有碎片上的任何標籤都會複製到新的碎片。

**Topics**

#### 新增碎片 (主控台)
<a name="redis-cluster-resharding-online-add-console"></a>

您可以使用AWS 管理主控台將一或多個碎片新增至您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集。下列程序描述該程序。

**將碎片新增至您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集**

1. 前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

1. 找到並選擇您要新增碎片之 Valkey 或 Redis OSS （啟用叢集模式） 叢集的名稱，而不是叢集名稱左側的方塊。
**提示**  
Valkey 或 Redis OSS （啟用叢集模式） 在**模式**欄中顯示**叢集化 Valkey** 或**叢集化 Redis OSS** 

1. 選擇 **Add shard (新增碎片)**。

   1. 針對 **Number of shards to be added (要新增的碎片數)**，選擇您要新增至此叢集的碎片數量。

   1. 針對 **Availability zone(s) (可用區域)**，選擇 **No preference (無偏好設定)** 或 **Specify availability zones (指定可用區域)** 中的一個。

   1. 如果您選擇 **Specify availability zones (指定可用區域)**，針對每個碎片中的每個節點，從可用區域的清單選取節點的可用區域。

   1. 選擇**新增**。

#### 新增碎片 (AWS CLI)
<a name="redis-cluster-resharding-online-add-cli"></a>

下列程序說明如何使用 新增碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片AWS CLI。

使用下列參數搭配 `modify-replication-group-shard-configuration`。

**Parameters**
+ `--apply-immediately` - 必要項目。指定碎片重新組態操作要立即開始。
+ `--replication-group-id` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `--node-group-count` - 必要項目。指定操作完成時要存在的碎片數量 (節點群組)。新增碎片時，`--node-group-count` 的值必須大於目前的碎片數量。

  您可以選擇性地使用 `--resharding-configuration` 為複寫群組中的每個節點指定可用區域。
+ `--resharding-configuration` - 選用。複寫群組的每個碎片中每個節點偏好的可用區域清單。只有在 `--node-group-count` 的值大於目前的碎片數量時，才使用此參數。新增碎片時如果省略此參數，Amazon ElastiCache 會為新節點選取可用區域。

下列範例會在名為 的 Valkey 或 Redis OSS （啟用叢集模式） 叢集中，透過四個碎片重新設定金鑰空間`my-cluster`。此範例也會指定每個碎片中每個節點的可用區域。該操作會立即開始。

**Example - 新增碎片**  
針對 Linux、macOS 或 Unix：  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 4 \
    --resharding-configuration \
        "PreferredAvailabilityZones=us-east-2a,us-east-2c" \
        "PreferredAvailabilityZones=us-east-2b,us-east-2a" \
        "PreferredAvailabilityZones=us-east-2c,us-east-2d" \
        "PreferredAvailabilityZones=us-east-2d,us-east-2c" \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 4 ^
    --resharding-configuration ^
        "PreferredAvailabilityZones=us-east-2a,us-east-2c" ^
        "PreferredAvailabilityZones=us-east-2b,us-east-2a" ^
        "PreferredAvailabilityZones=us-east-2c,us-east-2d" ^
        "PreferredAvailabilityZones=us-east-2d,us-east-2c" ^
    --apply-immediately
```

如需詳細資訊，請參閱AWS CLI文件中的 [modify-replication-group-shard-configuration](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html)。

#### 新增碎片 (ElastiCache API)
<a name="redis-cluster-resharding-online-add-api"></a>

您可以使用 ElastiCache API，透過 `ModifyReplicationGroupShardConfiguration`操作，在線上重新設定 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

使用下列參數搭配 `ModifyReplicationGroupShardConfiguration`。

**Parameters**
+ `ApplyImmediately=true` - 必要項目。指定碎片重新組態操作要立即開始。
+ `ReplicationGroupId` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `NodeGroupCount` - 必要項目。指定操作完成時要存在的碎片數量 (節點群組)。新增碎片時，`NodeGroupCount` 的值必須大於目前的碎片數量。

  您可以選擇性地使用 `ReshardingConfiguration` 為複寫群組中的每個節點指定可用區域。
+ `ReshardingConfiguration` - 選用。複寫群組的每個碎片中每個節點偏好的可用區域清單。只有在 `NodeGroupCount` 的值大於目前的碎片數量時，才使用此參數。新增碎片時如果省略此參數，Amazon ElastiCache 會為新節點選取可用區域。

下列程序說明如何使用 ElastiCache API 新增碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片。

**Example - 新增碎片**  
下列範例會將節點群組新增至 Valkey 或 Redis OSS （啟用叢集模式） 叢集 `my-cluster`，因此操作完成時總共有四個節點群組。此範例也會指定每個碎片中每個節點的可用區域。該操作會立即開始。  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=4
    &ReplicationGroupId=my-cluster
    &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2a 
    &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c 
    &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2b 
    &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2a 
    &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2c 
    &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2d 
    &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2d 
    &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c 
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱「ElastiCache API 參考」中的 [ModifyReplicationGroupShardConfiguration](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html)。

### 使用線上重新分片移除碎片
<a name="redis-cluster-resharding-online-remove"></a>

您可以使用 或 ElastiCache API AWS 管理主控台AWS CLI，從 Valkey 或 Redis OSS （啟用叢集模式） 叢集移除碎片。

**Topics**
+ [移除碎片 (主控台)](#redis-cluster-resharding-online-remove-console)
+ [移除碎片 (AWS CLI)](#redis-cluster-resharding-online-remove-cli)
+ [移除碎片 (ElastiCache API)](#redis-cluster-resharding-online-remove-api)

#### 移除碎片 (主控台)
<a name="redis-cluster-resharding-online-remove-console"></a>

下列程序說明如何使用 移除碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片AWS 管理主控台。

從複寫群組移除節點群組 (碎片) 之前，ElastiCache 會確定所有資料可納入其餘碎片中。如果資料可納入，則會按請求從複寫群組刪除指定的碎片。如果資料無法納入其他的節點群組，流程會中止，複寫群組的節點群組設定會與請求之前相同。

您可以使用 從 Valkey 或 Redis OSS （啟用叢集模式） 叢集AWS 管理主控台中移除一或多個碎片。您無法移除複寫群組中的所有碎片。而是必須刪除複寫群組。如需詳細資訊，請參閱[刪除複寫群組](Replication.DeletingRepGroup.md)。下列程序描述用於刪除一或多個碎片的程序。

**從 Valkey 或 Redis OSS （啟用叢集模式） 叢集移除碎片**

1. 前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

1. 找到並選擇您要從中移除碎片的 Valkey 或 Redis OSS （啟用叢集模式） 叢集的名稱，而不是叢集名稱左側的方塊。
**提示**  
**在碎片**欄中，Valkey 或 Redis OSS （啟用叢集模式） 叢集的值為 1 或更高。

1. 從碎片的清單，選擇您要刪除的每個碎片名稱左側的方塊。

1. 選擇 **Delete shard (刪除碎片)**。

#### 移除碎片 (AWS CLI)
<a name="redis-cluster-resharding-online-remove-cli"></a>

下列程序說明如何使用 移除碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片AWS CLI。

**重要**  
從複寫群組移除節點群組 (碎片) 之前，ElastiCache 會確定所有資料可納入其餘碎片中。如果資料可納入，則會按請求從複寫群組刪除指定的碎片 (`--node-groups-to-remove`)，而其金鑰空間會映射至其餘的碎片。如果資料無法納入其他的節點群組，流程會中止，複寫群組的節點群組設定會與請求之前相同。

您可以使用 從 Valkey 或 Redis OSS （啟用叢集模式） 叢集AWS CLI中移除一或多個碎片。您無法移除複寫群組中的所有碎片。而是必須刪除複寫群組。如需詳細資訊，請參閱[刪除複寫群組](Replication.DeletingRepGroup.md)。

使用下列參數搭配 `modify-replication-group-shard-configuration`。

**Parameters**
+ `--apply-immediately` - 必要項目。指定碎片重新組態操作要立即開始。
+ `--replication-group-id` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `--node-group-count` - 必要項目。指定操作完成時要存在的碎片數量 (節點群組)。移除碎片時，`--node-group-count` 的值必須小於目前的碎片數量。

  
+ `--node-groups-to-remove` - 當 `--node-group-count` 小於目前的數量節點群組 (碎片) 時為必要項目。要從複寫群組移除之碎片 (節點群組) 識別符的清單。

下列程序描述用於刪除一或多個碎片的程序。

**Example - 移除碎片**  
下列範例會從 Valkey 或 Redis OSS （啟用叢集模式） 叢集 移除兩個節點群組`my-cluster`，因此操作完成時總共有兩個節點群組。來自移除碎片的金鑰空間會平均分散在其餘碎片間。  
針對 Linux、macOS 或 Unix：  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 2 \
    --node-groups-to-remove "0002" "0003" \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 2 ^
    --node-groups-to-remove "0002" "0003" ^
    --apply-immediately
```

#### 移除碎片 (ElastiCache API)
<a name="redis-cluster-resharding-online-remove-api"></a>

您可以使用 ElastiCache API，透過 `ModifyReplicationGroupShardConfiguration`操作，在線上重新設定 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

下列程序說明如何使用 ElastiCache API 移除碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片。

**重要**  
從複寫群組移除節點群組 (碎片) 之前，ElastiCache 會確定所有資料可納入其餘碎片中。如果資料可納入，則會按請求從複寫群組刪除指定的碎片 (`NodeGroupsToRemove`)，而其金鑰空間會映射至其餘的碎片。如果資料無法納入其他的節點群組，流程會中止，複寫群組的節點群組設定會與請求之前相同。

您可以使用 ElastiCache API 從 Valkey 或 Redis OSS （啟用叢集模式） 叢集中移除一或多個碎片。您無法移除複寫群組中的所有碎片。而是必須刪除複寫群組。如需詳細資訊，請參閱[刪除複寫群組](Replication.DeletingRepGroup.md)。

使用下列參數搭配 `ModifyReplicationGroupShardConfiguration`。

**Parameters**
+ `ApplyImmediately=true` - 必要項目。指定碎片重新組態操作要立即開始。
+ `ReplicationGroupId` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `NodeGroupCount` - 必要項目。指定操作完成時要存在的碎片數量 (節點群組)。移除碎片時，`NodeGroupCount` 的值必須小於目前的碎片數量。
+ `NodeGroupsToRemove` - 當 `--node-group-count` 小於目前的數量節點群組 (碎片) 時為必要項目。要從複寫群組移除之碎片 (節點群組) 識別符的清單。

下列程序描述用於刪除一或多個碎片的程序。

**Example - 移除碎片**  
下列範例會從 Valkey 或 Redis OSS （啟用叢集模式） 叢集 移除兩個節點群組`my-cluster`，因此操作完成時總共有兩個節點群組。來自移除碎片的金鑰空間會平均分散在其餘碎片間。  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=2
    &ReplicationGroupId=my-cluster
    &NodeGroupsToRemove.member.1=0002
    &NodeGroupsToRemove.member.2=0003
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

### 線上碎片重新平衡
<a name="redis-cluster-resharding-online-rebalance"></a>

您可以使用 或 ElastiCache API AWS 管理主控台AWS CLI，重新平衡 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

**Topics**
+ [線上碎片重新平衡 (主控台)](#redis-cluster-resharding-online-rebalance-console)
+ [線上碎片重新平衡 (AWS CLI)](#redis-cluster-resharding-online-rebalance-cli)
+ [線上碎片重新平衡 (ElastiCache API)](#redis-cluster-resharding-online-rebalance-api)

#### 線上碎片重新平衡 (主控台)
<a name="redis-cluster-resharding-online-rebalance-console"></a>

下列程序說明如何使用 重新平衡碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片AWS 管理主控台。

**在 Valkey 或 Redis OSS （啟用叢集模式） 叢集上的碎片之間重新平衡金鑰空間**

1. 前往 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 開啟 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

1. 選擇您要重新平衡之 Valkey 或 Redis OSS （啟用叢集模式） 叢集的名稱，而非名稱左側的方塊。
**提示**  
**在碎片**欄中，Valkey 或 Redis OSS （啟用叢集模式） 叢集的值為 1 或更高。

1. 選擇 **Rebalance (重新平衡)**。

1. 提示時，選擇 **Rebalance (重新平衡)**。您可能會看到類似以下內容的訊息：*Slots in the replication group are uniformly distributed (複寫群組中的位置已均勻分散)。Nothing to do. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidReplicationGroupState; Request ID: 2246cebd-9721-11e7-8d5b-e1b0f086c8cf)*。如果有看到，請選擇 **Cancel (取消)**。

#### 線上碎片重新平衡 (AWS CLI)
<a name="redis-cluster-resharding-online-rebalance-cli"></a>

使用下列參數搭配 `modify-replication-group-shard-configuration`。

**Parameters**
+ `-apply-immediately` - 必要項目。指定碎片重新組態操作要立即開始。
+ `--replication-group-id` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `--node-group-count` - 必要項目。若要重新平衡叢集中所有碎片間的金鑰空間，此值必須與目前的碎片數量相同。

下列程序說明如何使用 重新平衡碎片，在 Valkey 或 Redis OSS （啟用叢集模式） 叢集中重新設定碎片AWS CLI。

**Example - 重新平衡叢集中的碎片**  
下列範例會重新平衡 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的插槽，`my-cluster`以便盡可能平均分配插槽。`--node-group-count` (`4`) 的值為目前在叢集中碎片的數量。  
針對 Linux、macOS 或 Unix：  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 4 \
    --apply-immediately
```
針對 Windows：  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 4 ^
    --apply-immediately
```

#### 線上碎片重新平衡 (ElastiCache API)
<a name="redis-cluster-resharding-online-rebalance-api"></a>

您可以使用 ElastiCache API，透過 `ModifyReplicationGroupShardConfiguration`操作，在線上重新設定 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

使用下列參數搭配 `ModifyReplicationGroupShardConfiguration`。

**Parameters**
+ `ApplyImmediately=true` - 必要項目。指定碎片重新組態操作要立即開始。
+ `ReplicationGroupId` - 必要項目。指定碎片重新組態操作要執行所在的複寫群組 (叢集)。
+ `NodeGroupCount` - 必要項目。若要重新平衡叢集中所有碎片間的金鑰空間，此值必須與目前的碎片數量相同。

下列程序說明如何使用 ElastiCache API 重新平衡碎片，以重新設定 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的碎片。

**Example - 重新平衡叢集**  
下列範例會重新平衡 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的插槽，`my-cluster`以便盡可能平均分配插槽。`NodeGroupCount` (`4`) 的值為目前在叢集中碎片的數量。  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=4
    &ReplicationGroupId=my-cluster
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

# 透過修改節點類型來進行線上垂直擴展
<a name="redis-cluster-vertical-scaling"></a>

透過搭配 Valkey 7.2 版或更新版本，或 Redis OSS 3.2.10 版或更新版本使用線上垂直擴展，您可以在最短的停機時間下動態擴展您的 Valkey 或 Redis OSS 叢集。這可讓您的 Valkey 或 Redis OSS 叢集在擴展時提供請求。

**注意**  
不支援在資料分層叢集 (例如，使用 r6gd 節點類型的叢集) 與未使用資料分層叢集 (例如，使用 r6g 節點類型的叢集) 之間的擴展。如需詳細資訊，請參閱[ElastiCache 中的資料分層](data-tiering.md)。

您可以執行下列動作：
+ **向上擴展** – 透過調整 Valkey 或 Redis OSS 叢集的節點類型以使用較大的節點類型來增加讀取和寫入容量。

  ElastiCache 會動態調整叢集大小，同時保持線上狀態並服務請求。
+ **縮減規模** - 將節點類型向下調整為使用較小的節點，減少讀取和寫入容量。同樣地，ElastiCache 會動態調整叢集大小，同時保持線上狀態並服務請求。在這種情況下，您透過縮減節點來降低成本。

**注意**  
向上擴展和向下擴展程序牽涉到使用新選取的節點類型來建立叢集，並將新節點與先前的節點進行同步。若要確保順暢的向上/向下擴展流程，請執行以下操作：  
確保您有足夠的 ENI (彈性網路界面) 容量。若是向下擴展，請確定較小的節點有足夠的記憶體，可以吸收預期的流量。  
如需記憶體管理的最佳實務，請參閱[管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)。
雖然垂直擴展程序的目標是保持全面上線，但此程序也需要在舊節點和新節點之間同步資料。建議您在預期資料流量最小的時間內啟動向上/向下擴展。
盡可能在預備環境中測試您的應用程式行為。

**Contents**
+ [線上擴充規模](#redis-cluster-vertical-scaling-scaling-up)
  + [向上擴展 Valkey 或 Redis OSS 叢集 （主控台）](#redis-cluster-vertical-scaling-console)
  + [向上擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](#Scaling.RedisStandalone.ScaleUp.CLI)
  + [向上擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](#VeticalScaling.RedisReplGrps.ScaleUp.API)
+ [線上縮減規模](#redis-cluster-vertical-scaling-scaling-down)
  + [向下擴展 Valkey 或 Redis OSS 叢集 （主控台）](#redis-cluster-vertical-scaling-down-console)
  + [向下擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](#Scaling.RedisStandalone.ScaleDown.CLI)
  + [向下擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](#Scaling.Vertical.ScaleDown.API)

## 線上擴充規模
<a name="redis-cluster-vertical-scaling-scaling-up"></a>

**Topics**
+ [向上擴展 Valkey 或 Redis OSS 叢集 （主控台）](#redis-cluster-vertical-scaling-console)
+ [向上擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](#Scaling.RedisStandalone.ScaleUp.CLI)
+ [向上擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](#VeticalScaling.RedisReplGrps.ScaleUp.API)

### 向上擴展 Valkey 或 Redis OSS 叢集 （主控台）
<a name="redis-cluster-vertical-scaling-console"></a>

下列程序說明如何使用 ElastiCache 管理主控台擴展 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. 選擇 **Modify** (修改)。

1. 在 **Modify Cluster (修改叢集)** 精靈中：

   1. 從 **Node type (節點類型)** 清單選擇您要擴展的節點類型。若要向上擴展，請選取大於現有節點的節點類型。

1. 如果您要立即執行向上擴展程序，請選擇 **Apply immediately (立即套用)** 方塊。如果未選擇 **Apply immediately (立即套用)** 方塊，在此叢集的下一個維護時段期間，會執行向上擴展程序。

1. 選擇 **Modify** (修改)。

   如果您在上一個步驟中選擇 **Apply immediately (立即套用)**，叢集的狀態變更為 *modifying (修改中)*。當狀態變更為 *available (可用)*，修改即已完成，並且您可以開始使用新叢集。

### 向上擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)
<a name="Scaling.RedisStandalone.ScaleUp.CLI"></a>

下列程序說明如何使用 擴展 Valkey 或 Redis OSS 叢集AWS CLI。在此過程中，您的叢集將繼續以最短的停機時間處理請求。

**擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)**

1. 使用下列參數執行 `list-allowed-node-type-modifications`命令，決定您可以擴展至 的AWS CLI節點類型。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-replication-group-id
   ```

   針對 Windows：

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-replication-group-id
   ```

   上述命令的輸出看起來會類似這個 (JSON 格式)。

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium",
   	       	"cache.t1.small "
   	    ], 
   }
   ```

   如需詳細資訊，請參閱 *AWS CLI參考*中的「[list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html)」。

1. 使用AWS CLI`modify-replication-group` 命令和下列參數，修改複寫群組以擴展至新的較大節點類型。
   + `--replication-group-id` - 您要擴充規模的複寫群組名稱。
   + `--cache-node-type` – 您要擴展叢集的新節點類型。此值必須是步驟 1 中 `list-allowed-node-type-modifications` 命令傳回的其中一個節點類型。
   + `--cache-parameter-group-name` - [選用] 如果您使用 `reserved-memory` 來管理叢集的保留記憶體，請使用此參數。指定自訂快取參數群組，其會為您的新節點類型保留正確的記憶體數量。如果您要使用 `reserved-memory-percent`，則可以忽略此參數。
   + `--apply-immediately` - 會造成立即套用擴充規模程序。若要將向上擴展程序延期至叢集的下一個維護時段，請使用 `--no-apply-immediately` 參數。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache modify-replication-group  \
   	    --replication-group-id my-redis-cluster \
   	    --cache-node-type cache.m3.xlarge \	    
   	    --apply-immediately
   ```

   針對 Windows：

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-redis-cluster ^
   	    --cache-node-type cache.m3.xlarge ^	   
   	    --apply-immediately
   ```

   上述命令的輸出看起來會類似這個 (JSON 格式)。

   ```
   {
   		"ReplicationGroup": {
           "Status": "modifying",
           "Description": "my-redis-cluster",
           "NodeGroups": [
               {
                   "Status": "modifying",
                   "Slots": "0-16383",
                   "NodeGroupId": "0001",
                   "NodeGroupMembers": [
                       {
                           "PreferredAvailabilityZone": "us-east-1f",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-001"
                       },
                       {
                           "PreferredAvailabilityZone": "us-east-1d",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-002"
                       }
                   ]
               }
           ],
           "ConfigurationEndpoint": {
               "Port": 6379,
               "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com"
           },
           "ClusterEnabled": true,
           "ReplicationGroupId": "my-redis-cluster",
           "SnapshotRetentionLimit": 1,
           "AutomaticFailover": "enabled",
           "SnapshotWindow": "07:30-08:30",
           "MemberClusters": [
               "my-redis-cluster-0001-001",
               "my-redis-cluster-0001-002"
           ],
           "CacheNodeType": "cache.m3.xlarge",
            "DataTiering": "disabled"
           "PendingModifiedValues": {}
       }
   }
   ```

   如需詳細資訊，請參閱 *AWS CLI參考*中的「[modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)」。

1. 如果您使用 `--apply-immediately`，請使用 命令搭配下列參數來AWS CLI`describe-cache-clusters`檢查叢集的狀態。當狀態變更為*可用*時，您可以開始使用新的、較大的叢集節點。

### 向上擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)
<a name="VeticalScaling.RedisReplGrps.ScaleUp.API"></a>

下列程序會使用 ElastiCache API，將叢集從目前的節點類型擴展到新的、較大的節點類型。在此過程中，ElastiCache 會更新 DNS 項目，使其指向新節點。因此，您不需在應用程式中更新端點。對於 Valkey 7.2 和更新版本 Redis OSS 5.0.5 和更新版本，您可以在叢集繼續保持連線並提供傳入請求時擴展啟用自動容錯移轉的叢集。在 Redis OSS 4.0.10 及更低版本上，您可能會注意到在更新 DNS 項目時，從主節點讀取和寫入先前版本的短暫中斷。

擴展到較大的節點類型所需的時間會有所不同，具體取決於您的節點類型和目前叢集中的資料量。

**擴展 Valkey 或 Redis OSS 快取叢集 (ElastiCache API)**

1. 使用 ElastiCache API `ListAllowedNodeTypeModifications` 動作搭配下列參數，判斷您可以擴充規模的節點類型。
   + `ReplicationGroupId` - 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   如需詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的「[ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html)」。

1. 使用 `ModifyReplicationGroup` ElastiCache API 動作搭配下列參數，將您目前的複寫群組擴充規模為新的節點類型。
   + `ReplicationGroupId` - 複寫群組的名稱。
   + `CacheNodeType` – 此複寫群組中新的、較大的叢集節點類型。此值必須是上一個步驟中 `ListAllowedNodeTypeModifications`動作傳回的其中一個執行個體類型。
   + `CacheParameterGroupName` - [選用] 如果您使用 `reserved-memory` 來管理叢集的保留記憶體，請使用此參數。指定自訂快取參數群組，其會為您的新節點類型保留正確的記憶體數量。如果您要使用 `reserved-memory-percent`，則可以忽略此參數。
   + `ApplyImmediately` - 設定為 `true` 會立即套用擴充規模程序。若要將向上擴展程序延期至下一個維護時段，請使用 `ApplyImmediately``=false`。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.m3.2xlarge
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   如需詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的「[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)」。

1. 如果您使用的是 `ApplyImmediately``=true`，請使用 ElastiCache API `DescribeReplicationGroups` 動作搭配下列參數，監控複寫群組的狀態。當狀態從 *modifying (修改中)* 變更為 *available (可用)*，您即可以開始寫入新的、已向上擴展的複寫群組。
   + `ReplicationGroupId` - 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeReplicationGroups
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   如需詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的「[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)」。

## 線上縮減規模
<a name="redis-cluster-vertical-scaling-scaling-down"></a>

**Topics**
+ [向下擴展 Valkey 或 Redis OSS 叢集 （主控台）](#redis-cluster-vertical-scaling-down-console)
+ [向下擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)](#Scaling.RedisStandalone.ScaleDown.CLI)
+ [向下擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)](#Scaling.Vertical.ScaleDown.API)

### 向下擴展 Valkey 或 Redis OSS 叢集 （主控台）
<a name="redis-cluster-vertical-scaling-down-console"></a>

下列程序說明如何使用 ElastiCache 管理主控台縮減 Valkey 或 Redis OSS 叢集。在此過程中，您的 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. 選擇 **Modify** (修改)。

1. 在 **Modify Cluster (修改叢集)** 精靈中：

   1. 從 **Node type (節點類型)** 清單選擇您要擴展的節點類型。若要向下擴展，請選取小於現有節點的節點類型。請注意，並非所有節點類型都可縮減規模。

1. 如果您要立即執行向下擴展程序，請選擇 **Apply immediately (立即套用)** 方塊。如果未選擇 **Apply immediately (立即套用)** 方塊，則會在此叢集的下一個維護時段期間，執行向下擴展程序。

1. 選擇 **Modify** (修改)。

   如果您在上一個步驟中選擇 **Apply immediately (立即套用)**，叢集的狀態變更為 *modifying (修改中)*。當狀態變更為 *available (可用)*，修改即已完成，並且您可以開始使用新叢集。

### 向下擴展 Valkey 或 Redis OSS 叢集 (AWS CLI)
<a name="Scaling.RedisStandalone.ScaleDown.CLI"></a>

下列程序說明如何使用 縮減 Valkey 或 Redis OSS 叢集AWS CLI。在此過程中，您的叢集將繼續以最短的停機時間處理請求。

**縮減 Valkey 或 Redis OSS 叢集 (AWS CLI)**

1. 使用下列參數執行 `list-allowed-node-type-modifications`命令，AWS CLI決定您可以縮減規模的節點類型。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-replication-group-id
   ```

   針對 Windows：

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-replication-group-id
   ```

   上述命令的輸出看起來會類似這個 (JSON 格式)。

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
     	      "cache.t1.small"
   	    ]
   }
   ```

   如需詳細資訊，請參閱 *AWS CLI參考*中的「[list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html)」。

1. 使用AWS CLI`modify-replication-group` 命令和下列參數，修改複寫群組以縮減至新的較小節點類型。
   + `--replication-group-id` - 您要縮減規模的複寫群組名稱。
   + `--cache-node-type` – 您要擴展叢集的新節點類型。此值必須是步驟 1 中 `list-allowed-node-type-modifications` 命令傳回的其中一個節點類型。
   + `--cache-parameter-group-name` - [選用] 如果您使用 `reserved-memory` 來管理叢集的保留記憶體，請使用此參數。指定自訂快取參數群組，其會為您的新節點類型保留正確的記憶體數量。如果您要使用 `reserved-memory-percent`，則可以忽略此參數。
   + `--apply-immediately` - 會造成立即套用擴充規模程序。若要將向下擴展程序延期至叢集的下一個維護時段，請使用 `--no-apply-immediately` 參數。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache modify-replication-group  \
   	    --replication-group-id my-redis-cluster \
   	    --cache-node-type cache.t2.micro \	    
   	    --apply-immediately
   ```

   針對 Windows：

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-redis-cluster ^
   	    --cache-node-type cache.t2.micro ^	   
   	    --apply-immediately
   ```

   上述命令的輸出看起來會類似這個 (JSON 格式)。

   ```
   {	
   		"ReplicationGroup": {
           "Status": "modifying",
           "Description": "my-redis-cluster",
           "NodeGroups": [
               {
                   "Status": "modifying",
                   "Slots": "0-16383",
                   "NodeGroupId": "0001",
                   "NodeGroupMembers": [
                       {
                           "PreferredAvailabilityZone": "us-east-1f",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-001"
                       },
                       {
                           "PreferredAvailabilityZone": "us-east-1d",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-002"
                       }
                   ]
               }
           ],
           "ConfigurationEndpoint": {
               "Port": 6379,
               "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com"
           },
           "ClusterEnabled": true,
           "ReplicationGroupId": "my-redis-cluster",
           "SnapshotRetentionLimit": 1,
           "AutomaticFailover": "enabled",
           "SnapshotWindow": "07:30-08:30",
           "MemberClusters": [
               "my-redis-cluster-0001-001",
               "my-redis-cluster-0001-002"
           ],
           "CacheNodeType": "cache.t2.micro",
            "DataTiering": "disabled"
           "PendingModifiedValues": {}
       }
   }
   ```

   如需詳細資訊，請參閱 *AWS CLI參考*中的「[modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)」。

1. 如果您使用 `--apply-immediately`，請使用 命令搭配下列參數來AWS CLI`describe-cache-clusters`檢查叢集的狀態。當狀態變更為*可用*時，您可以開始使用新的、較小的叢集節點。

### 向下擴展 Valkey 或 Redis OSS 叢集 (ElastiCache API)
<a name="Scaling.Vertical.ScaleDown.API"></a>

下列程序會使用 ElastiCache API，將複寫群組從其目前的節點類型規模縮減為較小的新節點類型。在此過程中，您的 Valkey 或 Redis OSS 叢集將繼續以最短的停機時間處理請求。

縮減為較小的節點類型所需的時間會有所不同，具體取決於您的節點類型和目前叢集中的資料量。

**縮減規模 (ElastiCache API)**

1. 使用 ElastiCache API `ListAllowedNodeTypeModifications` 動作搭配下列參數，判斷您可以縮減規模的節點類型。
   + `ReplicationGroupId` - 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   如需詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的「[ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html)」。

1. 使用 `ModifyReplicationGroup` ElastiCache API 動作搭配下列參數，將您目前的複寫群組縮減規模為新節點類型。
   + `ReplicationGroupId` - 複寫群組的名稱。
   + `CacheNodeType` – 此複寫群組中叢集的新節點類型較小。此值必須是上一個步驟中 `ListAllowedNodeTypeModifications`動作傳回的其中一個執行個體類型。
   + `CacheParameterGroupName` - [選用] 如果您使用 `reserved-memory` 來管理叢集的保留記憶體，請使用此參數。指定自訂快取參數群組，其會為您的新節點類型保留正確的記憶體數量。如果您要使用 `reserved-memory-percent`，則可以忽略此參數。
   + `ApplyImmediately` - 設定為 `true` 會立即套用縮減規模程序。若要將向下擴展程序延期至下一個維護時段，請使用 `ApplyImmediately``=false`。

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.t2.micro
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   如需詳細資訊，請參閱 *Amazon ElastiCache API 參考*中的「[ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)」。