

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

# 從 Amazon Linux 2 遷移到 Amazon Linux 2023
<a name="using-features.migration-al.generic.from-al2"></a>

本主題的內容用於指導您將應用程式從 Amazon Linux 2 平台分支遷移到 Amazon Linux 2023 平台分支。

## 差異和相容性
<a name="using-features.migration-al.generic.from-al2.differences"></a>

**在 Elastic Beanstalk AL2 與 AL2023 平台之間**  


Elastic Beanstalk Amazon Linux 2 和 Amazon Linux 2023 平台之間具有高度相容性。雖然有部分差異需要注意：
+ **執行個體中繼資料服務版本 1 (IMDSv1)** – AL2023 平台上的 [DisableIMDSv1](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 選項設定預設為 `true`。AL2 平台上的預設值為 `false`。
+ **pkg-repo 執行個體工具** — [pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo) 工具不適用於在 AL2023 平台上執行的環境。不過，您仍可手動將套件和作業系統更新套用至 AL2023 執行個體。如需詳細資訊，請參閱《*Amazon Linux 2023 使用者指南*》中的[管理套件和作業系統更新](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)。
+ **Apache HTTPd 組態** — AL2023 平台的 Apache `httpd.conf` 檔案具有部分與 AL2 不同的組態設定：
  + 在預設情況下，拒絕存取伺服器的整個檔案系統。Apache 網站[安全性提示](https://httpd.apache.org/docs/2.4/misc/security_tips.html)頁面上的*依預設保護伺服器檔案*，提供了對此類設定的說明。
  + 拒絕在所有目錄中設定 `.htaccess`的存取權，特別啟用的目錄除外。Apache 網站[安全性提示](https://httpd.apache.org/docs/2.4/misc/security_tips.html)頁面上的*保護系統設定*，提供了對此設定的說明。[Apache HTTP 伺服器教學課程：.htaccess 檔案](https://httpd.apache.org/docs/2.4/howto/htaccess.html)頁面指出，這項設定可能有助於改善效能。
  + 拒絕存取具有名稱模式 `.ht*` 的檔案。此設定可防止 Web 用戶端檢視 `.htaccess` 和 `.htpasswd` 檔案。

  您可以針對您的環境變更上述任何組態設定。如需詳細資訊，請參閱[設定 Apache HTTPD](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd)。
+ **多行環境變數支援** – AL2023 平台支援系統化服務組態中環境變數和秘密的多行值。Amazon Linux 2 平台不支援多行環境變數值。此增強功能可讓您在 AL2023 平台上使用多行秘密和組態值。如需使用環境變數和秘密的詳細資訊，請參閱 [Amazon Linux 2 環境變數中的多行值](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline)。
+ **CloudWatch 自訂日誌轉送** – 已取代的 CloudWatch Logs 代理程式 (`awslogs` 套件） 不適用於 AL2023 平台。如果您有安裝和使用已棄用`awslogs`代理程式的自訂日誌轉送組態，則必須更新您的組態檔案，以便在從 Amazon Linux 2 遷移至 AL2023 時使用統一的 CloudWatch 代理程式。如需詳細資訊，請參閱[自訂日誌檔串流](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom)。

**平台特定差異**

除了基本作業系統差異之外，Amazon Linux 2 和 AL2023 執行期平台之間也有平台特定的差異：
+ **.NET 平台分支** – Amazon Linux 2 和 AL2023 之間的 .NET 平台分支策略不同。在 Amazon Linux 2 上，.NET Core 平台會在單一平台分支中維護 .NET 主要版本的輪換時段。在 AL2023 上，每個平台分支會固定到特定的 .NET 主要版本 （例如 .NET 9、.NET 10)。

  如果您部署與架構相關的應用程式 （依賴平台安裝的 .NET 執行期的應用程式），您必須選取符合您應用程式目標 .NET 版本的平台分支。如果您部署獨立應用程式 （綁定自己的 .NET 執行期的應用程式），無論應用程式的 .NET 版本為何，您都可以使用任何 AL2023 .NET 平台分支，因為您的應用程式不依賴於平台安裝的執行期。如需詳細資訊，請參閱[Linux Elastic Beanstalk 平台上 .NET Core 的綁定應用程式](dotnet-linux-platform-bundle-app.md)。
+ **Node.js 版本選擇** – Amazon Linux 2 上的 Node.js 平台支援在您的應用程式`package.json`檔案中指定 Node.js 版本。AL2023 上的 Node.js 平台不支援此功能。您必須使用平台分支提供的預設 Node.js 版本。如需 Node.js 版本管理的詳細資訊，請參閱[在 Elastic Beanstalk 上設定應用程式的相依性](nodejs-platform-dependencies.md)。
+ **Ruby Puma 伺服器版本** – Amazon Linux 2 上的 Ruby 平台會忽略應用程式`Gemfile.lock`檔案中指定的 Puma 版本，並使用平台預設的 Puma 版本。AL2023 上的 Ruby 平台會遵守 中指定的 Puma 版本，`Gemfile.lock`如果有的話。如果未指定版本，平台會安裝平台預設的 Puma 版本。
+ **PHP 套件可用性** – Amazon Linux 2 PHP 平台上提供的某些套件不適用於 AL2023 PHP 平台：
  + *MySQL 用戶端套件* – `mysql`和`mysql-devel`命令列用戶端套件未安裝在 AL2023 PHP 平台上。如果您的應用程式需要 MySQL 資料庫連線，請使用 PHP `mysqli`或 `pdo_mysql`擴充功能，這兩個平台皆可使用。
  + *Compass 和 Ruby 工具* – Compass CSS 架構支援的 `ruby-devel`和 `rubygems`套件不會安裝在 AL2023 PHP 平台上。Compass 已棄用。請考慮使用現代 CSS 預先處理工具做為替代方案。
+ **Go 版本控制工具** – Bazaar 版本控制系統 (`bzr`) 不適用於 AL2023 Go 平台。Bazaar 已棄用，不包含在 AL2023 套件儲存庫中。請改用 Git、Mercurial 或 Subversion 進行版本控制，所有這些都可以在 AL2023 Go 平台上使用。

**在 Amazon Linux 作業系統之間**  
如需有關 Amazon Linux 2 與 Amazon Linux 2023 平台之間差異的詳細資訊，請參閱 *Amazon Linux 2023 User Guide* 中的 [Comparing Amazon Linux 2 and Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)。

如需有關 Amazon Linux 2023 的詳細資訊，請參閱 *Amazon Linux 2023 User Guide* 中的 [What is Amazon Linux 2023?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)。

## 一般遷移程序
<a name="using-features.migration-al.generic.from-al2.process"></a>

如果準備用於生產環境，Elastic Beanstalk 需要進行藍/綠部署才能執行升級。使用藍/綠部署程序進行遷移時，我們建議遵循以下一般最佳實務步驟。

**準備進行遷移測試**  
在部署應用程式並開始測試之前，請先檢閱上一節 [差異和相容性](#using-features.migration-al.generic.from-al2.differences) 中的資訊。另請參閱 *Amazon Linux 2023 User Guide* 中的 [Comparing Amazon Linux 2 and Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)。記下此內容中適用或可能適用您的應用程式和組態設定的特定資訊。

**高階遷移步驟**

1. 建立以 AL2023 平台分支為基礎的新環境。

1. 將應用程式部署至目標 AL 2023 環境。

   您現有的生產環境將保持作用中狀態且不受影響，同時您可以測試和調整新環境，進行反覆。

1. 在新環境中全面測試應用程式。

1. 目標 AL2023 環境準備好用於生產後，交換兩個環境的 CNAME 以將流量重新導向至新 AL2023 環境。

**更詳細的遷移步驟和最佳實務**  
如需更詳細的藍/綠部署程序，請參閱 [透過 Elastic Beanstalk 進行藍/綠部署](using-features.CNAMESwap.md)。

如需更具體的指南和詳細的最佳實務步驟，請參閱[藍/綠方法](using-features.platform.upgrade.md#using-features.platform.upgrade.bluegreen)。

## 更多有助於規劃遷移的參考資料
<a name="using-features.migration-al.generic.from-al2.references"></a>

下列參考資料可提供有關遷移規劃的其他資訊。
+ *AWS Elastic Beanstalk 平台*中[ Elastic Beanstalk 支援的平台](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html)
+ [淘汰的平台分支歷史記錄](platforms-schedule.md#platforms-support-policy.retired)
+ [Elastic Beanstalk Linux 平台](platforms-linux.md)
+ [平台淘汰常見問答集](using-features.migration-al.FAQ.md)