受管平台更新 - AWS Elastic Beanstalk

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

受管平台更新

AWS Elastic Beanstalk 會定期發佈平台更新,來提供修正程式,軟體更新和新功能。利用受管平台更新,您可以將環境設定為在排程的維護時段期間,自動升級至平台的最新版本。在更新程序進行期間,您的應用程式仍會繼續提供服務,功能不會減少。在單一執行個體環境和負載平衡環境中,皆可進行受管更新作業。

注意

這個功能不適用於第 2 版 (v2) 以前的 Windows Server 平台版本

您可以將環境設定為自動套用修補程式版本更新,或同時套用修補程式版本與次要版本的更新。受管平台更新不支援跨平台分支的更新 (不同主要平台元件版本的更新,例如作業系統、執行時間或 Elastic Beanstalk 元件),因為這些更新可能會引進無法回溯相容的變更。

您也可以設定 Elastic Beanstalk 在維護時段期間更換您環境中的所有執行個體,即使無可用的平台更新亦然。如果您的應用程式在長時間執行後出現錯誤或記憶體的問題,則更換您環境中的所有執行個體會有所幫助。

在 2019 年 11 月 25 日或之後使用 Elastic Beanstalk 主控台建立的環境上,會盡可能根據預設啟用受管更新。受管更新需要啟用增強型運作狀態。當您選取其中一個組態預設時,系統會根據預設啟用增強型運作狀態,而當您選取 Custom configuration (自訂組態) 時,則會將其停用。若為不支援增強型運作狀態的舊版平台,或在增強型運作狀態停用時,主控台則無法啟用受管更新。當主控台為新環境啟用受管更新時,Weekly update window (每週更新時段) 會設為一週當中的某個隨機的天的某個隨機時段。Update level (更新層級) 已設為 Minor and patch (次要和修補程式),且 Instance replacement (執行個體更換) 已停用。您可以在最終環境建立步驟前停用或重新設定受管更新。

針對現有環境,請隨時使用 Elastic Beanstalk 主控台來設定受管平台更新。

重要

如果一個 AWS 帳戶中有大量 Beanstalk 環境,在受管更新期間可能會遭遇限流問題。大量是一個相對數量,具體取決於為環境排程的受管更新緊密程度。如果帳戶緊密排程了超過 200 個環境,就可能會導致限流問題,數量低於這個數值也可能會有問題。

為了平衡受管更新的資源負載,建議在帳戶中將環境的排程維護時段鋪開。

此外,可考慮使用多帳戶策略。如需詳細資訊,請參閱 AWS 白皮書與指南網站上的《使用多帳戶組織您的 AWS 環境》

設定受管平台更新
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇 Configuration (組態)

  4. Managed updates (受管理的更新) 類別中,選擇 Edit (編輯)

  5. 停用或啟用 Managed updates (受管更新)

  6. 若已啟用受管更新,請選取維護時段,然後選取 Update level (更新層級)

  7. (選用) 選取 Instance replacement (執行個體更換) 來啟用每週的執行個體更換作業。

    修改受管更新組態頁面
  8. 若要儲存變更,請選擇頁面底部的儲存變更

受管平台更新需依據增強的健全狀況報告,來判定您應用程式的運作狀態是否夠健全,以評斷平台更新作業是否成功。如需說明,請參閱 啟用 Elastic Beanstalk 增強型運作狀態報告

進行受管平台更新所需的許可

Elastic Beanstalk 需要許可來代表您起始平台更新作業。為取得這些許可,Elastic Beanstalk 會擔任受管更新服務角色。當您將預設服務角色用於環境時,Elastic Beanstalk 主控台也會使用其做為受管更新服務角色。主控台會將 AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy 受管原則指派給您的服務角色。此原則具有 Elastic Beanstalk 執行受管平台更新所需的所有許可。

如需有關設定受管更新服務角色之其他方法的詳細資訊,請參閱管理 Elastic Beanstalk 服務角色

注意

如果您使用組態檔案來擴展您的環境,以加入其他的資源,則您可能需要針對在環境的受管更新服務角色中新增許可。當您以名稱參考其他區段或檔案中的這些資源時,通常需要新增許可。

如果更新失敗,在受管更新頁面上會列出失敗的原因。

受管更新的維護時段

當 AWS 針對您環境的平台發佈新版本時,Elastic Beanstalk 會將受管平台更新作業排程在下一次的每週維護時段。維護時段的時間長度是兩個小時。Elastic Beanstalk 會在維護時段啟動排程更新。該更新可能會在時段結束後才完成。

注意

在大多數情況下,Elastic Beanstalk 會將您的受管更新安排在未來的每週維護時段。系統在安排受管更新時,會將各種更新安全性和服務可用性納入考量。在極少數情況下,更新可能不會安排在第一個即將到來的維護時段中。如果發生這種情況,系統會再次嘗試安排在下一個維護時段中。若要手動套用受管更新,請選擇 Apply now (馬上套用),如本頁之管理受管更新作業所述。

次要和修補程式版本更新

您可以讓受管平台更新只套用修補程式版本的更新,或同時套用次要版本與修補程式版本的更新。修補程式版本的更新提供錯誤修正與效能改善功能,也可以包含對執行個體上軟體、指令碼和組態選項的次要組態變更。次要版本更新提供對新 Elastic Beanstalk 功能的支援。您不能套用重大版本更新,此種更新可能會進行與受管平台更新回溯不相容的變更。

在平台版本編號中,第二個數字是次要更新的版本,第三個數字是修補程式的版本。例如,2.0.7 平台版本包含 0 的次要版本和 7 的修補程式版本。

不可變的環境更新

受管平台更新作業會進行不可變的環境更新,來將您的環境升級為新的平台版本。不可變的更新作業會在不移除任何服務執行個體或修改環境的狀況下,更新您的環境,再確認執行新版本的執行個體能否通過運作狀態檢查。

在不可變的更新作業中,Elastic Beanstalk 會使用新平台版本,來部署與目前執行中執行個體數量一樣多的執行個體。新的執行個體會和這些執行舊版本的執行個體,一起接收要求。如果新一組的執行個體通過所有的運作狀態檢查,則 Elastic Beanstalk 會終止舊的那組執行個體,只留下使用新版的執行個體。

即使是在維護時段以外的時間執行,受管平台更新作業也一律會進行不可變的更新。如果您是在 Dashboard (儀表板) 變更平台版本,則 Elastic Beanstalk 會套用您針對組態更新所選擇的更新原則。

警告

部署或更新期間,部分原則會取代所有執行個體。這會造成所有的累計 Amazon EC2 爆量餘額遺失。這發生的情況如下:

  • 執行個體更換啟用的受管平台更新

  • 不可變更新

  • 不可變更新或流量分割啟用的部署

管理受管更新作業

Elastic Beanstalk 主控台會在 Managed updates overview (受管更新概觀) 頁面上顯示有關受管更新的詳細資訊。

若要檢視關於受管更新的資訊 (主控台)
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 選擇 Managed updates (受管更新)

Managed Updates Overview (受管更新概觀) 區段會提供已排程和待處理受管更新作業的相關資訊。History (歷程記錄) 區段會列出已成功的更新作業和失敗的嘗試。

您可以選擇立即執行排程更新作業,而非等到維護時段再進行。

若要立即執行受管平台更新作業 (主控台)
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 選擇 Managed updates (受管更新)

  4. 選擇 Apply now (立即套用)

  5. 確認更新詳細資訊,然後選擇 Apply (套用)

當您在維護時段以外的時間執行受管平台更新作業時,Elastic Beanstalk 會進行不可變更新。如果您是在儀表板或使用不同的用戶端來更新環境的平台,則 Elastic Beanstalk 會使用您針對組態變更所選取的更新類型。

如果您尚未排程受管更新作業,則您的環境可能已在執行最新的版本。沒有更新作業排程的其他原因還包括:

  • 次要版本的可用更新,但您的環境已設定只自動套用修補程式版本的更新。

  • 您的環境自從更新發佈之後尚未掃描過。Elastic Beanstalk 通常會每個小時檢查一次更新。

  • 有更新作業等待處理中或已正在進行。

當您的維護時段開始或當您選擇 Apply now (立即套用) 時,排程的更新作業會先進入等待處理中狀態再執行。

受管動作選項的命名空間

您可以在 aws:elasticbeanstalk:managedactionsaws:elasticbeanstalk:managedactions:platformupdate 命名空間中使用組態選項,來啟用和設定受管平台更新作業。

ManagedActionsEnabled 選項會啟用受管平台更新作業。將此選項設定為 true 來啟用受管平台更新,並使用其他選項來設定更新動作。

利用 PreferredStartTime 來設定每週維護時段開始的時間 (格式為 day:hour:minute)。

UpdateLevel 設定為 minorpatch 來同時套用次要版本與修補程式版本的更新,或只套用修補程式版本的更新。

當受管平台更新作業啟用時,您可以藉由將 InstanceRefreshEnabled 選項設定為 true,來啟用執行個體的更換。當此設定啟用時,Elastic Beanstalk 會每週針對您的環境進行不可變的更新,無論是否有可用的新平台版本。

下列的範例組態檔案會在每週二上午 9:00 UTC 開始的維護時段中,啟用修補程式更新版的受管平台更新作業。

範例 .ebextensions/managed-platform-update.config
option_settings: aws:elasticbeanstalk:managedactions: ManagedActionsEnabled: true PreferredStartTime: "Tue:09:00" aws:elasticbeanstalk:managedactions:platformupdate: UpdateLevel: patch InstanceRefreshEnabled: true