

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

# 將節點新增至 ElastiCache 叢集
<a name="Clusters.AddNode"></a>

將節點新增至 Memcached 叢集會增加叢集分割區的數量。當您變更叢集中的分割區數量時，您必須重新對應一些鍵空間，以讓它們對應到正確的節點。重新對應鍵空間時，會暫時增加叢集的快取未命中數。如需詳細資訊，請參閱[設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

若要重新設定您的 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)

您可以使用 ElastiCache 管理主控台、AWS CLI或 ElastiCache API 將節點新增至叢集。

## 使用 ElastiCache AWS 管理主控台
<a name="Clusters.AddNode.CON"></a>

如果您想要將節點新增至單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集 （未啟用複寫），則這是一個兩步驟的程序：首先新增複寫，然後新增複本節點。

**主題**
+ [將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](#AddReplication.CON)
+ [將節點新增至 ElastiCache 叢集 （主控台）](#AddNode.CON)

下列程序會將複寫新增至未啟用複寫的單一節點 Valkey 或 Redis OSS。當您新增複寫時，現有節點會變成已啟用複寫之叢集中的主要節點。新增複寫之後，您即可新增最多 5 個複本節點至該叢集。<a name="AddReplication.CON"></a>

**將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集**

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

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

   隨即顯示執行該引擎的叢集清單。

1. 選擇您要為其新增節點的叢集名稱，而非叢集名稱左側的方塊。

   下列適用於未啟用複寫的 Redis OSS 叢集：
   + 它正在執行 Redis OSS，而非叢集 Redis OSS。
   + 它具有零個碎片。

     如果叢集有任何碎片，該叢集就已經啟用複寫，因此您可以繼續 [將節點新增至 ElastiCache 叢集 （主控台）](#AddNode.CON)。

1. 選擇 **Add replication (新增複寫)**。

1. 在 **Add Replication (新增複寫)** 中，為這個已啟用複寫的叢集輸入說明。

1. 選擇**新增**。

   只要叢集的狀態回到*「可用」*，您就可以繼續下一個程序並新增複本至叢集。<a name="AddNode.CON"></a>

**將節點新增至 ElastiCache 叢集 （主控台）**

下列程序可用來將節點新增至叢集。

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

1. 在導覽窗格中，選擇您要為其新增節點之叢集所執行的引擎。

   接著會出現執行所選引擎的叢集清單。

1. 從叢集清單中，針對您要新增節點的叢集，選擇其名稱。

   如果您的叢集是 Valkey 或 Redis OSS （啟用叢集模式） 叢集，請參閱 [擴展 Valkey 或 Redis OSS （啟用叢集模式） 叢集](scaling-redis-cluster-mode-enabled.md)。

   如果您的叢集是具有零碎片的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請先完成 中的步驟[將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](#AddReplication.CON)。

1. 選擇 **Add node (新增節點)**。

1. 完成 **Add Node (新增節點)** 對話方塊中請求的資訊。

1. 選擇 **Apply Immediately - Yes (立即套用 - 是)** 按鈕可立即新增此節點；或選擇 **No (否)**，在此叢集的下一個維護時段期間，新增此節點。  
**新增和移除要求對待定請求的影響**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/Clusters.AddNode.html)

   若要判斷哪些作業處於待定狀態，請選擇 **Description (描述)** 索引標籤，並檢查顯示多少待定的建立或刪除項目。待定建立和待定刪除項目不能同時存在。

1. 選擇 **Add (新增)** 按鈕。

    在一段時間之後，新的節點應會顯示在節點清單中，且狀態為 **creating (建立中)**。如果並未顯示，請重新整理瀏覽器頁面。如果節點狀態變更為*「可用」*，新的節點即可供使用。

## AWS CLI搭配 ElastiCache 使用
<a name="Clusters.AddNode.CLI"></a>

若要使用 將節點新增至叢集AWS CLI，請使用AWS CLI操作`modify-cache-cluster`搭配下列參數：
+ `--cache-cluster-id` 您想為其新增節點的叢集 ID。
+ `--num-cache-nodes` `--num-cache-nodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`--num-cache-nodes` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，ElastiCache 會預期收到 `cache-node-ids-to-remove` 參數以及要從叢集中移除的節點清單。如需詳細資訊，請參閱[AWS CLI搭配 ElastiCache 使用](Clusters.DeleteNode.md#Clusters.DeleteNode.CLI)。
+ `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。

針對 Linux、macOS 或 Unix：

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --num-cache-nodes 5 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --num-cache-nodes 5 ^
    --apply-immediately
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
{
    "CacheCluster": {
        "Engine": "memcached", 
        "CacheParameterGroup": {
            "CacheNodeIdsToReboot": [], 
            "CacheParameterGroupName": "default.memcached1.4", 
            "ParameterApplyStatus": "in-sync"
        }, 
        "CacheClusterId": "my-cluster", 
        "PreferredAvailabilityZone": "us-west-2b", 
        "ConfigurationEndpoint": {
            "Port": 11211, 
            "Address": "rlh-mem000.7alc7bf-example.cfg.usw2.cache.amazonaws.com"
        }, 
        "CacheSecurityGroups": [], 
        "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 
        "AutoMinorVersionUpgrade": true, 
        "CacheClusterStatus": "modifying", 
        "NumCacheNodes": 2, 
        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
        "SecurityGroups": [
            {
                "Status": "active", 
                "SecurityGroupId": "sg-dbe93fa2"
            }
        ], 
        "CacheSubnetGroupName": "default", 
        "EngineVersion": "1.4.24", 
        "PendingModifiedValues": {
            "NumCacheNodes": 5
        }, 
        "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", 
        "CacheNodeType": "cache.m3.medium",
         "DataTiering": "disabled",
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

## AWS CLI搭配 ElastiCache 使用
<a name="Clusters.AddNode.CLI"></a>

如果您想要將節點新增至未啟用複寫的現有 Valkey 或 Redis OSS （停用叢集模式） 叢集，您必須先建立將現有叢集指定為主要叢集的複寫群組。如需詳細資訊，請參閱[使用可用的 Valkey 或 Redis OSS 叢集建立複寫群組 (AWS CLI)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.CLI)。複寫群組為*「可用」*之後，您即可繼續下列程序。

若要使用 將節點新增至叢集AWS CLI，請使用AWS CLI操作`increase-replica-count`搭配下列參數：
+ `--replication-group-id` 您想為其新增節點的複寫群組 ID。
+ `--new-replica-count` 可指定套用修改之後您要在此複寫群組中使用的節點數。若要新增節點至此叢集，`--new-replica-count` 必須大於此叢集中的目前節點數。
+ `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。

針對 Linux、macOS 或 Unix：

```
aws elasticache increase-replica-count \
    --replication-group-id my-replication-group \
    --new-replica-count 4 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache increase-replica-count ^
    --replication-group-id my-replication-group ^
    --new-replica-count 4 ^
    --apply-immediately
```

此作業會產生類似下列的輸出 (JSON 格式)：

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "node-test",
        "Description": "node-test",       
        "Status": "modifying",
        "PendingModifiedValues": {},
        "MemberClusters": [
            "node-test-001",
            "node-test-002",
            "node-test-003",
            "node-test-004",
            "node-test-005"
        ],
        "NodeGroups": [
            {
                "NodeGroupId": "0001",
                "Status": "modifying",
                "PrimaryEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "ReaderEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "NodeGroupMembers": [
                    {
                        "CacheClusterId": "node-test-001",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2a",
                        "CurrentRole": "primary"
                    },
                    {
                        "CacheClusterId": "node-test-002",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2c",
                        "CurrentRole": "replica"
                    },
                    {
                        "CacheClusterId": "node-test-003",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2b",
                        "CurrentRole": "replica"
                    }
                ]
            }
        ],
        "SnapshottingClusterId": "node-test-002",
        "AutomaticFailover": "enabled",
        "MultiAZ": "enabled",
        "SnapshotRetentionLimit": 1,
        "SnapshotWindow": "07:30-08:30",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r5.large",
         "DataTiering": "disabled",
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false,
        "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
    }
}
```

如需詳細資訊，請參閱AWS CLI主題 [https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html)。

## 使用 ElastiCache API
<a name="Clusters.AddNode.API"></a>

如果您想要將節點新增至未啟用複寫的現有 Valkey 或 Redis OSS （停用叢集模式） 叢集，您必須先建立將現有叢集指定為主要叢集的複寫群組。如需詳細資訊，請參閱[將複本新增至獨立 Valkey 或 Redis OSS （停用叢集模式） 叢集 (ElastiCache API)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.API)。複寫群組為*「可用」*之後，您即可繼續下列程序。

**將節點新增至叢集 (ElastiCache API)**
+ 使用下列參數呼叫 `IncreaseReplicaCount` API 操作：
  + `ReplicationGroupId` 您想為其新增節點的叢集 ID。
  + `NewReplicaCount` `NewReplicaCount` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`NewReplicaCount` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，請使用 `DecreaseReplicaCount` API 以及要從叢集中移除的節點數。
  + `ApplyImmediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。
  + `Region` 指定您要新增節點的叢集AWS區域。

  下列範例說明可將節點新增至叢集的呼叫。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=true
      &NumCacheNodes=4
      &ReplicationGroupId=my-replication-group
      &Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &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>
  ```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)。

## 使用 ElastiCache API
<a name="Clusters.AddNode.API"></a>

**將節點新增至叢集 (ElastiCache API)**
+ 使用下列參數呼叫 `ModifyCacheCluster` API 操作：
  + `CacheClusterId` 您想為其新增節點的叢集 ID。
  + `NumCacheNodes` `NumCachNodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。若要新增節點至此叢集，`NumCacheNodes` 必須大於此叢集中的目前節點數。如果此值小於目前節點數，ElastiCache 會預期收到 `CacheNodeIdsToRemove` 參數以及要從叢集中移除的節點清單 (請參閱「[搭配 Memcached 使用 ElastiCache API](Clusters.DeleteNode.md#Clusters.DeleteNode.API)」)。
  + `ApplyImmediately` 指定是否要立即新增這些節點，或等到下個維護時段再新增。
  + `Region` 指定您要新增節點的叢集AWS區域。

  下列範例說明可將節點新增至叢集的呼叫。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=ModifyCacheCluster
      &ApplyImmediately=true
      &NumCacheNodes=5
  	&CacheClusterId=my-cluster
  	&Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &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>
  ```

如需詳細資訊，請參閱 ElastiCache API 主題 [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)。