

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

# 從 Amazon Linux AMI (AL1) 遷移到 AL2 或 AL2023
<a name="using-features.migration-al.generic.from-al1"></a>

如果您的 Elastic Beanstalk 應用程式是以 Amazon Linux AMI 平台分支為基礎，請參閱本節了解如何將應用程式的環境遷移至 Amazon Linux 2 或 Amazon Linux 2023。以 [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/) 為基礎的上一代平台分支現在已淘汰。

我們強烈建議您遷移到 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](platforms-linux.md#platforms-linux.versions.al2023)

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

以 AL2023/AL2 為基礎的平台分支並不保證能與您現有的應用程式回溯相容。同樣需要注意的是，即使應用程式的程式碼成功部署到新平台版本，仍可能會因作業系統和執行時間差異而有不同的運作或執行方式。

雖然 Amazon Linux AMI 和 AL2023/AL2 具有相同的 Linux 核心，它們在以下方面仍有所不同：初始化系統、`libc` 版本、編譯器工具鏈及各種套件。如需詳細資訊，請參閱 [Amazon Linux 2 常見問答集](https://aws.amazon.com//amazon-linux-2/faqs/)。

Elastic Beanstalk 服務也已更新執行時間的平台專用版本、建置工具及其他依存項目。

因此，建議您慢慢地在開發環境中徹底測試應用程式，然後進行任何必要的調整。

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

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

**準備進行遷移測試**  
在您部署應用程式並開始測試之前，請檢閱查看本主題後文 [所有 Linux 平台的考量事項](#using-features.migration-al.generic) 中的資訊。另外，請參閱後文 [平台特定考量事項](#using-features.migration-al.specific) 章節中適用於您平台的資訊。記下此內容中適用或可能適用您的應用程式和組態設定的特定資訊。

**高階遷移步驟**

1. 建立以 AL2 或 AL2023 平台分支為基礎的新環境。我們建議您遷移至 AL2023 平台分支。

1. 將應用程式部署至目標 AL2023/AL2 環境。

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

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

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

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

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

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

下列參考資料可提供有關遷移規劃的其他資訊。
+ *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 User Guide* 中的 [What is Amazon Linux 2023?](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)
+ *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)

## 所有 Linux 平台的考量事項
<a name="using-features.migration-al.generic"></a>

下表說明了在規劃將應用程式遷移至 AL2023/AL2 時應注意的考量事項。無論使用何種特定程式設計語言或應用程式伺服器，這些考量事項皆適用於任何 Elastic Beanstalk Linux 平台。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  組態檔案  |  在 AL2023/AL2 平台上，您可以如往常使用[組態檔案](ebextensions.md)，且所有區段的運作方式都一樣。不過，特定設定的運作方式可能與舊版 Amazon Linux AMI 平台上的運作方式不同。例如： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) 建議使用平台勾點，以在環境執行個體上執行自訂程式碼。您仍可在 `.ebextensions` 組態檔案中使用命令和容器命令，但它們並不容易使用。例如，在 YAML 檔案內寫入命令指令碼可能很麻煩，且難以測試。 您仍須將 `.ebextensions` 組態檔案用於需要參考 AWS CloudFormation 資源的任何指令碼。  | 
|  平台勾點  |  AL2 平台將可執行的檔案新增到環境執行個體上的勾點目錄，提供了擴展環境平台的新方式。在舊版 Linux 平台中，您可能已使用自訂平台勾點。這些勾點不是專為受管平台設計且不受支援，但在某些情況下能以實用的方式運作。在 AL2023/AL2 平台版本中，自訂平台勾點無法運作。您應將所有勾點遷移至新的平台勾點。如需詳細資訊，請參閱 [平台勾點](platforms-linux-extend.hooks.md)。  | 
|  支援的代理伺服器  |  AL2023/AL2 平台版本支援與 Amazon Linux AMI 平台版本支援的每個平台相同的反向代理伺服器。全部 AL2023/AL2 平台版本均使用 nginx 作為預設反向代理伺服器，ECS 和 Docker 平台除外。Tomcat、Node.js、PHP 和 Python 平台也支援 Apache HTTPD 作為替代方案。所有平台都會以統一的方式啟用代理伺服器設定，如本節所述。但是，設定代理伺服器與 Amazon Linux AMI 上的伺服器略有不同。以下是所有平台的差異： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) 若要平台特定的代理組態變更的詳細資訊，請參閱[平台特定考量事項](#using-features.migration-al.specific)。如需 AL2023/AL2 平台上代理組態的資訊，請參閱 [反向代理組態](platforms-linux-extend.proxy.md)。  | 
|   代理組態變更   |  除了特定於每個平台的代理組態變更外，還有一致地套用至所有平台的代理組態變更。參考兩者以準確設定您的環境，這一點非常重要。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  執行個體設定檔  |  AL2023/AL2 平台需要執行個體設定檔才能進行設定。若無此描述檔，環境建立可能會暫時成功，但在建立完成後，當需要執行個體描述檔的動作開始失敗時，環境可能很快會出現錯誤。如需詳細資訊，請參閱[管理 Elastic Beanstalk 執行個體描述檔](iam-instanceprofile.md)。  | 
|  增強型運作狀態  |  AL2023/AL2 平台版本會預設啟用增強型運作狀態。如果您不使用 Elastic Beanstalk 主控台來建立環境，這就會是一項變更。無論使用的平台版本為何，主控台都會根據預設盡可能啟用增強型運作狀態。如需詳細資訊，請參閱[Elastic Beanstalk 中的增強型運作狀態報告和監控](health-enhanced.md)。  | 
|  自訂 AMI  |  如果環境使用[自訂 AMI](using-features.customenv.md)，請透過 Elastic Beanstalk AL2023/AL2 平台為新環境建立以 AL2023/AL2 為基礎的新 AMI。  | 
|  自訂平台  |  AL2023/AL2 平台版本的受管 AMI 不支援自訂平台。  | 

## 平台特定考量事項
<a name="using-features.migration-al.specific"></a>

本節討論特定 Elastic Beanstalk Linux 平台的特定遷移考量事項。

### Docker
<a name="using-features.migration-al.specific.docker"></a>

以 Amazon Linux AMI (AL1) 為基礎的 Docker 平台分支系列包括三個平台分支。我們會為每個平台分支提供不同的遷移路徑建議。


|  **AL1 平台分支**  |  **遷移至 AL2023/AL2 的路徑**  | 
| --- | --- | 
|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  由在 Amazon Linux AMI (AL1) 上執行的 Amazon ECS 管理的多容器 Docker  |   以 ECS 為基礎的 Docker AL2023/AL2 平台分支 *以 ECS 為基礎的 Docker AL2023/AL2* 平台分支為執行於*多容器 Docker AL1* 平台分支的環境提供了直接的遷移路徑。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) 如需詳細信息，了解如何將執行於*多容器 Docker Amazon Linux* 平台分支的應用程式遷移至*執行於 AL2023/AL2 的 Amazon ECS* 平台分支，請參閱 [將您的 Elastic Beanstalk 應用程式從 AL1 上的 ECS 受管多容器 Docker 遷移至 Amazon Linux 2023 上的 ECS](migrate-to-ec2-AL2-platform.md)。  | 
|  在 Amazon Linux AMI (AL1) 上執行的 Docker 執行 Amazon Linux AMI (AL1) 的預先設定的 Docker (Glassfish 5.0)  |   執行於 AL2023/AL2 平台分支的 Docker 我們建議您將在基於*預先設定的 Docker (Glassfish 5.0)* 或*執行於 Amazon Linux AMI (AL1) 的 Docker* 的環境中執行的應用程式遷移至基於*執行於 Amazon Linux 2 的 Docker* 或*執行於 AL2023 的 Docker* 平台分支的環境。  如果您的環境基於*預先設定的 Docker (Glassfish 5.0)*平台分支，請參閱 [將 GlassFish 應用程式部署到 Docker 平台：Amazon Linux 2023 的遷移路徑](create_deploy_dockerpreconfig.md#docker-glassfish-tutorial)。 下表列出了*執行於 AL2023/AL2 的 Docker* 平台分支的遷移資訊。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  儲存空間  |  Elastic Beanstalk 將 Docker 設定為使用[儲存體驅動程式](https://docs.docker.com/storage/storagedriver/)來儲存 Docker 影像和容器資料。在 Amazon Linux AMI，Elastic Beanstalk 使用 [裝置映射器儲存驅動程式](https://docs.docker.com/storage/storagedriver/device-mapper-driver/)。為了提高效能，Elastic Beanstalk 佈建了一個額外的 Amazon EBS 磁碟區。在 AL2023/AL2 Docker 平台版本上，Elastic Beanstalk 使用 [OverlayFS 儲存驅動程式](https://docs.docker.com/storage/storagedriver/overlayfs-driver/)，以達到更佳的效能，並且不再需要單獨的磁碟區。 使用 Amazon Linux AMI 時，如果您使用 `BlockDeviceMappings` 命名空間的 `aws:autoscaling:launchconfiguration` 選項將自訂儲存磁碟區新增至 Docker 環境，我們建議您同時新增 Elastic Beanstalk 佈建的 `/dev/xvdcz` Amazon EBS 磁碟區。Elastic Beanstalk 不再佈建此磁碟區，因此您應該將其從組態檔案中刪除。如需詳細資訊，請參閱[Amazon Linux AMI (Amazon Linux 2 之前的版本) 上的 Docker 組態](create_deploy_docker.container.console.md#docker-alami)。  | 
|  私有儲存庫身分驗證  |  當您提供 Docker 產生的身分驗證檔案以連線至私有儲存庫時，您不再需要將其轉換為 Amazon Linux AMI Docker 平台版本所需的舊格式。AL2023/AL2 Docker 平台版本支援新格式。如需詳細資訊，請參閱[使用映像儲存庫進行驗證](docker-configuration.remote-repo.md)。  | 
|  代理伺服器  |  AL2023/AL2 Docker 平台版本不支援不在代理伺服器後面執行的獨立容器。在 Amazon Linux AMI Docker 平台版本中，這曾經可以透過 `aws:elasticbeanstalk:environment:proxy` 命名空間中的 `ProxyServer` 選項的 `none` 值來實現。  | 

### Go
<a name="using-features.migration-al.specific.go"></a>

下表列出了 [Go 平台](go-environment.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  連接埠傳遞  |  在 AL2023/AL2 平台上，Elastic Beanstalk 不會透過 `PORT` 環境變數將連接埠值傳遞到應用程式程序。您可以自行設定 `PORT` 環境屬性，藉此模擬此程序的運作方式。不過，如果您有多個程序，並將 Elastic Beanstalk 傳遞增量連接埠值計算至程序 (5000、5100、5200 等)，則應修改您的實作。如需詳細資訊，請參閱 [反向代理組態](platforms-linux-extend.proxy.md)。  | 

### Amazon Corretto
<a name="using-features.migration-al.specific.corretto"></a>

下表列出 [Java SE 平台](java-se-platform.md)中 Corretto 平台分支的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  Corretto 相較於 OpenJDK  |  若要實作 Java 平台、Standard Edition (Java SE)、AL2023/AL2 平台分支使用 [Amazon Corretto](https://aws.amazon.com/corretto)，這是 Open Java Development Kit (OpenJDK) 的 AWS 發行版本。先前的 Elastic Beanstalk Java SE 平台分支會使用 Amazon Linux AMI 隨附的 OpenJDK 套件。  | 
|  建置工具  |  AL2023/AL2 平台有新版建置工具：`gradle`、`maven` 和 `ant`。  | 
|  JAR 檔案處理  |  在 AL2023/AL2 平台上，如果來源套件 (ZIP 檔案) 包含單一 JAR 檔案且不包含任何其他檔案，Elastic Beanstalk 不會再將 JAR 檔案重新命名為 `application.jar`。唯有在單獨提交 JAR 檔案本身 (而不是在 ZIP 檔案內) 時，才會進行重新命名。  | 
|  連接埠傳遞  |  在 AL2023/AL2 平台上，Elastic Beanstalk 不會透過 `PORT` 環境變數將連接埠值傳遞到應用程式程序。您可以自行設定 `PORT` 環境屬性，藉此模擬此程序的運作方式。不過，如果您有多個程序，並將 Elastic Beanstalk 傳遞增量連接埠值計算至程序 (5000、5100、5200 等)，則應修改您的實作。如需詳細資訊，請參閱 [反向代理組態](platforms-linux-extend.proxy.md)。  | 
|  Java 7  |  Elastic Beanstalk 不支援 AL2023/AL2 Java 7 平台分支。如果您有 Java 7 應用程式，請將其遷移至 Corretto 8 或 Corretto 11。  | 

### Tomcat
<a name="using-features.migration-al.specific.tomcat"></a>

下表列出了 [Tomcat 平台](java-tomcat-platform.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  **選項**  |  **遷移資訊**  | 
| --- | --- | 
|  組態選項  |  在 AL2023/AL2 平台版本上，Elastic Beanstalk 僅支援 `aws:elasticbeanstalk:environment:proxy` 命名空間中組態選項和選項值的子集。以下是每個選項的遷移資訊。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html) `aws:elasticbeanstalk:container:tomcat:jvmoptions` 命名空間中的 `XX:MaxPermSize` 選項不支援 AL2023/AL2 平台版本。修改永久生成大小的 JVM 設定僅適用於 Java 7 和更早版本，因此不適用於 AL2023/AL2 平台版本。  | 
|  應用程式路徑  |  在 AL2023/AL2 平台上，環境中 Amazon EC2 執行個體上應用程式目錄的路徑為 `/var/app/current`。在 Amazon Linux AMI 平台，路徑是 `/var/lib/tomcat8/webapps`。  | 
|  `GzipCompression`  |  在 AL2023/AL2 平台版本上不受支援。  | 
|  `ProxyServer`  |  AL2023/AL2 Tomcat 平台版本同時支援 nginx 和 Apache HTTPD 2.4 版代理伺服器。不過，不支援 Apache 版本 2.2。 在 Amazon Linux AMI 平台版本中，預設代理是 Apache 2.4。如果使用預設代理伺服器設定並新增自訂代理伺服器組態檔案，代理伺服器組態應該仍然可以使用 AL2023/AL2。但是，如果您使用了 `apache/2.2` 選項值，您現在必須將代理組態移轉到 Apache 2.4 版。  | 

### Node.js
<a name="using-features.migration-al.specific.nodejs"></a>

下表列出了 [Node.js 平台](create_deploy_nodejs.container.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  **選項**  |  **遷移資訊**  | 
| --- | --- | 
|  已安裝的 Node.js 版本  |  在 AL2023/AL2 平台上，Elastic Beanstalk 維護了多個 Node.js 平台分支，並且只在每個平台版本上，安裝與平台分支對應的最新版本 Node.js 主要版本。例如，Node.js 12 平台分支中的每個平台版本，預設只會安裝 Node.js 12.x.y。在 Amazon Linux AMI 平台版本上，我們在每個平台版本上安裝了多個 Node.js 版本的多個版本，並且只維護一個平台分支。 選擇與您應用程式所需的 Node.js 主要版本對應的 Node.js 平台分支。  | 
|  Apache HTTPD 日誌檔案名稱  |  在 AL2023/AL2 平台上，如果您使用 Apache HTTPD 代理伺服器，HTTPD 日誌檔案名稱會為 `access_log` 與 `error_log`，這與支援 Apache HTTPD 的所有其他平台一致。在 Amazon Linux AMI 平台版本中，這些日誌檔案分別命名為 `access.log` 和 `error.log`。 如需所有平台之日誌檔案名稱和位置的詳細資訊，請參閱 [Elastic Beanstalk 如何設定 CloudWatch Logs](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.loggroups)。  | 
|  組態選項  |  在 AL2023/AL2 平台上，Elastic Beanstalk 不支援 `aws:elasticbeanstalk:container:nodejs` 命名空間中的組態選項。部分選項擁有替代方案。以下是每個選項的遷移資訊。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al1.html)  | 
|  `NodeCommand`  |  在 `package.json` 檔案中使用 `Procfile` 或 `scripts` 關鍵字來指定啟動指令碼。  | 
|  `NodeVersion`  |  在 `package.json` 檔案中使用 `engines` 關鍵字來指定 Node.js 版本。請注意，您只能指定與您平台分支對應的 Node.js 版本。例如，如果您使用的是 Node.js 12 平台分支，則只能指定 12.x.y Node.js 版本。如需詳細資訊，請參閱[使用 package.json 檔案指定 Node.js 相依性](nodejs-platform-dependencies.md#nodejs-platform-packagejson)。  | 
|  `GzipCompression`  |  在 AL2023/AL2 平台版本上不受支援。  | 
|  `ProxyServer`  |  在 AL2023/AL2 Node.js 平台版本上，此選項會移至 `aws:elasticbeanstalk:environment:proxy` 命名空間。您可以在 `nginx` (預設值) 和 `apache` 之間進行選擇。 AL2023/AL2 Node.js 平台版本不支援不在代理伺服器後執行的獨立應用程式。在 Amazon Linux AMI Node.js 平台版本中，這曾經可以透過 `aws:elasticbeanstalk:container:nodejs` 命名空間中的 `ProxyServer` 選項的 `none` 值來實現。如果您的環境執行獨立應用程式，請更新您的程式碼以接聽代理伺服器 (nginx 或 Apache) 轉送流量的連接埠。 <pre>var port = process.env.PORT || 5000;<br /><br />app.listen(port, function() {<br />  console.log('Server running at http://127.0.0.1:%s', port);<br />});</pre>  | 

### PHP
<a name="using-features.migration-al.specific.php"></a>

下表列出了 [PHP 平台](create_deploy_PHP.container.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  PHP 檔案處理  |  在 AL2023/AL2 平台上，PHP 檔案係使用 PHP-FPM (CGI 程序管理器) 進行處理。在 Amazon Linux AMI 平台上，我們使用 mod\$1php (一種 Apache 模組)。  | 
|  代理伺服器  |  AL2023/AL2 PHP 平台版本同時支援 nginx 和 Apache HTTPD 代理伺服器。預設值是 nginx。 Amazon Linux AMI PHP 平台版本只支援 Apache HTTPD。如果新增自訂 Apache 組態檔案，可以將 `aws:elasticbeanstalk:environment:proxy` 命名空間中的 `ProxyServer` 選項設為 `apache`。  | 

### Python
<a name="using-features.migration-al.specific.python"></a>

下表列出了 [Python 平台](create-deploy-python-container.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  WSGI 伺服器  |  在 AL2023/AL2 平台上，[Gunicorn](https://gunicorn.org/) 是預設 WSGI 伺服器。根據預設，Gunicorn 會在連接埠 8000 上接聽。此連接埠可能與應用程式在 Amazon Linux AMI 平台上使用的不同。如果您正在設定 `[aws:elasticbeanstalk:container:python](command-options-specific.md#command-options-python)` 命名空間的 `WSGIPath` 選項，請用 Gunicorn 的語法替換該數值。如需詳細資訊，請參閱[Python 組態命名空間](create-deploy-python-container.md#python-namespaces)。 或者，您也可以使用 `Procfile` 來指定和設定 WSGI 伺服器。如需詳細資訊，請參閱[在 Elastic Beanstalk 上使用 Procfile 設定 WSGI 伺服器](python-configuration-procfile.md)。  | 
|  應用程式路徑  |  在 AL2023/AL2 平台上，環境中 Amazon EC2 執行個體上應用程式目錄的路徑為 `/var/app/current`。在 Amazon Linux AMI 平台，路徑是 `/opt/python/current/app`。  | 
|  代理伺服器  |  AL2023/AL2 Python 平台版本同時支援 nginx 和 Apache HTTPD 代理伺服器。預設值是 nginx。 Amazon Linux AMI Python 平台版本只支援 Apache HTTPD。如果新增自訂 Apache 組態檔案，可以將 `aws:elasticbeanstalk:environment:proxy` 命名空間中的 `ProxyServer` 選項設為 `apache`。  | 

### Ruby
<a name="using-features.migration-al.specific.ruby"></a>

下表列出了 [Ruby 平台](create_deploy_Ruby.container.md)中 AL2023/AL2 平台版本的遷移資訊。


|  **Area**  |  **變更和資訊**  | 
| --- | --- | 
|  已安裝的 Ruby 版本  |  在 AL2023/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 版本平台分支。  | 
|  應用程式伺服器  |  在 AL2023/AL2 平台上，Elastic Beanstalk 只會在所有 Ruby 平台版本上安裝 Puma 應用程式伺服器。您可以使用 `Procfile` 來啟動不同的應用程式伺服器，並使用 `Gemfile` 來進行安裝。 在 Amazon Linux AMI 平台上，我們支援每個 Ruby 版本兩種平台分支 — 一種支援 Puma 應用程式伺服器，另一種支援 Passenger 應用程式伺服器。如果您的應用程式使用 Passenger，您可以設定您的 Ruby 環境來安裝並使用 Passenger。 如需詳細資訊和範例，請參閱 [使用 Elastic Beanstalk Ruby 平台](create_deploy_Ruby.container.md)。  | 