Amazon OpenSearch Service 中的服務軟體更新 - Amazon OpenSearch Service

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

Amazon OpenSearch Service 中的服務軟體更新

注意

如需每個主要 (非修補程式) 服務軟體更新中所做的變更和新增的說明,請參閱版本備註

Amazon OpenSearch Service 會定期發行服務軟體更新,以新增功能或以其他方式改善您的網域。主控台中的 Notifications (通知) 面板是查看更新是否可用或檢查更新狀態的最簡單方法。每個通知都包含有關服務軟體更新的詳細資訊。所有服務軟體更新都使用藍/綠部署,將停機時間降到最低。

服務軟體更新與 OpenSearch 版本升級不同。如需升級至較新版本 的相關資訊 OpenSearch,請參閱 升級 Amazon OpenSearch Service 網域

選用與必要更新

OpenSearch 服務有兩種廣泛的服務軟體更新類別:

選用更新

選用的服務軟體更新通常包括新功能或功能的增強和支援。您的網域不會強制執行選用更新,而且安裝這些更新沒有困難的截止日期。更新可用性會透過電子郵件和主控台通知進行通訊。您可以選擇立即套用更新,或將更新重新排程為更適當的日期和時間。您也可以在網域的離峰時段 期間排程。大多數軟體更新都是選用的。

無論您是否排程更新,如果您變更導致藍/綠部署的網域, OpenSearch Service 會自動為您更新服務軟體。

您可以設定您的網域,以在離峰時間自動套用選用更新。開啟此選項時, OpenSearch Service 會在提供選用更新後等待至少 13 天,然後在 72 小時 (三天) 後排程更新。排定更新時,您會收到主控台通知,您可以選擇將更新重新排定在稍後日期。

若要開啟自動軟體更新,請選取建立或更新網域時啟用自動軟體更新。若要使用 設定相同的設定 AWS CLI,請在建立或更新網域true時將 --software-update-options設定為 。

必要的更新

所需的服務軟體更新通常包括關鍵安全修正或其他強制性更新,以確保您網域的持續完整性和功能。必要更新的範例包括 Log4j 常見漏洞和暴險 (CVEs) 以及執行個體中繼資料服務第 2 版 () 的強制執行IMDSv2。一年中的強制性更新數量通常少於三個。

OpenSearch 服務會自動排程這些更新,並在排程更新前 72 小時 (三天) 透過電子郵件和主控台通知通知您。您可以選擇立即套用更新,或在允許的時間範圍內重新排程更適當的日期和時間。您也可以在網域的下一個離峰時段 中排程。如果您未對必要的更新採取任何動作,而且未進行任何導致藍/綠部署的網域變更, OpenSearch Service 可以在網域的離峰時段內超過指定截止日期 (通常為自可用起 14 天) 後隨時啟動更新。

無論何時排程更新,如果您變更導致藍/綠部署的網域, OpenSearch Service 會自動為您更新網域。

修補程式更新

以 "-P" 結尾的服務軟體版本和數字,例如 R20211203-P4、 是修補程式版本。修補程式可能包括效能改進、小錯誤修復、安全修復或狀態改善。修補程式版本不包含新功能或重大變更,而且通常不會對使用者造成直接或明顯的影響。服務軟體通知會告訴您修補程式版本是選用還是強制性。

考量事項

在決定是否要更新網域時,請考慮下列各項:

  • 手動更新網域可讓您更快速地利用新功能。當您選擇更新 時, OpenSearch Service 會將請求放置在佇列中,並在有時間時開始更新。

  • 當您啟動服務軟體更新時, OpenSearch Service 會在更新開始和完成時傳送通知。

  • 軟體更新使用藍/綠部署盡量減少停機時間。更新可能會暫時損耗叢集的專用主節點,因此請務必維持足夠的容量來處理相關的額外負荷。

  • 更新通常在幾分鐘內完成,但如果您的系統負載過重,也可能需要數小時甚至數天的時間。請考慮在設定的離峰時段期間更新您的網域,以避免長時間更新。

啟動服務軟體更新

您可以透過服務主控台、 AWS CLI或其中一個 請求 OpenSearch 服務軟體更新SDKs。

請求服務軟體更新
  1. 開啟位於首頁 的 Amazon OpenSearch Service 主控台。 https://console.aws.amazon.com/aos/

  2. 選取網域名稱以開啟其組態。

  3. 選擇動作 更新,然後選擇下列其中一個選項:

    • 立即套用更新 - 如果容量可用,立即排程在目前小時內執行的動作。如果容量無法使用,我們會提供其他可用的時段以供選擇。

    • 在離峰時段排程 – 只有在網域啟用離峰時段時才可用。排程在網域設定的離峰時段期間執行更新。我們無法保證會在下一個立即時段進行更新。視容量而定,它可能會在後續幾天內發生。如需詳細資訊,請參閱在離峰時段期間排程軟體更新

    • 排程特定日期和時間 – 排程在特定日期和時間進行更新。如果您指定的時間因容量原因而無法使用,您可以選擇不同的時段。

    如果您將更新排程為稍後日期 (在網域的離峰時段內或之外),您可以隨時重新排程更新。如需說明,請參閱 重新排程動作

  4. 選擇確認

傳送start-service-software-update AWS CLI 請求以啟動服務軟體更新。此範例會立即將更新新增至佇列:

aws opensearch start-service-software-update \ --domain-name my-domain \ --schedule-at "NOW"

回應:

{ "ServiceSoftwareOptions": { "CurrentVersion": "R20220928-P1", "NewVersion": "R20220928-P2", "UpdateAvailable": true, "Cancellable": true, "UpdateStatus": "PENDING_UPDATE", "Description": "", "AutomatedUpdateDate": "1969-12-31T16:00:00-08:00", "OptionalDeployment": true } }
提示

請求更新後,您有一段很短的時間可以取消更新。此PENDING_UPDATE狀態的持續時間可能很大,取決於您的 AWS 區域 和 OpenSearch 服務正在執行的並行更新數量。若要取消更新,請使用 主控台或 cancel-service-software-update AWS CLI 命令。

如果 請求失敗BaseException,表示您指定的時間因容量原因而無法使用,您必須指定不同的時間。 OpenSearch 服務會在回應中提供替代的可用插槽建議。

此 Python 指令碼範例使用來自 的 describe_domainstart_service_software_update 方法 AWS SDK for Python (Boto3) ,來檢查網域是否符合服務軟體更新的資格,如果符合,則啟動更新。您必須提供 domain_name 的值。

import boto3 from botocore.config import Config import time # Build the client using the default credential configuration. # You can use the CLI and run 'aws configure' to set access key, secret # key, and default region. my_config = Config( # Optionally lets you specify a Region other than your default. region_name='us-east-1' ) domain_name = '' # The name of the domain to check and update client = boto3.client('opensearch', config=my_config) def getUpdateStatus(client): """Determines whether the domain is eligible for an update""" response = client.describe_domain( DomainName=domain_name ) sso = response['DomainStatus']['ServiceSoftwareOptions'] if sso['UpdateStatus'] == 'ELIGIBLE': print('Domain [' + domain_name + '] is eligible for a service software update from version ' + sso['CurrentVersion'] + ' to version ' + sso['NewVersion']) updateDomain(client) else: print('Domain is not eligible for an update at this time.') def updateDomain(client): """Starts a service software update for the eligible domain""" response = client.start_service_software_update( DomainName=domain_name ) print('Updating domain [' + domain_name + '] to version ' + response['ServiceSoftwareOptions']['NewVersion'] + '...') waitForUpdate(client) def waitForUpdate(client): """Waits for the domain to finish updating""" response = client.describe_domain( DomainName=domain_name ) status = response['DomainStatus']['ServiceSoftwareOptions']['UpdateStatus'] if status == 'PENDING_UPDATE' or status == 'IN_PROGRESS': time.sleep(30) waitForUpdate(client) elif status == 'COMPLETED': print('Domain [' + domain_name + '] successfully updated to the latest software version') else: print('Domain is not currently being updated.') def main(): getUpdateStatus(client)

在離峰時段期間排程軟體更新

在 2023 年 2 月 16 日之後建立的每個 OpenSearch 服務網域,其每日 10 小時時段介於當地時間下午 10:00 到上午 8:00 之間,我們認為是離峰時段。 OpenSearch Service 會使用此時段來排程網域的服務軟體更新。離峰更新有助於將叢集專用主節點在較高流量期間承受的壓力降到最低。未經您的同意, OpenSearch 服務無法在此 10 小時時段之外啟動更新。

  • 對於選用更新, OpenSearch Service 會通知您更新的可用性,並提示您在即將到來的離峰時段中排程更新。

  • 對於必要的更新, OpenSearch Service 會在即將到來的離峰時段自動排程更新,並提前三天通知您。您可以重新排程更新 (適用於離峰時段內外),但只能在完成更新所需的時間範圍內。

對於每個網域,您可以選擇使用自訂時間覆寫預設的下午 10:00 開始時間。如需說明,請參閱 設定自訂離峰時段

在即將來臨的離峰時段期間排程更新
  1. 開啟位於首頁 的 Amazon OpenSearch Service 主控台。 https://console.aws.amazon.com/aos/

  2. 選取網域名稱以開啟其組態。

  3. 選擇動作更新

  4. 選取在離峰時段排程。

  5. 選擇確認

您可以在離峰時段索引標籤上檢視排程動作,並隨時重新排程。請參閱 檢視排程動作

若要在即將來臨的離峰時段期間使用 排程更新 AWS CLI,請傳送StartServiceSoftwareUpdate請求並OFF_PEAK_WINDOW指定 --schedule-at 參數:

aws opensearch start-service-software-update \ --domain-name my-domain \ --schedule-at "OFF_PEAK_WINDOW"

監控服務軟體更新

OpenSearch 當服務軟體更新可用、必要、已啟動、已完成或失敗時,服務會傳送通知。您可以在 OpenSearch 服務主控台的通知面板上檢視這些通知。如果更新為可選,則通知嚴重性為 Informational;如果必須更新,則為 High

OpenSearch 服務也會將服務軟體事件傳送至 Amazon EventBridge。您可以使用 EventBridge 來設定規則,以便在收到事件時傳送電子郵件或執行特定動作。如需範例演練,請參閱 教學課程:可用軟體更新的 Amazon SNS 提醒

若要查看傳送至 Amazon 的每個服務軟體事件的格式 EventBridge,請參閱 服務軟體更新事件

網域不符合更新條件時,

如果您的網域處於以下任何一種狀態,則不符合服務軟體更新的資格:

描述
處理中的網域

組態變更中的網域 請於操作完成後檢查更新資格。

紅色叢集狀態

叢集中一或多個索引是紅色的。如需疑難排解步驟,請參閱紅色叢集狀態

高錯誤率

OpenSearch 叢集在嘗試處理請求時傳回大量的 5xx 錯誤。此問題通常是因為太多同時讀寫請求造成。請考慮降低叢集流量或擴展網域。

分割大腦

分割大腦表示您的 OpenSearch 叢集具有多個主節點,並已分割為兩個叢集,這些叢集永遠不會自行重新加入。您也可以使用建議數量的專用主節點來避免大腦分割。如需從大腦分割中恢復的協助,請聯絡 AWS Support

Amazon Cognito 整合問題

您的網域使用 OpenSearch Dashboards 的身分驗證,而 OpenSearch Service 找不到一或多個 Amazon Cognito 資源。如果缺少 Amazon Cognito 使用者集區,通常就會發生此問題。若要修正問題,請重新建立缺少的資源,並將 OpenSearch 服務網域設定為使用它。

其他 ​ 服務問題

OpenSearch 服務本身的問題可能會導致您的網域顯示為不符合更新的資格。如果上述情況都不適用於您的網域且問題持續超過一天,請聯絡 AWS Support