本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用自訂的 Amazon Machine Image (AMI)
建立 AWS Elastic Beanstalk 環境時,您可以指定要使用的 Amazon 機器映像 (AMI),而不是平台版本中包含的標準 Elastic Beanstalk AMI。如果您需要安裝標準 AMI 中未包含的許多軟體,則自訂 AMI 可在您環境中啟動執行個體時,縮短佈建的時間。
使用組態檔案最能快速一致地設定和自訂您的環境。不過,在建立和更新環境時,套用組態可能會需要很長的時間。如果您在組態檔中執行許多伺服器組態,可以透過自訂 AMI (其中包含您所需的軟體和設定),來縮短執行作業的時間。
自訂 AMI 也可讓您變更低層級元件 (例如,Linux 核心),這類元件難以實作或需要花費很長的時間來套用至組態檔案。若要建立自訂的 AMI,請在 Amazon EC2 中啟動 Elastic Beanstalk 平台的 AMI、根據您的需要來自訂軟體和設定,然後停止執行個體和儲存產生的 AMI。
建立自訂 AMI
識別基礎 Elastic Beanstalk AMI
-
在命令視窗中,執行如下所示的命令。若要取得更多資訊,請參閱《指AWS CLI 令參考》describe-platform-version中的。
指定您要使用自定義 AMI 的 AWS 區域,並將平台 ARN 和版本號替換為您的應用程序所依據的 Elastic Beanstalk 平台。
範例 – Mac 作業系統/Linux 作業系統
$
aws elasticbeanstalk describe-platform-version --region
[ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "us-east-2
\ --platform-arn "arn:aws:elasticbeanstalk:us-east-2
::platform/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux
/3.1.6
" \ --query PlatformDescription.CustomAmiListami-020ae06fdda6a0f66
" } ]範例 – Windows 作業系統
C:\> aws elasticbeanstalk describe-platform-version --region
[ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "us-east-2
--platform-arn"arn:aws:elasticbeanstalk:us-east-2
::platform/IIS 10.0 running on 64bit Windows Server 2019
/2.6.4
" --query PlatformDescription.CustomAmiListami-020ae06fdda6a0f66
" } ] -
請記錄結果中看起來像是
ami-020ae06fdda6a0f66
的ImageId
值。
值為與您的應用程式相關的平台版本、EC2 執行個體架構和 AWS 區域的存貨 Elastic Beanstalk AMI。如果您需要為多個平台、架構或 AWS 區域建立 AMI,請重複此程序以識別每個組合的正確基礎 AMI。
備註
-
請勿利用 Elastic Beanstalk 環境中已啟動的執行個體,來建立 AMI。Elastic Beanstalk 會在佈建時對執行個體進行變更,而這可能會在儲存的 AMI 中造成問題。如果從 Elastic Beanstalk 環境中的執行個體儲存映像,也會製作已經部署到固定映像部分之執行個體的應用程式版本。
-
我們建議您一律使用最新的平台版本。當您更新至新平台版本時,我們也建議您將自訂 AMI 重設為新平台版本的 AMI。如此可大幅減少因不相容的套件或程式庫版本所導致的部署失敗。
對於 Linux,您也可以利用 Elastic Beanstalk 未發佈的社群 AMI,來建立自訂的 AMI。您可以使用最新的 Amazon Linux
注意
以 Windows 伺服器為基礎的自訂 AMI 需要從 describe-platform-version
傳回的庫存 Elastic Beanstalk AMI,如先前步驟 1 所示。
雖然 Elastic Beanstalk 可使用非 Elastic Beanstalk 管理的 AMI,但因為 Elastic Beanstalk 安裝缺少元件所造成的佈建時間增加,會降低或消除一開始就建立自訂 AMI 時所預期帶來的效益。其他的 Linux 版本也許可以在進行一些故障排除後使用,但並未正式支援。如果您的應用程式需要特定的 Linux 發行版本,一個替代方法是建立 Docker 影像,然後在 Elastic Beanstalk 上的 Docker 平台或多容器 Docker 平台上執行此影像。
若要建立自訂的 AMI
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
選擇 Launch Instance (啟動執行個體)。
-
選擇 Community AMI (社群 AMI)。
-
如果您識別了Elastic Beanstalk AMI (使用
describe-platform-version
) 或 Amazon Linux AMI,請搜尋方塊中輸入其 AMI ID。然後按 Enter。您也可以搜尋清單,來尋找符合您需求的其他社群 AMI。
注意
我們建議您選擇使用 HVM 虛擬化的 AMI。這些 AMI 會在描述中顯示 Virtualization type: hvm (虛擬化類型:hvm)。
如需執行個體虛擬化類型的詳細資訊,請參閱 Amazon EC2 使用者指南中的 Linux AM I 虛擬化類型或 Amazon EC2 使用者指南中的 Windows AMI 虛擬化類型。
-
選擇 Select (選取) 來選擇 AMI。
-
選取執行個體類型,然後選擇 Next: Configure Instance Details (下一步:設定執行個體的詳細資訊)。
-
(若為 Linux 平台) 展開 Advanced Details (進階詳細資訊) 的區段,並將下列的文字內容貼入 User Data (使用者資料)欄位中。
#cloud-config repo_releasever:
repository version number
repo_upgrade: none儲存庫版本編號代表 AMI 名稱中的版本年份和月份。例如,採用 Amazon Linux 2015 年 3 月版的 AMI,會具有
2015.03
的儲存庫版本編號。對於 Elastic Beanstalk 映像,這符合您平台版本解決方案堆疊名稱中所顯示的日期 (根據 Amazon Linux AMI,先前為 Amazon Linux 2)。注意
此
repo_releasever
設定會設定 Amazon Linux lock-on-launch AMI 的功能。這會導致 AMI 在啟動時使用固定的特定儲存庫版本。Amazon Linux 2 不支援此功能 — 如果您的環境使用目前的 Amazon Linux 2 平台分支,則請勿指定。如果您只在 Amazon Linux AMI 平台分支上將自訂 AMI 搭配 Elastic Beanstalk 使用 (先前為 Amazon Linux 2),則需要此設定。此
repo_upgrade
設定會停用自動安裝安全性更新的功能。如果要將自訂 AMI 搭配 Elastic Beanstalk 使用,需執行這兩項動作。 -
繼續透過精靈來啟動 EC2 執行個體。出現提示時,請選擇您有權存取的金鑰對,以連接到執行個體來進行後續步驟。
-
使用 SSH 或 RDP 來連接到執行個體。
-
進行任何所需的自訂。
-
(Windows 平台) 執行 EC2Config 服務 Sysprep。有關 EC2Config 的詳細資訊,請參閱使用 EC2Config 服務來設定 Windows 執行個體。請確定將 Sysprep 設定為產生隨機密碼,此密碼可以從 AWS Management Console擷取。
-
在 Amazon EC2 主控台,停止 EC2 執行個體。然後在 Instance Actions (執行個體動作) 功能表中,選擇 Create Image (EBS AMI) (建立映像 (EBS AMI))。
-
為避免產生額外 AWS 費用,請終止 EC2 執行個體。
若要在 Elastic Beanstalk 環境使用您的自訂 AMI
開啟彈性魔豆控制台
,然後在區域清單中選取您的. AWS 區域 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇 Configuration (組態)。
-
在 Capacity (容量) 組態類別中,選擇 Edit (編輯)。
-
如需 AMI ID,請輸入您的自訂 AMI ID。
-
若要儲存變更,請選擇頁面底部的儲存變更。
當您使用自訂的 AMI 來建立新的環境時,您應該使用做為基礎來建立 AMI 時所使用的相同平台版本。如果您稍後將平台更新套用到使用自訂 AMI 的環境,Elastic Beanstalk 會嘗試在開機載入作業期間套用程式庫與組態更新。
清除自訂 AMI
當您完成自訂 AMI 且不需要再啟動 Elastic Beanstalk 環境,請考慮將其清除,以將儲存成本降到最低。清除自訂 AMI 涉及從 Amazon EC2 取消註冊,並刪除其他關聯的資源。如需詳細資訊,請參閱取消註冊您的 Linux AMI 或取消註冊您的 Windows AMI。