

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

# ElastiCache 中的服務更新
<a name="Self-Service-Updates"></a>

ElastiCache 會自動監控您的快取、叢集和節點機群，並在服務更新推出時套用更新。無伺服器快取的服務更新會自動且公開套用。對於節點型叢集，您可以設定預先定義的維護時段。關鍵安全性更新會自動套用在這些維護時段。所有其他更新將透過自助式更新提供。

透過自助式更新，您可以控制何時以及哪些更新會套用至以節點為基礎的叢集。您也可以即時監控要套用到您所選 ElastiCache 叢集的這些更新的進度。

**Topics**
+ [管理節點型叢集的服務更新](#managing-updates)

## 管理節點型叢集的服務更新
<a name="managing-updates"></a>

節點型叢集的 ElastiCache 服務更新會定期發行。如果您有一或多個符合這些服務更新的節點型叢集，您會在更新發佈時透過電子郵件、SNS、個人運作狀態儀表板 (PHD) 和 Amazon CloudWatch 事件收到通知。更新也會顯示在 ElastiCache 主控台的 **Service Updates (服務更新)** 頁面上。透過使用此儀表板，您可以檢視 ElastiCache 機群的所有服務更新及其狀態。無伺服器快取的服務更新會公開套用，且無法透過**服務更新**管理。

您可以在自動更新開始前，控制套用更新的時間。服務更新有三種類型：
+ **security-update**：包括最新的安全修補程式。我們強烈建議您盡快套用安全性更新，以確保您的 ElastiCache 叢集隨時掌握 up-to-date 最新的安全性修補程式。
+ **引擎更新**：包括與您目前引擎版本的效能或穩定性最佳化相關的修補程式或次要引擎版本更新。
+ **engine-major-version-update**：包括主要版本或引擎類型變更，通常是因為您目前的引擎版本已達到生命週期結束。我們建議您在套用這類更新[ElastiCache 中的引擎版本和升級](engine-versions.md)之前，先仔細檢閱 的版本相容性備註。

以下區段更會詳細探討這些選項。

### 套用服務更新
<a name="applying-updates"></a>

您可以在更新的狀態變成 **available** (可用) 時，開始將服務更新套用到機群。服務更新為累積更新。換句話說，您未套用的任何更新都會包含在最新的更新中。

如果服務更新已啟用自動更新，您可以選擇在可用時記下任何動作。ElastiCache 將排程在**自動更新開始日期**後，即將到來的其中一個叢集維護時段套用更新。您將收到更新每個階段的相關通知。

**注意**  
您只能套用狀態為 **available** (可用) 或 **scheduled** (已排程) 的服務更新。

如需檢閱並將任何服務專屬更新套用到適用的 ElastiCache 叢集的詳細資訊，請參閱 [使用主控台套用服務更新](#applying-updates-console-APIReferenceconsole)。

當您的一或多個 ElastiCache 叢集有新的服務更新可用時，您可以使用 ElastiCache 主控台、API 或 AWS CLI 來套用更新。以下區段會說明您可以用來套用更新的選項。

#### 使用主控台套用服務更新
<a name="applying-updates-console-APIReferenceconsole"></a>

若要檢視可用服務更新的清單與其他資訊，請前往主控台的 **Service Updates** (服務更新) 頁面。

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

1. 在導覽窗格上，選擇 **Service Updates** (服務更新)。

1. 在 **Service updates** (服務更新) 中，您可以檢視下列項目：
   + **Service update name** (服務更新名稱)：服務更新的唯一名稱
   + **更新類型**：服務更新的類型，它是 **security-update**、 **engine-update** 或 **engine-major-version-update** 之一
   + **Update severity** (更新嚴重性)：套用更新的優先順序：
     + **critical (重大)：**建議您立即套用此更新 (在 14 天內)。
     + **important (重要)：**建議您盡快在業務流程允許的情況下套用此更新 (在 30 天內)。
     + **medium (中等)：**建議您盡快套用此更新 (在 60 天內)。
     + **low (低度)：**建議您盡快套用此更新程式 (在 90 天內)。
   + **Engine version** (引擎版本)：如果更新類型為 engine-update (引擎更新)，表示正在更新的引擎版本。
   + **發佈日期**：更新發佈且可在叢集上套用的時間。
   + **Recommended Apply By Date (建議套用到期日)**：更新套用到期日的 ElastiCache 指導日期。
   + **狀態**：更新的狀態，可以是下列狀態之一：
     + **可用**：更新可用於必要的叢集。
     + **complete** (完成)：已套用更新。
     + **cancelled (已取消)：**更新已取消且不再需要。
     + **過期：**更新已不可套用。

1. 選擇個別更新 (而非其左側的按鈕)，檢視服務更新的詳細資訊。

   在 **Cluster update status** (叢集更新狀態) 區段中，您可以檢視叢集清單，這些叢集尚未套用或最近才套用服務更新。針對每個叢集，您可以檢視下列項目：
   + **Cluster name** (叢集名稱)：叢集的名稱
   + **Nodes updated** (已更新的節點)：特定叢集中的個別節點比率，這些節點已更新或仍可用於特定服務更新。
   + **Update Type** (更新類型)：服務更新的類型，可為 **security-update** (安全性更新) 或 **engine-update** (引擎更新)
   + **Status** (狀態)：叢集上服務更新的狀態，可以是下列狀態之一：
     + *available* (可用)：更新可用於必要的叢集。
     + *進行中*：正在將更新套用至此叢集。
     + *scheduled (已排程)*：已排程更新日期。
     + *complete (完成)*：已成功套用更新。狀態為 complete (完成) 的叢集會在完成後顯示 7 天。

     如果您已選擇任何或所有狀態為 **available** (可用) 或 **scheduled** (已排程) 的叢集，然後選擇 **Apply now** (立即套用)，系統會開始將這些更新套用至這些叢集。

#### 使用 套用服務更新 AWS CLI
<a name="applying-updates-cli-redis"></a>

在收到服務更新可供使用的通知後，您就可以使用 AWS CLI來檢查和套用這些更新：
+ 若要擷取可用服務更新的說明，請執行下列命令：

  `aws elasticache describe-service-updates --service-update-status available`

  如需詳細資訊，請參閱[描述服務更新](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-service-updates.html)。
+ 若要在叢集清單上套用服務更新，請執行下列命令：

  `aws elasticache batch-apply-update-action --service-update ServiceUpdateNameToApply=sample-service-update --cluster-names cluster-1 cluster2`

  如需詳細資訊，請參閱[批次套用更新動作](https://docs.aws.amazon.com/cli/latest/reference/elasticache/batch-apply-update-action.html)。

### 使用 AWS 主控台確認您已套用最新的服務更新
<a name="verifying-self-service-updates"></a>

您可以依照下列步驟，驗證 ElastiCache for Redis OSS 叢集是否正在執行最新的服務更新：

1. 在 **Redis OSS 叢集頁面上選擇適用的叢集** 

1. 在導覽窗格中選擇**服務更新**，以查看該叢集適用的服務更新，如果有的話。

如果主控台顯示服務更新清單，您可以選擇服務更新，然後選擇**立即套用**。

![服務更新主控台螢幕擷取畫面 1。](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/service-updates-1.png)


如果主控台顯示「找不到服務更新」，表示 ElastiCache for Redis OSS 叢集已套用最新的服務更新。

![服務更新主控台螢幕擷取畫面 2。](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/service-updates-2.png)


### 停止服務更新
<a name="stopping-self-service-updates"></a>

如有需要，您可以停止叢集更新。例如，如果正在進行更新的叢集發生非預期的激增，建議您停止更新。或者，如果更新花費太長時間，而且在尖峰時間中斷業務流程，您可能會想要停止更新。

[停止中](https://docs.aws.amazon.com//AmazonElastiCache/latest/APIReference/API_BatchStopUpdateAction.html)操作會立即中斷對那些叢集以及還未更新之任何節點的所有更新。此操作會繼續完成狀態為 **in progress (處理中)** 的任何節點。然而，它會停止對相同叢集中狀態為 **update available (可更新)** 的其他節點的更新，並將這些節點還原成 **Stopping (停止中)** 狀態。

**Stopping (停止中)** 工作流程已完成，狀態為 **Stopping (停止中)** 的節點會變更為 **Stopped (已停止)** 狀態。根據更新的工作流程，某些叢集不會更新任何節點。其他叢集可能會包含一些已更新的節點以及狀態仍是 **update available (可更新)** 的節點。

您可以稍後返回，在業務流程允許的時候再完成更新進度。在這種情況下，請選擇您想要完成更新的適用叢集，接著選擇 **Apply Now (立即套用)**。如需詳細資訊，請參閱[套用服務更新](#applying-updates)。

#### 使用主控台
<a name="stopping-updates-console"></a>

您可以使用 ElastiCache 主控台來中斷服務更新。以下內容會示範其做法：
+ 在所選叢集上進行服務更新後，ElastiCache 主控台會在 ElastiCache 儀表板的頂部顯示**檢視/停止更新**索引標籤。
+ 若要中斷更新，請選擇 **Stop Update (停止更新)**。
+ 停止更新時，選擇叢集並檢查狀態。叢集會還原成 **Stopping (停止中)** 狀態，最後會變成 **Stopped (已停止)** 狀態。

#### 使用 AWS CLI
<a name="stopping-updates-cli"></a>

您可以使用 AWS CLI來中斷服務更新。下列程式碼範例示範其做法：

若是複寫群組，請執行下列操作：

`aws elasticache batch-stop-update-action --service-update-name {{sample-service-update}} --replication-group-ids {{my-replication-group-1 my-replication-group-2}}`

對於叢集，請執行下列動作：

`aws elasticache batch-stop-update-action --service-update-name {{sample-service-update}} --cache-cluster-ids {{my-cache-cluster-1 my-cache-cluster-2}}`

如需詳細資訊，請參閱 [BatchStopUpdateAction](https://docs.aws.amazon.com//AmazonElastiCache/latest/APIReference/API_BatchStopUpdateAction.html)。