

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

# 取代節點 (Valkey 和 Redis OSS)
<a name="CacheNodes.NodeReplacement"></a>

Amazon ElastiCache 經常透過無縫套用至執行個體的修補程式和升級來升級其機群。不過，有時我們需要重新啟動 ElastiCache 節點，才能將強制性作業系統更新套用至基礎主機。必須進行這些替換才能套用升級，以強化安全、可靠性和操作效能。

您可以選擇在排程的節點替換時間之前，隨時自行管理這些替換。當您自行管理替換時，執行個體會在重新啟動節點時收到 OS 更新，而排程的節點替換將會取消。您可能會繼續收到提醒，指出節點即將進行替換。若您已手動減少維護的需求，您可以忽略這些提醒。

**注意**  
Amazon ElastiCache 自動產生的取代快取節點可能有不同的 IP 地址。您必須負責檢閱應用程式組態，以確保快取節點與適當的 IP 位址相關聯。

以下清單識別當 ElastiCache 排程其中一個 Valkey 或 Redis OSS 節點進行取代時，您可以採取的動作。若要加快尋找針對您的狀況所需的資訊，請從以下選單選擇。
+ [Do nothing](#DoNothing) - 讓 Amazon ElastiCache 按排程替換節點。
+ [Change your maintenance window](#ChangeWindow) - 將您的維護時段變更為更合適的時間。
+ Valkey 或 Redis OSS （啟用叢集模式） 組態
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) – 使用備份和還原取代 Valkey 或 Redis OSS 叢集中節點的程序。
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) – 透過增加和減少複本計數來取代任何 Valkey 或 Redis OSS 叢集中僅供讀取複本的程序，無需叢集停機時間。
  + [Replace any node in a Valkey or Redis OSS (cluster mode enabled) shard](#ReplaceShardNode) – 動態程序，沒有叢集停機時間，可透過向外擴展和向內擴展來取代 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的節點。
+ Valkey 或 Redis OSS （停用叢集模式） 組態
  + [Replace the only node in any Valkey or Redis OSS cluster](#ReplaceStandalone) – 使用備份和還原取代 Valkey 或 Redis OSS 叢集中任何節點的程序。
  + [Replace a replica node in any Valkey or Redis OSS cluster](#ReplaceReplica) – 透過增加和減少複本計數來取代任何 Valkey 或 Redis OSS 叢集中僅供讀取複本的程序，無需叢集停機時間。
  + [Replace a node in a Valkey or Redis OSS (cluster mode disabled) cluster](#ReplaceStandaloneClassic) – 使用複寫取代 Valkey 或 Redis OSS （停用叢集模式） 叢集中的節點的程序。
  + [Replace a Valkey or Redis OSS (cluster mode disabled) read-replica](#ReplaceReadReplica) – 手動取代 Valkey 或 Redis OSS （停用叢集模式） 複寫群組中僅供讀取複本的程序。
  + [Replace a Valkey or Redis OSS (cluster mode disabled) primary node](#ReplacePrimary) – 手動取代 Valkey 或 Redis OSS （停用叢集模式） 複寫群組中主節點的程序。

**Valkey 和 Redis OSS 節點替換選項**
+ **不執行任何動作** - 若您不執行任何動作，ElastiCache 會依排程替換節點。

   

  對於啟用自動容錯移轉的非叢集組態，Valkey 7.2 和更高版本以及 Redis OSS 5.0.6 和更高版本上的叢集會完成取代，同時叢集會繼續保持線上狀態並提供傳入寫入請求。對於 Redis OSS 4.0.10 或更低版本上已啟用自動容錯移轉的叢集，您可能會注意到與 DNS 更新相關聯的短暫寫入中斷，最長可達幾秒鐘。

  如果節點是已啟用自動容錯移轉叢集的成員，ElastiCache for Valkey 或 Redis OSS 會在修補、更新和其他維護相關節點替換期間提供更高的可用性。

   

  對於設定為使用 ElastiCache for Valkey 或 Redis OSS 叢集用戶端的 ElastiCache 叢集組態，替換現在會在叢集提供傳入寫入請求時完成。 ElastiCache 

   

  對於啟用自動容錯移轉的非叢集組態，Valkey 7.2 和更高版本以及 Redis OSS 5.0.6 和更高版本上的叢集會完成取代，同時叢集會繼續保持線上狀態並提供傳入寫入請求。對於 Redis OSS 4.0.10 或更低版本上已啟用自動容錯移轉的叢集，您可能會注意到與 DNS 更新相關聯的短暫寫入中斷，最長可達幾秒鐘。

   

  若為獨立節點，Amazon ElastiCache 會先啟動替換節點，然後再從現有節點進行同步。現有節點此時將無法處理服務請求。同步完成後，現有節點會遭到終止，新的節點會取代其位置。ElastiCache 會盡量在此操作期間保留您的資料。

   
+ **變更您的維護時段** - 對於排定的維護事件，您會收到來自 ElastiCache 的電子郵件或通知事件。在這種情況下，如果在排定的替換時間之前變更維護時段，則現在將在新的時間替換您的節點。如需詳細資訊，請參閱下列內容：
  + [修改 ElastiCache 叢集](Clusters.Modify.md)
  + [修改複寫群組](Replication.Modify.md)
**注意**  
只有當 ElastiCache 通知包含維護時段時，您才可以透過改變維護時段來變更您的替換時間。若通知並未包含維護時段，您便無法變更替換時間。

  例如，假設現在是 11 月 9 日星期四下午 3:00，下一個維護時段是 11 月 10 日星期五下午 5:00。以下是三種情況及其結果：
  + 您將維護時段變更為星期五下午 4:00，在目前的日期時間之後、下一個排定的維護時段之前。節點將於 11 月 10 日星期五下午 4:00 進行替換。
  + 您將維護時段變更為星期六下午 4:00，在目前的日期時間之後，以及下一個排定的維護時段之後。節點將於 11 月 11 日星期六下午 4:00 進行替換。
  + 您將維護時段變更為星期三下午 4:00，早於這星期中目前的日期時間。節點將於 11 月 15 日星期三下午 4:00 進行替換。

  如需說明，請參閱[管理 ElastiCache 叢集維護](maintenance-window.md)。

   
+ **取代任何 Valkey 或 Redis OSS 叢集中唯一的節點** – 如果叢集沒有任何僅供讀取複本，您可以使用下列程序來取代節點。

**使用備份與還原替換唯一節點**

  1. 建立節點叢集的快照。如需說明，請參閱「[取得手動備份](backups-manual.md)」。

  1. 從快照建立新叢集。如需說明，請參閱[從備份還原到新的快取](backups-restoring.md)。

  1. 刪除包含已排程替換節點的叢集。如需說明，請參閱[在 ElastiCache 中刪除叢集](Clusters.Delete.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

   
+ **取代任何 Valkey 或 Redis OSS 叢集中的複本節點** – 若要取代複本叢集，請增加複本計數。若要達成此目的，請先新增複本，然後移除您要替換的複本來減少複本計數。此程序為動態程序，因此不會有任何叢集停機時間。
**注意**  
若您的碎片或複寫群組已有 5 個複本，請對調步驟 1 和 2 的順序。

**取代任何 Valkey 或 Redis OSS 叢集中的複本**

  1. 透過將複本新增到碎片或複寫群組，來增加複本數。如需詳細資訊，請參閱[增加碎片中的複本數量](increase-replica-count.md)。

  1. 刪除您欲替換的複本。如需詳細資訊，請參閱[減少碎片中的複本數量](decrease-replica-count.md)。

  1. 更新您應用程式中的端點。

   
+ **取代 Valkey 或 Redis OSS （啟用叢集模式） 碎片中的任何節點** – 若要在不停機的情況下取代叢集中的節點，請使用線上重新分片。首先透過向外擴展來新增碎片，然後透過向內擴展來刪除具有要替換之節點的碎片。

**取代 Valkey 或 Redis OSS （啟用叢集模式） 叢集中的任何節點**

  1. 向外擴展：使用與包含要替換節點現有碎片相同的組態新增額外的碎片。如需詳細資訊，請參閱[使用線上重新分片功能新增碎片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-add)。

  1. 向內擴展：刪除包含要替換節點的碎片。如需詳細資訊，請參閱[使用線上重新分片移除碎片](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online-remove)。

  1. 更新您應用程式中的端點。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 叢集中的節點** – 如果叢集是沒有任何僅供讀取複本的 Valkey 或 Redis OSS （停用叢集模式） 叢集，請使用下列程序來取代節點。

**使用複寫替換節點 (僅限停用叢集模式)**

  1. 將複寫新增到包含已排程替換節點的叢集，做為主要節點。請不要在此叢集上啟用異地同步備份。如需說明，請參閱[將複寫新增至沒有碎片的 Valkey 或 Redis OSS 叢集](Clusters.AddNode.md#AddReplication.CON)。

  1. 將僅供讀取複本新增到叢集。如需說明，請參閱[將節點新增至 ElastiCache 叢集 （主控台）](Clusters.AddNode.md#AddNode.CON)。

  1. 將新建立的僅供讀取複本提升為主要節點。如需說明，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

  1. 刪除已排程替換的節點。如需說明，請參閱[從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本** – 如果節點是僅供讀取複本，請取代節點。

  若您的叢集只有一個複本節點，並且已啟用異地同步備份，您必須先停用異地同步備份才能刪除複本。如需說明，請參閱[修改複寫群組](Replication.Modify.md)。

**若要取代 Valkey 或 Redis OSS （停用叢集模式） 僅供讀取複本**

  1. 刪除已排程進行替換的複本。如需詳細說明，請參閱下列主題：
     + [減少碎片中的複本數量](decrease-replica-count.md)
     + [從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)

  1. 新增新複本來替換已排程進行替換的複本。若您使用與剛刪除複本相同的名稱，您可以跳過步驟 3。如需詳細說明，請參閱下列主題：
     + [增加碎片中的複本數量](increase-replica-count.md)
     + [新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)

  1. 在您的應用程式中，使用新複本的端點替換舊複本的端點。

  1. 若您在一開始停用異地同步備份，現在請重新啟用。如需說明，請參閱[啟用多個可用區](AutoFailover.md#AutoFailover.Enable)。

   
+ **取代 Valkey 或 Redis OSS （停用叢集模式） 主節點** – 如果節點是主節點，請先將僅供讀取複本提升為主節點。然後刪除先前做為主要節點的複本。

  若您的叢集只有一個複本，並且已啟用異地同步備份，您必須先停用異地同步備份才能在步驟 2 刪除複本。如需說明，請參閱[修改複寫群組](Replication.Modify.md)。

**取代 Valkey 或 Redis OSS （停用叢集模式） 主節點**

  1. 將僅供讀取複本提升為主要節點。如需說明，請參閱[針對 Valkey 或 Redis OSS （停用叢集模式） 複寫群組，將僅供讀取複本提升為主要複本](Replication.PromoteReplica.md)。

  1. 刪除已排程進行替換的節點 (舊的主要節點)。如需說明，請參閱[從 ElastiCache 叢集移除節點](Clusters.DeleteNode.md)。

  1. 新增新複本來替換已排程進行替換的複本。若您使用與剛刪除節點相同的名稱，您可以跳過變更您應用程式中的端點。

     如需說明，請參閱[新增 Valkey 或 Redis OSS 的僅供讀取複本 （停用叢集模式）](Replication.AddReadReplica.md)。

  1. 在您的應用程式中，使用新節點的端點替換舊節點的端點。

  1. 若您在一開始停用異地同步備份，現在請重新啟用。如需說明，請參閱[啟用多個可用區](AutoFailover.md#AutoFailover.Enable)。

   