

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

# 從 ElastiCache 叢集移除節點
<a name="Clusters.DeleteNode"></a>

您可以使用 、 或 ElastiCache API AWS 管理主控台，從 Valkey AWS CLI、Memcached 或 Redis OSS 叢集刪除節點。

**注意**  
每當您變更 Memcached 叢集中的節點數量時，必須至少重新對應一些索引鍵空間，使其對應到正確的節點。如需有關負載平衡 Memcached 叢集的詳細資訊，請參閱[設定 ElastiCache 用戶端以實現高效率的負載平衡 (Memcached)](BestPractices.LoadBalancing.md)。

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

**從叢集中移除節點 (主控台)**

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

1. 從右上角的清單中，選擇要從中移除節點的叢集AWS區域。

1. 在導覽窗格中，選擇您要從中移除節點之叢集所執行的引擎。

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

1. 在叢集清單中，選擇您要從中移除節點的叢集名稱。

   接著會出現叢集的節點清單。

1. 選擇您要移除之節點的節點 ID 旁的方塊。使用 ElastiCache 主控台時，您一次只能刪除一個節點，因此選擇多個節點表示您無法使用 **Delete node (刪除節點)** 按鈕。

   *Delete Node (刪除節點)* 頁面隨即出現。

1. 若要刪除節點，請完成 **Delete Node (刪除節點)** 頁面，然後選擇 **Delete Node (刪除節點)**。如要保留節點，請選擇 **Cancel (取消)**。
**重要**  
使用 Valkey 或 Redis OSS，如果您刪除叢集中不再符合異地同步備份標準的節點結果，請務必先清除**異地同步**備份核取方塊，然後刪除節點。如果清除 **Multi-AZ (多個可用區)** 核取方塊，您可以選擇啟用 **Auto failover (自動容錯移轉)**。


**新增和移除請求對待定請求的影響**  

| 案例 | 待定作業 | 新請求 | 結果 | 
| --- | --- | --- | --- | 
|  案例 1 |  刪除 | 刪除 |  新的刪除請求 (待定或立即) 會取代待定的刪除請求。 例如，如果節點 0001、0003 和 0007 處於待定刪除狀態，並發出刪除節點 0002 和 0004 的新請求，則只會刪除節點 0002 和 0004。系統不會刪除節點 0001、0003 和 0007。 | 
|  案例 2 |  刪除 |  建立 |  新的建立請求 (待定或立即) 會取代待定的刪除請求。 例如，如果節點 0001、0003 和 0007 處於待定刪除狀態，並發出建立節點的新請求，則會建立新的節點，而不會刪除節點 0001、0003 和 0007。 | 
|  案例 3 |  建立 |  刪除 |  新的刪除請求 (待定或立即) 會取代待定的建立請求。 例如，若存在建立兩個節點的待定請求，並發出刪除節點 0003 的新請求，則不會建立新的節點，且會刪除節點 0003。 | 
|  案例 4 |  建立 |  建立 |  新的建立請求會新增至待定的建立請求。 例如，若存在建立兩個節點的待定請求，並發出建立三個節點的新請求，則新請求會新增至待定請求，並建立五個節點。 如果新的建立請求設定為 **Apply Immediately - Yes (立即套用 - 是)**，則會立即執行所有建立請求。如果新的建立請求設定為 **Apply Immediately - No (立即套用 - 否)**，則所有建立請求都處於待定狀態。 | 

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

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

1. 找出您要移除的節點 ID。如需詳細資訊，請參閱[檢視 ElastiCache 叢集的詳細資訊](Clusters.ViewDetails.md)。

1. 搭配使用 `decrease-replica-count` CLI 操作與要移除的節點清單，如下列範例所示。

   若要使用命令列界面移除叢集中的節點，請搭配使用 `decrease-replica-count` 命令與下列參數：
   + `--replication-group-id` 您想要從中移除節點的快取複寫群組 ID。
   + `--new-replica-count` `--new-replica-count` 參數可指定套用修改之後您要在此叢集中使用的節點數。
   + `--replicas-to-remove` 您要從這個叢集中移除的節點 ID 清單。
   + `--apply-immediately` 或 `--no-apply-immediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
   + `--region` 指定您要從中移除節點的叢集AWS區域。
**注意**  
呼叫此作業時，您只能傳遞其中一個 `--replicas-to-remove` 或 `--new-replica-count` 參數。

   針對 Linux、macOS 或 Unix：

   ```
   aws elasticache decrease-replica-count \
       --replication-group-id my-replication-group \
       --new-replica-count 2 \   
       --region us-east-2 \
       --apply-immediately
   ```

   針對 Windows：

   ```
   aws elasticache decrease-replica-count ^
       --replication-group-id my-replication-group ^
       --new-replica-count 3 ^   
       --region us-east-2 ^
       --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",
               "node-test-006"
           ],
           "NodeGroups": [
               {
                   "NodeGroupId": "0001",
                   "Status": "modifying",
                   "PrimaryEndpoint": {
                       "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "ReaderEndpoint": {
                       "Address": "node-test-ro.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"
                       },
                       {
                           "CacheClusterId": "node-test-004",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-004.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-005",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-005.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-006",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-006.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"
       }
   }
   ```

或者，您可以呼叫 `decrease-replica-count`，不傳入 `--new-replica-count` 參數，而是可以傳遞 `--replicas-to-remove` 參數，如下所示：

針對 Linux、macOS 或 Unix：

```
aws elasticache decrease-replica-count \
    --replication-group-id my-replication-group \
    --replicas-to-remove node-test-003 \   
    --region us-east-2 \
    --apply-immediately
```

針對 Windows：

```
aws elasticache decrease-replica-count ^
    --replication-group-id my-replication-group ^
    --replicas-to-remove node-test-003 ^   
    --region us-east-2 ^
    --apply-immediately
```

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

## 搭配 Valkey 或 Redis OSS 使用 ElastiCache API
<a name="Clusters.DeleteNode.API2"></a>

若要使用 ElastiCache API 移除節點，請搭配使用複寫群組 ID 與要移除的節點清單來呼叫 `DecreaseReplicaCount` API 作業，如下所示：
+ `ReplicationGroupId` 您想要從中移除節點的快取複寫群組 ID。
+ `ReplicasToRemove` `ReplicasToRemove` 參數可指定套用修改之後您要在此叢集中使用的節點數。
+ `ApplyImmediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
+ `Region` 指定您要從中移除節點的叢集AWS區域。

下列範例會從 my-cluster 叢集中立即移除節點 0004 和 0005。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DecreaseReplicaCount
    &ReplicationGroupId=my-replication-group
    &ApplyImmediately=true
    &ReplicasToRemove=node-test-003    
    &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_DecreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)。

## 搭配 Memcached 使用 ElastiCache API
<a name="Clusters.DeleteNode.API"></a>

若要使用 ElastiCache API 移除節點，請搭配使用快取叢集 ID 與要移除的節點清單來呼叫 `ModifyCacheCluster` API 作業，如下所示：
+ `CacheClusterId` 您要從中移除節點的叢集 ID。
+ `NumCacheNodes` `NumCacheNodes` 參數可指定套用修改之後您要在此叢集中使用的節點數。
+ `CacheNodeIdsToRemove.member.n` 要從叢集中移除的節點 ID 清單。
  + `CacheNodeIdsToRemove.member.1=0004`
  + `CacheNodeIdsToRemove.member.1=0005`
+ `ApplyImmediately` 指定是否要立即移除這些節點，或等到下個維護時段再移除。
+ `Region` 指定您要從中移除節點的叢集AWS區域。

下列範例會從 my-cluster 叢集中立即移除節點 0004 和 0005。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &ApplyImmediately=true
    &CacheNodeIdsToRemove.member.1=0004
    &CacheNodeIdsToRemove.member.2=0005
    &NumCacheNodes=3   
    &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)。