本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Amazon Linux 2 遷移至 Amazon Linux 2023 Amazon ECS 最佳化 AMI
遵循 Amazon Linux
Amazon Linux 2023 採用預設安全的方式,具備預先設定的安全政策、處於寬容模式的 SELinux、預設啟用的僅 IMDSv2 模式、最佳化的開機時間以及改善的套件管理功能,可大幅提升安全性與效能。
Amazon Linux 2 與 Amazon Linux 2023 Amazon ECS 最佳化 AMI 之間具有高度相容性,大多數客戶在這兩個作業系統之間遇到的工作負載變更很小,甚至為零。
如需詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 Comparing Amazon Linux 2 and Amazon Linux 2023,以及 AL2023 FAQs
相容性考量
套件管理與作業系統更新
與舊版本的 Amazon Linux 不同,Amazon ECS 最佳化 Amazon Linux 2023 AMI 會鎖定到特定版本的 Amazon Linux 儲存庫。這可以防止使用者意外更新套件,導致非必要變更或重大變更。如需詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 Managing repositories and OS updates in Amazon Linux 2023。
Linux 核心版本
Amazon Linux 2 AMI 以 Linux 核心 4.14 與 5.10 為基礎,而 Amazon Linux 2023 使用 Linux 核心 6.1 與 6.12。如需詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 Comparing Amazon Linux 2 and Amazon Linux 2023 kernels。
套件可用性變更
以下是 Amazon Linux 2023 中的重要套件變更:
-
Amazon Linux 2 中的部分來源二進位套件在 Amazon Linux 2023 中不再提供。如需詳細資訊,請參閱 Amazon Linux 2023 Release Notes 中的 Packages removed from Amazon Linux 2023。
-
Amazon Linux 支援不同版本套件方式的變更。Amazon Linux 2 中使用的
amazon-linux-extras系統不存在於 Amazon Linux 2023 中。所有套件皆可在「核心」儲存庫中使用。 -
Amazon Linux 2023 不支援適用於 Enterprise Linux (EPEL) 的額外套件。如需詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 EPEL compatibility in Amazon Linux 2023。
-
Amazon Linux 2023 不支援 32 位元應用程式。如需詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 Deprecated features from Amazon Linux 2。
控制群組 (cgroups) 變更
控制群組 (cgroup) 是 Linux 核心功能,用於階層式整理程序並為其分配系統資源。控制組廣泛用於執行容器執行期,並由 systemd 執行。
Amazon ECS 代理程式、Docker 與 containerd 都支援 cgroupv1 及 cgroupv2。Amazon ECS 代理程式與容器執行時期會代為管理 cgroup,因此 Amazon ECS 客戶不需要為此底層 cgroup 升級進行任何變更。
如需有關 cgroupv2 的更多詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 Control groups v2 in Amazon Linux 2023。
執行個體中繼資料服務 (IMDS) 變更
Amazon Linux 2023 預設需要執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 有多項優勢,有助於改善安全狀態。它使用面向工作階段的身分驗證方法,需要透過一個簡單的 HTTP PUT 請求來建立一個秘密權杖以啟動工作階段。工作階段的權杖有效期可設定為 1 秒至 6 小時之間的任何時間。
如需有關從 IMDSv1 轉換至 IMDSv2 的詳細資訊,請參閱 Amazon EC2 User Guide 中的 Transition to using Instance Metadata Service Version 2。
若您仍想使用 IMDSv1,可以透過使用執行個體中繼資料選項啟動屬性,手動覆寫設定來實現。
記憶體交換積極性變更
Amazon Linux 2023 與 cgroups v2 不支援容器層級的記憶體交換積極性。如需詳細資訊,請參閱在 Amazon ECS 上管理容器交換記憶體空間。
FIPS 驗證變更
Amazon Linux 2 已通過 FIPS 140-2 認證,Amazon Linux 2023 已通過 FIPS 140-3 認證。
若要在 Amazon Linux 2023 上啟用 FIPS 模式,需在 Amazon EC2 執行個體上安裝必要套件,並遵循 Amazon Linux 2023 User Guide 中 Enable FIPS Mode on Amazon Linux 2023 的說明執行設定步驟。
加速執行個體支援
Amazon ECS 最佳化 Amazon Linux 2023 AMI 同時支援 Neuron 與 GPU 兩種加速執行個體類型。如需詳細資訊,請參閱Amazon ECS 最佳化 Linux AMI。
建置自訂 AMI
雖然建議遷移至官方支援與發布的 Amazon Linux 2023 Amazon ECS 最佳化 AMI,但也可透過用於建置 Amazon ECS 最佳化 AMI Linux 變體的開放原始碼建置指令碼,繼續建置自訂的 Amazon Linux 2 Amazon ECS 最佳化 AMI。如需詳細資訊,請參閱Amazon ECS 最佳化 Linux AMI 建置指令碼。
遷移策略
建議建立並實作包含完整應用程式測試的遷移計畫。以下各節根據您管理 Amazon ECS 基礎結構的方式概述不同的遷移策略。
透過 Amazon ECS 容量提供者進行遷移
-
建立使用新啟動範本的新容量提供者。這個容量提供者應參考一個 Auto Scaling 群組,其啟動範本與您現有的類似,但需指定其中一種 Amazon Linux 2023 變體,而非 Amazon Linux 2 Amazon ECS 最佳化 AMI。將此新容量提供者新增至現有的 Amazon ECS 叢集。
-
更新叢集的預設容量提供者策略,使其同時包含現有的 Amazon Linux 2 容量提供者與新的 Amazon Linux 2023 容量提供者。初始權重設定應以 Amazon Linux 2 提供者為主 (例如權重 80),Amazon Linux 2023 提供者為輔 (例如權重 20)。這會使 Amazon ECS 在排程新任務時,開始佈建 Amazon Linux 2023 執行個體。確認這些執行個體能正確註冊,且任務能在新的執行個體上順利執行。
-
隨著時間推移逐漸調整叢集預設策略中的容量提供者權重,增加 Amazon Linux 2023 提供者的權重,同時減少 Amazon Linux 2 提供者權重 (例如從 60/40 調整為 40/60,然後是 20/80)。您也可以更新個別服務容量提供者策略,排定 Amazon Linux 2023 執行個體的優先順序。監控任務置放,確保任務在 Amazon Linux 2023 執行個體上順利執行。
-
選擇性地排空 Amazon Linux 2 容器執行個體,加速實現任務遷移。如果您有足夠的 Amazon Linux 2023 替換容量,您可以透過 Amazon ECS 主控台手動耗盡 Amazon Linux 2 容器執行個體 AWS CLI ,或加速將任務從 Amazon Linux 2 轉移至 Amazon Linux 2023。遷移完成後,從叢集中移除 Amazon Linux 2 容量提供者,同時刪除相關聯的 Auto Scaling 群組。
透過 Amazon EC2 Auto Scaling 群組進行遷移
-
建立使用新啟動範本的新 Amazon EC2 Auto Scaling 群組。這應該與您現有的啟動範本類似,但需指定其中一種 Amazon Linux 2023 變體,而非 Amazon Linux 2 Amazon ECS 最佳化 AMI。這個新建的 Auto Scaling 群組可將執行個體啟動至現有的叢集。
-
向上擴展 Auto Scaling 群組,使 Amazon Linux 2023 執行個體開始向叢集進行註冊。確認這些執行個體能正確註冊,且任務能在新的執行個體上順利執行。
-
確認任務在 Amazon Linux 2023 上運作後,請向上擴展 Amazon Linux 2023 Auto Scaling 群組,同時逐步縮減 Amazon Linux 2 Auto Scaling 群組規模,直至完全替換所有 Amazon Linux 2 執行個體為止。
-
如果有足夠的 Amazon Linux 2023 替代容量,建議您明確排空容器執行個體,加速將任務從 Amazon Linux 2 轉換至 Amazon Linux 2023。如需詳細資訊,請參閱排空 Amazon ECS 容器執行個體。
透過手動受管執行個體進行遷移
-
透過 Amazon ECS 最佳化 Amazon Linux 2023 AMI 而非 Amazon Linux 2 手動啟動 (或調整啟動的指令碼) 新的 Amazon EC2 執行個體。確保這些執行個體採用與現有 Amazon Linux 2 執行個體相同的安全群組、子網路、IAM 角色與叢集組態。執行個體應在啟動時自動註冊至現有的 Amazon ECS 叢集。
-
確認新的 Amazon Linux 2023 執行個體已成功註冊至 Amazon ECS 叢集且處於
ACTIVE狀態。透過等待自然任務置放或手動停止/啟動部分任務來觸發重新排程,測試任務是否可以排程並在這些新執行個體上正常執行。 -
透過隨需啟動額外的 Amazon Linux 2023 執行個體,逐步取代 Amazon Linux 2 執行個體,接著手動逐台排空並終止 Amazon Linux 2 執行個體。您可以透過 Amazon ECS 主控台將執行個體設定為
DRAINING狀態來排空執行個體,這會停止在其中置放新任務,並允許現有任務完成或在別處重新排程。