

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

# 了解 MemoryDB 複寫
<a name="replication"></a>

MemoryDB 實作複寫，將資料分割為最多 500 個碎片。

叢集中的每個碎片都有單一讀取/寫入主節點和最多 5 個唯讀複本節點。每個主節點最多可維持 100 MB/s。您可以建立具有較高碎片數量和較低複本數量的叢集，每個叢集總計最多 500 個節點。此叢集組態的範圍可以從 500 個碎片和 0 個複本到 100 個碎片和 4 個複本，這是允許的複本數量上限。

# 一致性
<a name="consistency"></a>

在 MemoryDB 中，主節點非常一致。成功的寫入操作會永久儲存在分散式多可用區域交易日誌中，然後再傳回用戶端。主要的讀取操作一律會傳回up-to-date資料，反映先前所有成功寫入操作的效果。這類強式一致性會在主要容錯移轉之間保留。

在 MemoryDB 中，複本節點最終一致。複本的讀取操作 （使用 `READONLY`命令） 不一定反映最近成功寫入操作的效果，並將延遲指標發佈至 CloudWatch。不過，單一複本的讀取操作會循序一致。成功的寫入操作會在每個複本上以其在主要複本上執行的相同順序生效。

## 叢集中的複寫
<a name="replication.redis.groups.cluster"></a>

 碎片中的每個僅供讀取複本會維護碎片主節點的資料副本。使用交易日誌的非同步複寫機制可用來讓僅供讀取複本與主要複本保持同步。應用程式可從叢集內的任何節點進行讀取。應用程式只能寫入主要節點。僅供讀取複本可增強讀取可擴展性。由於 MemoryDB 將資料存放在持久的交易日誌中，因此不會遺失資料的風險。資料會分割至 MemoryDB 叢集中的碎片。

應用程式使用 MemoryDB 叢集的*叢集端點*來與叢集中的節點連線。如需詳細資訊，請參閱[尋找連線端點](endpoints.md)。

MemoryDB 叢集是區域性叢集，只能包含來自一個區域的節點。若要改善容錯能力，您必須在該區域內跨多個可用區域佈建主要和僅供讀取複本。

強烈建議所有 MemoryDB 叢集都使用複寫，它為您提供異地同步備份。如需詳細資訊，請參閱[使用異地同步備份將 MemoryDB 中的停機時間降至最低](autofailover.md)。

# 使用異地同步備份將 MemoryDB 中的停機時間降至最低
<a name="autofailover"></a>

有許多執行個體，MemoryDB 可能需要取代主節點；這些執行個體包括特定類型的計劃維護，以及不太可能發生的主節點或可用區域故障事件。

節點故障的回應取決於哪個節點失敗。不過，在所有情況下，MemoryDB 都會確保節點替換或容錯移轉期間不會遺失任何資料。例如，如果複本失敗，則會取代失敗的節點，並從交易日誌同步資料。如果主節點失敗，容錯移轉會觸發至一致的複本，以確保容錯移轉期間不會遺失任何資料。現在會從新的主節點提供寫入。然後取代舊的主節點，並從交易日誌同步。

如果單一節點碎片 （無複本） 上的主節點失敗，MemoryDB 會停止接受寫入，直到取代主節點並從交易日誌同步。

節點取代可能會對叢集造成一些停機時間，但如果多可用區域處於作用中狀態，則會將停機時間降至最低。主節點的角色會自動容錯移轉至其中一個複本。您不需要建立和佈建新的主節點，因為 MemoryDB 會以透明的方式處理此問題。此容錯移轉及複本提升可確保您能在提升完成時立即繼續寫入新的主要節點。

如果因維護更新或服務更新而啟動計劃節點替換，請注意計劃的節點替換會在叢集提供傳入寫入請求時完成。

MemoryDB 叢集上的異地同步備份可改善容錯能力。尤其在叢集的主要節點因任何原因變得無法連線或失敗的情況下，更是如此。MemoryDB 叢集上的異地同步備份需要每個碎片具有多個節點，且會自動啟用。

**Topics**
+ [具有異地同步備份回應的故障案例](#autofailover.scenarios)
+ [測試自動容錯移轉](#auto-failover-test)

## 具有異地同步備份回應的故障案例
<a name="autofailover.scenarios"></a>

如果異地同步備份作用中，失敗的主節點會容錯移轉至可用的複本。複本會自動與交易日誌同步，並成為主要節點，這比建立新的主要節點和重新佈建要快得多。此程序通常只需要幾秒鐘，您便能再次寫入叢集。

當異地同步備份作用中時，MemoryDB 會持續監控主節點的狀態。若主要節點故障，便會根據故障的類型執行以下其中一個動作。

**Topics**
+ [只有主節點故障的故障案例](#autofailover.scenarios.primaryonly)
+ [主節點和某些複本失敗時的失敗案例](#autofailover.scenarios.primaryandeplicas)
+ [整個叢集故障的故障案例](#autofailover.scenarios.allfail)

### 只有主節點故障的故障案例
<a name="autofailover.scenarios.primaryonly"></a>

如果只有主節點失敗，複本會自動成為主節點。然後，替代複本會在與失敗主要複本相同的可用區域中建立和佈建。

當只有主節點失敗時，MemoryDB Multi-AZ 會執行下列動作：

1. 失敗的主要節點會離線。

1. up-to-date複本會自動成為主要複本。

   一旦容錯移轉程序完成，即可繼續寫入，通常只需幾秒鐘。

1. 替代複本已啟動並佈建。

   替代複本會在失敗的主節點所在的可用區域中啟動，以便維護節點的分佈。

1. 複本會與交易日誌同步。

如需尋找叢集端點的資訊，請參閱下列主題：
+ [尋找 MemoryDB 叢集的端點 (MemoryDB API)](endpoints.md#endpoints.find.api.clusters)

 

### 主節點和某些複本失敗時的失敗案例
<a name="autofailover.scenarios.primaryandeplicas"></a>

如果主要複本和至少一個複本失敗，up-to-date複本會提升為主要叢集。新的複本也會在與失敗節點相同的可用區域中建立和佈建。

當主節點和某些複本失敗時，MemoryDB Multi-AZ 會執行下列動作：

1. 失敗的主節點和失敗的複本會離線。

1. 可用的複本將成為主節點。

   一旦容錯移轉完成，即可繼續寫入，通常只需幾秒鐘。

1. 建立及佈建替換用的複本。

   替換用的複本會在失敗節點所在的可用區域內建立，維持節點的分佈。

1. 所有節點都會與交易日誌同步。

如需尋找叢集端點的資訊，請參閱下列主題：
+ [尋找 MemoryDB 叢集的端點 (AWS CLI)](endpoints.md#endpoints.find.cli)
+ [尋找 MemoryDB 叢集的端點 (MemoryDB API)](endpoints.md#endpoints.find.api.clusters)

 

### 整個叢集故障的故障案例
<a name="autofailover.scenarios.allfail"></a>

若所有項目都失敗，便會在原始節點的相同可用區域內重新建立及佈建所有節點。

在這種情況下，不會遺失資料，因為資料會保留在交易日誌中。

當整個叢集失敗時，MemoryDB Multi-AZ 會執行下列動作：

1. 失敗的主節點和複本會離線。

1. 建立並佈建替代主節點，並與交易日誌同步。

1. 替換複本會建立並佈建，並與交易日誌同步。

   替代項目會在失敗節點所在的可用區域內建立，維持節點的分佈。

如需尋找叢集端點的資訊，請參閱下列主題：
+ [尋找 MemoryDB 叢集的端點 (AWS CLI)](endpoints.md#endpoints.find.cli)
+ [尋找 MemoryDB 叢集的端點 (MemoryDB API)](endpoints.md#endpoints.find.api.clusters)

## 測試自動容錯移轉
<a name="auto-failover-test"></a>

您可以使用 MemoryDB 主控台、 AWS CLI和 MemoryDB API 來測試自動容錯移轉。

在測試時，請注意下列事項：
+ 您可以在任何 24 小時期間內使用此操作最多五次。
+ 如果您在不同叢集中的碎片上呼叫此操作，您可以同時進行呼叫。
+ 在某些情況下，您可以在相同 MemoryDB 叢集中的不同碎片上多次呼叫此操作。在這種情況下，必須先完成第一個節點取代，才能夠執行後續呼叫。
+ 若要判斷節點取代是否已完成，請使用 MemoryDB 主控台 AWS CLI、 或 MemoryDB API 檢查事件。尋找下列與 相關的事件`FailoverShard`，此處依可能發生的順序列出：

  1. 叢集訊息： `FailoverShard API called for shard <shard-id>`

  1. 叢集訊息： `Failover from primary node <primary-node-id> to replica node <node-id> completed`

  1. 叢集訊息： `Recovering nodes <node-id>`

  1. 叢集訊息： `Finished recovery for nodes <node-id>`

  如需詳細資訊，請參閱下列內容：
  + *MemoryDB API 參考*中的 [DescribeEvents](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEvents.html) 
+ 此 API 專為在 MemoryDB 容錯移轉時測試應用程式的行為而設計。並非設計成啟動容錯移轉以解決叢集問題的操作工具。此外，在某些情況下，例如大規模操作事件， AWS 可能會封鎖此 API。

**Topics**
+ [使用 測試自動容錯移轉 AWS 管理主控台](#auto-failover-test-con)
+ [使用 測試自動容錯移轉 AWS CLI](#auto-failover-test-cli)
+ [使用 MemoryDB API 測試自動容錯移轉](#failovershard-test-api)

### 使用 測試自動容錯移轉 AWS 管理主控台
<a name="auto-failover-test-con"></a>

使用下列程序，透過主控台測試自動容錯移轉。

****

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

1. 選擇您要測試之叢集左側的選項按鈕。此叢集必須至少有一個複本節點。

1. 在 **Details (詳細資訊)** 區域中，確認此叢集已啟用異地同步備份。若叢集尚未啟用多個可用區，請選擇不同叢集，或是修改此叢集以啟用多個可用區。如需詳細資訊，請參閱[修改 MemoryDB 叢集](clusters.modify.md)。

1. 選擇叢集名稱。

1. 在**碎片和節點**頁面上，針對您要測試容錯移轉的碎片，選擇碎片的名稱。

1. 針對節點，選擇**容錯移轉主要**。

1. 選擇 **Continue (繼續)** 來容錯移轉主要節點，或是 **Cancel (取消)** 來取消操作而不容錯移轉主要節點。

   在容錯移轉程序期間，主控台會繼續將節點的狀態顯示為「可用」**。若要追蹤容錯移轉測試的進度，請從主控台導覽窗格選擇 **Events (事件)**。在 **Events (事件)** 標籤上，觀察指出您容錯移轉已啟動的事件 (`FailoverShard API called`) 並完成 (`Recovery completed`)。

 

### 使用 測試自動容錯移轉 AWS CLI
<a name="auto-failover-test-cli"></a>

您可以使用操作容錯移轉碎片，在任何啟用異地同步備份的叢集上測試自動 AWS CLI 容錯移轉。 [https://docs.aws.amazon.com/cli/latest/reference/memorydb/failover-shard.html](https://docs.aws.amazon.com/cli/latest/reference/memorydb/failover-shard.html)

**Parameters**
+ `--cluster-name` - 必要。要測試的叢集。
+ `--shard-name` - 必要。您要測試自動容錯移轉的碎片名稱。在 24 小時的滾動期間內，您最多可以測試五個碎片。

下列範例使用 AWS CLI 在 MemoryDB 叢集 `0001` 中的碎片`failover-shard`上呼叫 `my-cluster`。

針對 Linux、macOS 或 Unix：

```
aws memorydb failover-shard \
   --cluster-name my-cluster \
   --shard-name 0001
```

針對 Windows：

```
aws memorydb failover-shard ^
   --cluster-name my-cluster ^
   --shard-name 0001
```

若要追蹤容錯移轉的進度，請使用 AWS CLI `describe-events`操作。

它會傳回下列 JSON 回應：

```
{
    "Events": [
        {
            "SourceName": "my-cluster",
            "SourceType": "cluster",
            "Message": "Failover to replica node my-cluster-0001-002 completed",
            "Date": "2021-08-22T12:39:37.568000-07:00"
        },
        {
            "SourceName": "my-cluster",
            "SourceType": "cluster",
            "Message": "Starting failover for shard 0001",
            "Date": "2021-08-22T12:39:10.173000-07:00"
        }
    ]
}
```

如需詳細資訊，請參閱下列內容：
+ [容錯移轉碎片](https://docs.aws.amazon.com/cli/latest/reference/memorydb/failover-shard.html)
+ [describe-events](https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-events.html)

 

### 使用 MemoryDB API 測試自動容錯移轉
<a name="failovershard-test-api"></a>

下列範例會在叢集 `0003`中的碎片`FailoverShard`上呼叫 `memorydb00`。

**Example 測試自動容錯移轉**  

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=FailoverShard
    &ShardName=0003
    &ClusterName=memorydb00
    &Version=2021-01-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20210801T192317Z
    &X-Amz-Credential=<credential>
```

若要追蹤容錯移轉的進度，請使用 MemoryDB `DescribeEvents` API 操作。

如需詳細資訊，請參閱下列內容：
+ [FailoverShard](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_FailoverShard.html) 
+ [DescribeEvents](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEvents.html) 

# 變更複本的數量
<a name="update-replica-count"></a>

您可以使用 AWS 管理主控台 AWS CLI、 或 MemoryDB API，動態增加或減少 MemoryDB 叢集中的僅供讀取複本數量。所有碎片都必須有相同數量的複本。

## 增加叢集中的複本數量
<a name="increase-replica-count"></a>

您可以將 MemoryDB 叢集中的複本數量增加到每個碎片最多五個。您可以使用 AWS 管理主控台、 AWS CLI或 MemoryDB API 來執行此操作。

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

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

若要增加 MemoryDB 叢集 （主控台） 中的複本數量，請參閱 [從叢集新增/移除節點](clusters.deletenode.md)。

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

若要增加 MemoryDB 叢集中的複本數量，請使用 `update-cluster`命令搭配下列參數：
+ `--cluster-name` - 必要。識別您要增加複本數量的叢集。
+ `--replica-configuration` - 必要。可讓您設定複本數量。若要增加複本計數，請在此操作結束時，將 `ReplicaCount` 屬性設定為您希望在此碎片中包含的複本數量。

**Example**  
下列範例會將叢集中的複本數量增加`my-cluster`為 2。  
若為 Linux、macOS 或 Unix：  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --replica-configuration \
        ReplicaCount=2
```
針對 Windows：  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --replica-configuration ^
        ReplicaCount=2
```

它會傳回下列 JSON 回應：

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 1,
        "ClusterEndpoint": {
            "Address": "clustercfg.my-cluster.xxxxx.memorydb.us-east-1.amazonaws.com",
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

若要檢視更新叢集的狀態從*更新*變更為*可用*後的詳細資訊，請使用下列命令：

若為 Linux、macOS 或 Unix：

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

針對 Windows：

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

它會傳回下列 JSON 回應：

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 1,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-003",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-22T12:59:31.844000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 3
                }
            ],
            "ClusterEndpoint": {
                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

如需使用 CLI 增加複本數量的詳細資訊，請參閱《 命令參考》中的 [update-cluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)。 *AWS CLI *

### 使用 MemoryDB API
<a name="increase-replica-count-api"></a>

若要增加 MemoryDB 碎片中的複本數量，請使用 `UpdateCluster`動作搭配下列參數：
+ `ClusterName` - 必要。識別您要增加複本數量的叢集。
+ `ReplicaConfiguration` - 必要。可讓您設定複本數量。若要增加複本計數，請在此操作結束時，將 `ReplicaCount` 屬性設定為您希望在此碎片中包含的複本數量。

**Example**  
下列範例會將叢集中的複本數量增加`sample-cluster`到三個。當範例完成時，每個碎片中有三個複本。無論是具有單一碎片的 MemoryDB 叢集，還是具有多個碎片的 MemoryDB 叢集，此數字都適用。  

```
https://memory-db.us-east-1.amazonaws.com/
      ?Action=UpdateCluster      
      &ReplicaConfiguration.ReplicaCount=3
      &ClusterName=sample-cluster
      &Version=2021-01-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20210802T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 增加複本數量的詳細資訊，請參閱 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)。

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

您可以減少 MemoryDB 叢集中的複本數量。您可以將複本數量減少為零，但如果您的主節點失敗，則無法容錯移轉至複本。

您可以使用 AWS 管理主控台、 AWS CLI 或 MemoryDB API 來減少叢集中的複本數量。

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

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

若要減少 MemoryDB 叢集 （主控台） 中的複本數量，請參閱 [從叢集新增/移除節點](clusters.deletenode.md)。

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

若要減少 MemoryDB 叢集中的複本數量，請使用 `update-cluster`命令搭配下列參數：
+ `--cluster-name` - 必要。識別您要減少其複本數量的叢集。
+ `--replica-configuration` - 必要。

  `ReplicaCount` – 設定此屬性以指定您想要的複本節點數目。

**Example**  
下列範例使用 `--replica-configuration`將叢集中的複本數量減少`my-cluster`為指定的值。  
若為 Linux、macOS 或 Unix：  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --replica-configuration \
        ReplicaCount=1
```
針對 Windows：  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --replica-configuration ^
        ReplicaCount=1 ^
```

它會傳回下列 JSON 回應：

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 1,
        "ClusterEndpoint": {
            "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

若要檢視更新叢集的狀態從*更新*變更為*可用*後的詳細資訊，請使用下列命令：

若為 Linux、macOS 或 Unix：

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

針對 Windows：

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

它會傳回下列 JSON 回應：

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 1,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                }
            ],
            "ClusterEndpoint": {
                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

如需使用 CLI 減少複本數量的詳細資訊，請參閱《 命令參考》中的 [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/update-cluster.html)。 *AWS CLI *

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

若要減少 MemoryDB 叢集中的複本數量，請使用 `UpdateCluster`動作搭配下列參數：
+ `ClusterName` - 必要。識別您要減少其複本數量的叢集。
+ `ReplicaConfiguration` - 必要。可讓您設定複本數量。

  `ReplicaCount` – 設定此屬性以指定您想要的複本節點數目。

**Example**  
下列範例使用 將叢集中的複本數量`ReplicaCount`減少`sample-cluster`為 1。範例完成後，每個碎片中都會有一個複本。無論是具有單一碎片的 MemoryDB 叢集，還是具有多個碎片的 MemoryDB 叢集，此數字都適用。  

```
https://memory-db.us-east-1.amazonaws.com/
      ?Action=UpdateCluster    
      &ReplicaConfiguration.ReplicaCount=1
      &ClusterName=sample-cluster
      &Version=2021-01-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20210802T192317Z
      &X-Amz-Credential=<credential>
```

如需使用 API 減少複本數量的詳細資訊，請參閱 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)。