本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將應用程式部署至 Elastic Beanstalk 環境
您可以使用 AWS Elastic Beanstalk 主控台來上傳已更新的原始碼套件,並將其部署至您的 Elastic Beanstalk 環境,或重新部署之前上傳的版本。
各個部署都能以部署 ID 識別。部署 ID 起始為 1
,每次進行部署和變更執行個體組態時,累加 1。若啟用增強型運作狀態報告,Elastic Beanstalk 會在報告執行個體運作狀態時,在運作狀態主控台和 EB CLI 顯示部署 ID。部署 ID 可協助您於滾動更新失敗時,判斷環境的狀態。
Elastic Beanstalk 提供數個部署政策和設定。如需設定政策和其他設定的詳細資料,請參閱 部署政策和設定。下表列出支援這些項目的政策和環境類型。
部署政策 | 負載平衡環境 | 單一執行個體環境 | 舊式 Windows Server 環境† |
---|---|---|---|
一次全部 |
|
|
|
滾動 |
|
|
|
以額外批次進行滾動 |
|
|
|
固定 |
|
|
|
流量分割 |
|
|
|
† 在此表格中,「舊式 Windows Server 環境」是一種使用 IIS 8.5 以前版本的 Windows Server 平台組態為基礎的環境。
警告
部署或更新期間,部分原則會取代所有執行個體。這會造成所有的累計 Amazon EC2 爆量餘額遺失。這發生的情況如下:
-
執行個體更換啟用的受管平台更新
-
不可變更新
-
不可變更新或流量分割啟用的部署
選擇部署政策
為您的應用程式選擇正確的部署政策是數個考量事項的取捨過程,並取決於您的特定需求。部署政策和設定 頁面包含每個政策的詳細資訊,以及其中一些政策運作方式的詳細說明。
以下清單提供不同部署政策的摘要資訊,並新增相關的考量事項。
-
All at once (一次全部) - 最快速的部署方法。如果您可以接受短暫的服務中斷,且快速部署對您來說相當重要,便適合使用此部署政策。使用此方法,Elastic Beanstalk 會將新的應用程式版本部署到每個執行個體。然後,Web 代理或應用程式伺服器可能需要重新啟動。因此,您的應用程式可能會在短時間內無法供使用者使用 (或是可用性降低)。
-
Rolling (滾動) - 避免停機時間,並藉由拉長部署時間,將降低可用性的影響降至最低。如果您無法接受任何期間的完全服務中斷,便適合使用此部署政策。使用此方法,您的應用程式會一次部署一個批次的執行個體到您的環境。在整個部署期間您可以保留大部分的頻寬。
-
Rolling with additional batch (以額外批次進行滾動) - 相較於「Rolling」(滾動) 方法,將部署時間拉得更長,避免降低任何可用性。如果您必須在整個部署期間維持相同的頻寬,便適合使用此部署政策。使用此方法,Elastic Beanstalk 會啟動額外的執行個體批次,然後執行滾動部署。啟動額外的批次需要時間,並會確保在整個部署過程中保留相同的頻寬。
-
Immutable (不可變) - 較慢的部署方法,可確保您的新應用程式版本一律會部署到新的執行個體,而非更新現有的執行個體。在部署失敗時,其還具有快速且可安全轉返的額外優點。使用此方法,Elastic Beanstalk 會執行不可變的更新來部署您的應用程式。在不可變的更新作業中,您的環境會啟動第二個 Auto Scaling 群組,新舊版本此時同時為流量提供服務,直到新的執行個體通過運作狀態檢查。
-
Traffic splitting (流量分割) - Canary 測試部署方法。若您希望使用一部分的傳入流量測試您新應用程式版本的運作狀態,同時讓舊的應用程式版本繼續處理其餘流量,便適合使用此部署政策。
下表比較部署方法屬性。
方法 | 部署失敗的影響 | 部署時間 | 零停機 | DNS 未變更 | 轉返程序 | 程式碼部署至 |
---|---|---|---|---|---|---|
一次全部 | 停機 | |
|
手動重新部署 | 現有執行個體 | |
滾動 | 單一批次停止服務;失敗前即成功的任何批次,會執行新的應用程式版本 | † | |
|
手動重新部署 | 現有執行個體 |
以額外批次進行滾動 | 若第一個批次即失敗,則影響極小;否則與 Rolling (滾動) 的程度相近 | † | |
|
手動重新部署 | 新執行個體和現有執行個體 |
固定 | 極小 | |
|
終止新的執行個體 | 新執行個體 | |
流量分割 | 暫時受到影響的並路由至新版本的用戶端流量百分比 | †† | |
|
重新路由流量並終止新執行個體 | 新執行個體 |
藍/綠 | 極小 | |
|
交換 URL | 新執行個體 |
† 依批次大小而異。
†† 會根據評估時間選項設定而異。
部署新的應用程式版本
您可以從環境的儀表板執行部署。
若要將新的應用程式版本部署至 Elastic Beanstalk 環境
開啟 Elastic Beanstalk 主控台
,然後在 Regions (區域) 清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
-
選擇 Upload and deploy (上傳並部署)。
-
使用畫面顯示表單來上傳應用程式的原始碼套件。
-
選擇 Deploy (部署)。
重新部署舊版本
您亦可自應用程式版本頁面,將之前已上傳的應用程式舊版本部署至任何環境。
欲將現有應用程式版本部署至現有環境
開啟 Elastic Beanstalk 主控台
,然後在 Regions (區域) 清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇 Applications (應用程式),然後在清單上選取應用程式名稱。
注意
如果您有許多應用程式,請使用搜尋列來篩選應用程式清單。
在導覽窗格中,找到應用程式名稱並選擇 Application versions (應用程式版本)。
-
選取要部署的 application version (應用程式版本)。
-
選擇 Actions (動作),然後選擇 Deploy (部署)。
-
選取環境,然後選擇 Deploy (部署)。
其他部署應用程式的方式
若您經常部署,請考慮使用 Elastic Beanstalk 命令列界面 (EB CLI) 來管理您的環境。EB CLI 會在您的來源碼旁建立儲存庫。其也可以建立原始碼套件,將其上傳至 Elastic Beanstalk,並使用單一命令進行部署。
仰賴資源組態變更的部署,或仰賴無法與舊版本一同執行的新版本之部署,對此您可以啟動搭配新版本的新環境,並執行藍/綠部署的 CNAME 交換。