本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Amazon LinuxAMI(AL1)遷移到AL2或 AL2 023
如果您的 Elastic Beanstalk 應用程式是以 Amazon Linux AMI 平台分支為基礎,請使用本節瞭解如何將應用程式的環境遷移到 Amazon Linux 2 或 Amazon Linux 2023。以 Amazon Linux
我們強烈建議您遷移到 Amazon Linux 2023,因為它比 Amazon Linux 2 更新。Amazon Linux 2 作業系統將在 Amazon Linux 2023 之前終止支援,因此,如果您遷移到 Amazon Linux 2023,可以獲得更長的支援時間。
值得注意的是,Elastic Beanstalk Amazon Linux 2 和 Amazon Linux 2023 平台之間具有高度相容性。雖然有些區域確實有所不同:執行個體中繼資料服務版本 1 (IMDSv1) 選項預設值、pkg-repo 執行個體工具的支援,以及一些 Apache 設定。HTTPd如需詳細資訊,請參閱 Amazon Linux 2023
差異和相容性
AL2基於 AL2 023/ 的平台分支不能保證與您現有的應用程序向後兼容。同樣需要注意的是,即使應用程式的程式碼成功部署到新平台版本,仍可能會因作業系統和執行時間差異而有不同的運作或執行方式。
雖然 Amazon Linux AMI 和 AL2 023/ AL2 共用相同的 Linux 核心,但它們在以下幾個方面有所不同:它們的初始化系統、libc
版本、編譯器工具鏈以及各種套件。如需詳細資訊,請參閱 Amazon Linux 2 FAQs
Elastic Beanstalk 服務也已更新執行時間的平台專用版本、建置工具及其他依存項目。
因此,建議您慢慢地在開發環境中徹底測試應用程式,然後進行任何必要的調整。
一般遷移程序
如果準備用於生產環境,Elastic Beanstalk 需要進行藍/綠部署才能執行升級。使用藍/綠部署程序進行遷移時,我們建議遵循以下一般最佳實務步驟。
準備進行遷移測試
在您部署應用程式並開始測試之前,請檢閱查看本主題後文 所有 Linux 平台的考量事項 中的資訊。另外,請參閱後文 平台特定考量事項 章節中適用於您平台的資訊。記下此內容中適用或可能適用您的應用程式和組態設定的特定資訊。
高階遷移步驟
-
建立以AL2或 AL2 023 平台分支為基礎的新環境。我們建議您移轉至 AL2 023 平台分支。
-
將您的應用程式部署到目標 AL2 023/ AL2 環境。
您現有的生產環境將保持作用中狀態且不受影響,同時您可以測試和調整新環境,進行反覆。
-
在新環境中全面測試應用程式。
-
當您CNAMEs的目的地 AL2 023/ AL2 環境已準備好進入生產環境時,請交換兩個環境以將流量重新導向至新環境。
更詳細的遷移步驟和最佳實務
如需更詳細的藍/綠部署程序,請參閱 透過 Elastic Beanstalk 進行藍/綠部署。
如需更具體的指南和詳細的最佳實務步驟,請參閱藍/綠方法。
更多有助於規劃遷移的參考資料
下列參考資料可提供有關遷移規劃的其他資訊。
-
Amazon Linux 2023 User Guide 中的 Comparing Amazon Linux 2 and Amazon Linux 2023。
-
Amazon Linux 2023 User Guide 中的 What is Amazon Linux 2023?
-
Elastic Beanstalk 支持平台 AWS Elastic Beanstalk 平台
所有 Linux 平台的考量事項
下表討論規劃應用程式移轉至 AL2 023AL2/時應注意的考量事項。無論使用何種特定程式設計語言或應用程式伺服器,這些考量事項皆適用於任何 Elastic Beanstalk Linux 平台。
Area | 變更和資訊 |
---|---|
組態檔案 |
在 AL2 023/ AL2 平台上,您可以像以前一樣使用配置文件,並且所有部分都以相同的方式工作。但是,特定設定的運作方式可能與先前 Amazon Linux AMI 平台上的運作方式不同。例如:
建議使用平台勾點,以在環境執行個體上執行自訂程式碼。您仍可在 您仍然需要為任何需要引用的腳本使用 |
平台勾點 |
AL2平台推出了一種擴展環境平台的新方法,方法是將可執行文件添加到環境實例上的鉤子目錄。在舊版 Linux 平台中,您可能已使用自訂平台勾點。這些勾點不是專為受管平台設計且不受支援,但在某些情況下能以實用的方式運作。使用 AL2 023/ AL2 平台版本,自定義平台掛鉤不起作用。您應將所有勾點遷移至新的平台勾點。如需詳細資訊,請參閱 平台勾點。 |
支援的代理伺服器 |
AL2023/ AL2 平台版本支援與其 Amazon Linux AMI 平台版本支援的每個平台相同的反向代理伺服器。所有 AL2 023/AL2; 平台版本都使用 nginx 作為其默認的反向代理服務器,除了和 Docker 平台。ECS該湯姆貓,PHPNode.js 和 Python 平台也支持阿帕奇HTTPD作為一種替代方案。所有平台都會以統一的方式啟用代理伺服器設定,如本節所述。但是,配置代理服務器與 Amazon Linux 上的服務器略有不同AMI。以下是所有平台的差異:
若要平台特定的代理組態變更的詳細資訊,請參閱平台特定考量事項。如需有關 AL2 023/ AL2 平台上 Proxy 組態的資訊,請參閱。反向代理組態 |
代理組態變更 |
除了特定於每個平台的代理組態變更外,還有一致地套用至所有平台的代理組態變更。參考兩者以準確設定您的環境,這一點非常重要。 |
執行個體設定檔 |
AL2023/ AL2 平台需要設定執行個體設定檔。若無此描述檔,環境建立可能會暫時成功,但在建立完成後,當需要執行個體描述檔的動作開始失敗時,環境可能很快會出現錯誤。如需詳細資訊,請參閱 管理 Elastic Beanstalk 執行個體描述檔。 |
增強型運作狀態 |
AL2023/ AL2 平台版本預設啟用增強的健康狀態。如果您不使用 Elastic Beanstalk 主控台來建立環境,這就會是一項變更。無論使用的平台版本為何,主控台都會根據預設盡可能啟用增強型運作狀態。如需詳細資訊,請參閱 Elastic Beanstalk 增強健康報告和監測。 |
自訂 AMI |
如果您的環境使用自訂 AMI,請使用 Elastic Beanstalk AL2 AL2 023/ 平台AL2為您的新環境建立一個以 023 為AMI基礎的新環境。AL2 |
自訂平台 |
AL2023/ AL2 平台版本AMIs的託管不支持自定義平台。 |
平台特定考量事項
本節討論特定 Elastic Beanstalk Linux 平台的特定遷移考量事項。
基於 Amazon Linux 的泊塢平台分支系列 AMI (AL1) 包括三個平台分支。我們會為每個平台分支提供不同的遷移路徑建議。
AL1平台分支 | 遷移至 AL2 023 的路徑/AL2 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Amazon 在 Amazon Linux AMI 上ECS運行的多容器泊塢窗()AL1 |
ECS基於泊塢窗 AL2 023AL2/平台分支ECS基於 Docker AL2 023/ AL2 平台分支機構為在多容器 Docker 平台分支上運行的環境提供了直接的遷移路徑。AL1
如需將在多容器 Docker Amazon Linux 平台分支上執行的應用程式遷移到在 AL2023/ AL2 平台分支上ECS執行的 Amazon 的詳細資訊,請參閱。在 Amazon 2023 上將您的 Elastic Beanstalk 應用程式從ECS託管多容器泊塢視窗遷移AL1到 ECS |
||||||||
碼頭工人在 Amazon Linux 上運行 AMI () AL1 運行 Amazon Linux 的預配置碼頭(玻璃魚 5.0)()AMIAL1 |
碼頭工人在 AL2 023AL2/平台分支上運行我們建議您將以預先設定的泊塢視窗 (Glassfish 5.0) 或在 Amazon Linux 上執行的泊塢視窗 () 為基礎的環境中執行的應用程式移轉到以 Amazon Linux AMI 2 上執行的泊塢視窗或在 023 平台分支上執行的泊塢視窗為基礎的環境。AL1 AL2 如果您的環境基於預先設定的 Docker (Glassfish 5.0)平台分支,請參閱 將 GlassFish 應用程式部署到碼頭平台:Amazon Linux 2023 的遷移路徑。 下表列出在 AL2 0 AL2 23/ 上執行之平台分支 Docker 的特定移轉資訊。
|
下表列出 Go 平台中 AL2 023/ AL2 平台版本的移轉資訊。
Area | 變更和資訊 |
---|---|
連接埠傳遞 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 不會透過環境變數將連接埠值傳遞給您的應用程式處理序。 |
下表列出 Java SE 平台中 Corretto 平台分支的遷移資訊。
Area | 變更和資訊 |
---|---|
Corretto vs. 開放 JDK |
為了實現 Java 平台,標準版(Java SE),AL2023/ AL2 平台分支機構使用 Amazon Cor |
建置工具 |
AL2023/ AL2 平台具有較新版本的構建工具: |
JAR檔案處理 |
在 AL2 023/ AL2 平台上,如果您的源代碼包(文ZIP件)包含單個文件而沒有其他文件,則 Elastic Beanstalk 不再將該文件重命JAR名為。JAR |
連接埠傳遞 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 不會透過環境變數將連接埠值傳遞給您的應用程式處理序。 |
Java 7 |
Elastic Beanstalk 不支援 AL2 023/ AL2 Java 7 平台分支。如果您有 Java 7 應用程式,請將其遷移至 Corretto 8 或 Corretto 11。 |
下表列出 Tomcat 平台中 AL2 023/ AL2 平台版本的移轉資訊。
Area | 變更和資訊 | ||||||
---|---|---|---|---|---|---|---|
組態選項 |
在 AL2 023/ AL2 平台版本上,Elastic Beanstalk 僅支援命名空間中的組態選項和選項值的子集。
AL2023/ AL2 平台版本不支援 |
||||||
應用程式路徑 |
在 AL2 023/ AL2 平台上,環境的 Amazon EC2 執行個體上應用程式目錄的路徑為。 |
下表列出 Node.js 平台中 AL2 023/ AL2 平台版本的移轉資訊。
Area | 變更和資訊 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
已安裝的 Node.js 版本 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 維護了幾個 Node.js 平台分支,並且僅在每個平台版本上安裝與平台分支對應的最新版本的 Node.js 主要版本。例如,Node.js 12 平台分支中的每個平台版本,預設只會安裝 Node.js 12.x.y。在 Amazon Linux AMI 平台版本上,我們在每個平台版本上安裝了多個 Node.js 版本的多個版本,並且只維護一個平台分支。 選擇與您應用程式所需的 Node.js 主要版本對應的 Node.js 平台分支。 |
||||||||||
阿帕奇HTTPD記錄檔名稱 |
在 AL2 023/ AL2 平台上,如果您使用 Apache HTTPD 代理伺服器,則HTTPD記錄檔名稱為 如需所有平台之日誌檔案名稱和位置的詳細資訊,請參閱 Elastic Beanstalk 如何設置日誌 CloudWatch 。 |
||||||||||
組態選項 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 不支持命名空間中的配置選項。
|
下表列出平台中 AL2 023/ AL2 平台版本的移轉資訊。PHP
Area | 變更和資訊 |
---|---|
PHP檔案處理 |
在 AL2 023/ AL2 平台上,PHP檔案會使用 PHP-FPM (程序管理員) 來CGI處理。在 Amazon Linux AMI 平台上,我們使用了 mod_php(一個阿帕奇模塊)。 |
代理伺服器 |
AL2023/ AL2 PHP 平台版本同時支援 nginx 和 Apache 代理伺服器。HTTPD預設值是 nginx。 Amazon Linux AMI PHP 平台版本僅支援阿帕奇HTTPD。如果新增自訂 Apache 組態檔案,可以將 |
下表列出了 Python 平台中 AL2 023/ AL2 平台版本的遷移資訊。
Area | 變更和資訊 |
---|---|
WSGI伺服器 |
在 AL2 023/ AL2 平台上,古尼科恩是默認 或者,您可以使用 a |
應用程式路徑 |
在 AL2 023/ AL2 平台上,環境的 Amazon EC2 執行個體上應用程式目錄的路徑為。 |
代理伺服器 |
AL2023/ AL2 Python 平台版本支持 nginx 和阿帕奇代理服務器。HTTPD預設值是 nginx。 Amazon AMI Python 平台版本僅支持阿帕奇HTTPD。如果新增自訂 Apache 組態檔案,可以將 |
下表列出 Ruby 平台中 AL2 023/ AL2 平台版本的遷移資訊。
Area | 變更和資訊 |
---|---|
已安裝的 Ruby 版本 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 僅在每個平台版本上安裝與平台分支對應的單個 Ruby 版本的最新版本。例如,Ruby 2.6 平台分支中的每個平台版本只安裝 Ruby 2.6.x。在 Amazon Linux AMI 平台版本上,我們安裝了多個 Ruby 版本的最新版本,例如 2.4.x,2.5.x 和 2.6.x 版本。 如果您應用程式使用的 Ruby 版本無法對應您所使用的平台分支,我們建議切換至適用於您應用程式的正確 Ruby 版本平台分支。 |
應用程式伺服器 |
在 AL2 023/ AL2 平台上,Elastic Beanstalk 只會在所有 Ruby 平台版本上安裝 Puma 應用程式伺服器。您可以使用 在 Amazon Linux AMI 平台上,我們為每個 Ruby 版本支援兩種平台分支,一種是 Puma 應用程式伺服器,另一種是乘客應用程式伺服器。如果您的應用程式使用 Passenger,您可以設定您的 Ruby 環境來安裝並使用 Passenger。 如需詳細資訊和範例,請參閱 使用 Elastic Beanstalk Ruby 平台。 |