View a markdown version of this page

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

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

Amazon OpenSearch Service 中的服務軟體更新

注意

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

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

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

OpenSearch Service 會要求您在所需的服務軟體更新可供使用的 30 天內套用。這些更新對於維護安全合規至關重要。

如果您未在 30 天內套用必要的更新,您將在 30 天內每 15 天收到提醒通知。在這段期間不合規的情況下,您的網域將會隔離,並產生下列效果:

  • 已移除對您網域的所有網路存取

  • 網域狀態變更為隔離

  • 在您套用必要的更新之前,網域仍然無法使用

在隔離期間,您將繼續每 15 天收到提醒通知,為期 60 天。如果您在此期間未套用必要的更新,您的 OpenSearch Service 網域和所有相關資料都會永久刪除。如需詳細資訊,請參閱疑難排解驗證錯誤

選用與必要的更新

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

選用更新

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

無論您是否排程更新,如果您在網域上進行造成藍/綠部署的變更,OpenSearch Service 都會為您自動更新服務軟體。

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

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

必要的更新

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

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

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

修補程式更新

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

考量事項

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

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

  • 初始化服務軟體更新時,OpenSearch Service 會在更新開始和完成時傳送通知。

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

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

啟動服務軟體更新

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

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

  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 Service 正在執行的並行更新數量。若要取消更新,請使用 主控台或 cancel-service-software-update AWS CLI 命令。

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

此範例 Python 指令碼使用來自 的 describe_domainstart_service_software_update 方法 適用於 Python (Boto3) 的 AWS SDK ,來檢查網域是否符合服務軟體更新的資格,如果符合,則啟動更新。您必須提供 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 Service 網域,其每日 10 小時時段介於當地時間下午 10:00 到上午 8:00 之間,我們認為是離峰時段。OpenSearch Service 使用此時段來排程網域的服務軟體更新。離峰更新有助於在較高的流量期間,將叢集專用主節點上的壓力降至最低。未經您的同意,OpenSearch Service 無法在此 10 小時時段之外啟動更新。

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

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

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

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

  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 Service 會在服務軟體更新可用、必要、已啟動、已完成或失敗時傳送通知。您可以在 OpenSearch Service 主控台的通知面板中檢視通知。如果更新為可選,則通知嚴重性為 Informational;如果必須更新,則為 High

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

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

網域不符合更新條件時,

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

State Description
處理中的網域

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

紅色叢集狀態

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

高錯誤率

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

分割大腦

分割大腦表示 ​OpenSearch 叢集有不只一個主節點,且已分為兩個叢集,這兩個叢集將不會自行重新連結。您也可以使用建議數量的專用主節點來避免大腦分割。如需從大腦分割中恢復的協助,請聯絡 支援

Amazon Cognito 整合問題

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

其他 ​ 服務問題

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

復原服務軟體更新

Amazon OpenSearch Service 支援轉返服務軟體更新。您可以使用 OpenSearch Service 主控台、 AWS CLI或其中一個 AWS SDKs 來啟動轉返。軟體更新會使用藍/綠部署轉返。

注意

只有 2026 年 4 月 24 日當天或之後套用的服務軟體更新才支援轉返。引擎版本升級無法復原。

轉返資格和考量事項

您的網域必須符合下列所有條件,才能使用轉返:

  • 網域作用中 – 網域必須處於 Active 狀態。當組態變更、軟體更新或其他藍/綠部署正在進行時,無法使用轉返。

  • 在復原時段內 – 軟體更新必須在允許的復原期間內套用。請參閱 回復時段

  • 更新後沒有組態變更 – 如果您在套用軟體更新後對網域進行組態變更,則會封鎖轉返。組態變更可能會影響與先前軟體版本不相容的網域設定。例如,變更執行個體類型、啟用複本,或在更新後調整儲存體設定會封鎖復原。

  • 服務不會自動套用更新 – 如果您在 30 天的可用性時段內未對強制性更新採取動作,且 OpenSearch Service 自動套用更新,則無法復原該更新。

  • 更新不是引擎版本升級 – 引擎版本變更 (例如,從 OpenSearch 1.3 升級到 OpenSearch 2.11) 是不可復原的。僅支援服務軟體版本轉返。

  • 存在先前的軟體版本 – 回復僅適用於此功能正式推出 (GA) 之後套用的軟體更新。由於 GA 沒有要復原的先前版本,因此尚未進行軟體更新的網域。

  • 每次更新只允許一個轉返 – 轉返完成後,網域會被視為處於轉返狀態。在成功套用新的軟體更新之前,您無法再次轉返。

  • 軟體更新已明確啟動 – 只有當軟體更新由您明確啟動或由 OpenSearch Service 自動排程為強制性或選擇性更新的一部分時,才能使用轉返。下列情況時,無法使用轉返:

    • 軟體更新是在由組態變更觸發的藍/綠部署期間套用。這包括啟用 UseLatestServiceSoftwareForBlueGreen設定的情況,這會將最新的軟體更新與組態變更綁定在一起。您可以選擇停用此設定。

    • 在網域的服務啟動維護操作期間套用更新,例如基礎設施復原、自動修復或 OpenSearch Service 執行的其他內部操作,以維護網域的運作狀態和可用性。

回復時段

復原視窗取決於套用的軟體更新類型。

更新類型 轉返視窗 備註
選用 從套用更新之日起 15 天

無論您手動套用更新、排程更新,還是在離峰時間自動套用更新,都適用。

強制性 從套用更新之日起 15 天

只有在您在 30 天的可用性時段內自行套用更新時,才能使用。如果服務在截止日期後自動套用更新,則無法回復。

回復時段過期後,自助式回復不再可用。支援 如果您在視窗關閉後遇到重大問題,請聯絡 。

如何請求轉返

您可以使用 RollbackServiceSoftwareUpdate API 請求轉返。

請求

POST /2021-01-01/opensearch/serviceSoftwareUpdate/rollback

請求內文:

{ "DomainName": "your-domain-name" }

回應

API 會在所有非錯誤情況下傳回 HTTP 200 回應。回應內文中的 RollbackAvailable 欄位指出是否啟動轉返。

{ "RollbackServiceSoftwareOptions": { "CurrentVersion": "string", "NewVersion": "string", "RollbackAvailable": boolean, "Description": "string" } }

回應欄位:

欄位 Type Description
CurrentVersion String

目前在網域上執行的軟體版本。

NewVersion String

將復原網域的軟體版本。如果無法使用轉返,則傳回 null。

RollbackAvailable Boolean

true 如果已成功啟動轉返。false如果網域不符合轉返資格。

Description String

描述結果或原因復原的人類可讀取訊息無法使用。

錯誤回應

錯誤 Description
ResourceNotFoundException

指定的網域不存在。

ValidationException

網域未處於作用中狀態。等待任何進行中的變更完成,然後再重試。

InternalException

服務發生內部錯誤。重試 請求。

DisabledOperationException

此網域不支援復原操作。

回應訊息

下表說明 RollbackServiceSoftwareUpdate API 傳回的可能回應訊息。

案例 Description
成功

已成功啟動轉返。網域將從目前版本復原至先前版本

功能未啟用

不提供轉返。如需協助支援,請聯絡 。

舊版軟體無法使用

沒有可用於轉返的先前軟體版本。如需協助支援,請聯絡 。

先前的軟體與目前的軟體相同

不提供轉返。沒有可用於轉返的先前軟體版本。如需協助支援,請聯絡 。

網域已復原

網域已處於復原狀態。

叢集位於固定軟體版本

軟體覆寫目前會套用至網域。

在時間範圍之外

不提供轉返。15 天復原時段已過期。如需協助支援,請聯絡 。

自動套用的強制性服務更新

不提供轉返。目前版本已透過強制性服務更新套用。如需協助支援,請聯絡 。

引擎版本升級

不提供轉返。引擎版本升級無法復原。如需協助支援,請聯絡 。

組態在更新後變更

不提供轉返。自上次軟體更新後,叢集組態已變更。如需協助支援,請聯絡 。

回應範例:

{ "RollbackServiceSoftwareOptions": { "CurrentVersion": "OpenSearch_2_11_R20240115", "NewVersion": "OpenSearch_2_11_R20231023", "RollbackAvailable": true, "Description": "Rollback initiated successfully. The domain will be rolled back from OpenSearch_2_11_R20240115 to OpenSearch_2_11_R20231023." } }

當無法使用轉返時, 會RollbackAvailable傳回 ,falseDescription 欄位包含上表中的原因。