本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Elastic Beanstalk 環境的容量組態
本主題說明為 Elastic Beanstalk 環境設定 Auto Scaling 容量的不同方法。您可以使用 Elastic Beanstalk 主控台、EB CLI AWS CLI、 或 命名空間選項。
重要
EnableSpot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。這樣做需要必要的許可來管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策,而不是我們的受管政策,當您為環境啟用 Spot 執行個體時,環境建立或更新可能會失敗。如需詳細資訊和其他考量事項,請參閱 啟動 Elastic Beanstalk 環境的範本。
使用主控台執行組態
您可以在 Elastic Beanstalk 主控台的環境組態頁面上編輯容量,以設定 Auto Scaling 群組的容量管理。
在 Elastic Beanstalk 主控台中設定 Auto Scaling 群組容量
開啟 Elastic Beanstalk 主控台
,然後在區域清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇 Configuration (組態)。
-
在 Capacity (容量) 組態類別中,選擇 Edit (編輯)。
-
在 Auto Scaling group (Auto Scaling 群組) 區段,設定下列設定。
-
Environment type (環境類型) ‒ 選取 Load balanced (負載平衡)。
-
Min instances (最少執行個體) ‒ 該群組應隨時包含的 EC2 執行個體數量下限。群組以計數下限開始,當滿足擴展觸發條件時,將新增執行個體。
-
Max instances (最大執行個體) ‒ 該群組應隨時包含的 EC2 執行個體數量上限。
注意
若您採用滾動更新,請確保執行個體計數上限高於滾動更新的 Minimum instances in service (服務中執行個體數量下限) 設定。
-
機群組成 – 預設為隨需執行個體。選取 Combined purchase options and instances (組合的購買選項和執行個體) 以啟用 Spot Instance (Spot 執行個體) 請求。
重要
EnableSpot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。這樣做需要必要的許可來管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策,而不是我們的受管政策,當您為環境啟用 Spot 執行個體時,環境建立或更新可能會失敗。如需詳細資訊和其他考量事項,請參閱啟動 Elastic Beanstalk 環境的範本。如果您選取啟用 Spot 執行個體 (Spot 執行個體) 請求,便會啟用下列選項:
-
Spot 配置策略 - 根據可用容量、價格和執行個體類型的選擇,決定在環境中管理和佈建 Spot 執行個體的方法。從容量最佳化 (預設)、價格容量最佳化、容量最佳化優先順序或最低價格中選取。如需每個配置策略的描述和詳細資訊,請參閱 Spot 執行個體配置策略。
-
最高 Spot 價格 – 如需 Spot 執行個體最高價格選項的建議,請參閱《Amazon EC2 使用者指南》中的 Spot 執行個體定價歷史記錄。
-
On-Demand base (隨需執行個體基本數量) – 隨著環境擴展,在考慮使用 Spot 執行個體前,Auto Scaling 群組要佈建的最小隨需執行個體數量。
-
On-Demand above base (超過基本數量的隨需執行個體) – 隨需執行個體百分比 (Auto Scaling 群組超出隨需執行個體基本數量所怖建的一部分額外容量)。
注意
On-Demand base (隨需執行個體基本數量) 和 On-Demand above base (超過基本數量的隨需執行個體) 選項與前面列出的執行個體 Min (下限) 和 Max (上限) 選項關聯。如需有關這些選項和範例的詳細資訊,請參閱 支援 Elastic Beanstalk 環境的 Spot 執行個體。
-
容量重新平衡 – 此選項只有在 Auto Scaling 群組中至少有一個 Spot 執行個體時才相關。啟用此功能時,EC2 會自動嘗試在中斷前取代 Auto Scaling 群組中的 Spot 執行個體,將對應用程式的 Spot 執行個體中斷降至最低。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的容量重新平衡
-
-
架構 – EC2 執行個體的處理器架構。處理器架構會決定下一個欄位中可用的 EC2 執行個體類型。
-
執行個體類型 – 啟動以執行應用程式的 Amazon EC2 執行個體類型。如需詳細資訊,請參閱 執行個體類型。
-
AMI ID ‒ Elastic Beanstalk 用來在您環境中啟動 Amazon EC2 執行個體的機器映像。如需詳細資訊,請參閱 AMI ID。
-
Availability Zones (可用區域) ‒ 選擇您環境執行個體可散佈到的可用區域數。根據預設,Auto Scaling 群組會在所有可用區域中平均啟動執行個體。欲將您的執行個體集中於較少區域,請選擇欲使用的區域數量。以生產環境而言,請使用至少兩個區域,以確保您的應用程式在其中一個可用區域服務中斷時仍能使用。
-
Placement (置放) (選用) ‒ 選擇欲使用的可用區域。如果若您的執行個體需要連線至特定區域的資源,或者您已購買區域特定的預留執行個體,請使用此設定。若您於自訂 VPC 啟動環境,您無法設定此選項。於自訂 VPC 中,您可以針對指派給您環境的子網路,選擇其可用區域。
-
Scaling cooldown (擴展冷卻) ‒ 擴展之後,在繼續評估觸發前等待執行個體啟動或終止的時間 (以秒計)。如需詳細資訊,請參閱擴展冷卻。
-
-
若要儲存變更,請選擇頁面底部的儲存變更。
使用命名空間選項的組態
Elastic Beanstalk 在以下兩個命名空間中提供 Auto Scaling 設定的組態選項:aws:autoscaling:asg 和 aws:ec2:instances。
aws:autoscaling:asg 命名空間
aws:autoscaling:asg 命名空間提供了可用於整體擴展和可用性的選項。
下列組態檔案範例會設定 Auto Scaling 群組,以使用二到四個執行個體、特定可用區域,以及 12 分鐘 (720 秒) 的冷卻時間。它啟用 Spot 執行個體的容量重新平衡。EnableCapacityRebalancing
此選項只有在aws:ec2:instances命名空間true
中設定為 EnableSpot
時才會生效,如以下範例所示。
option_settings: aws:autoscaling:asg: Availability Zones: Any Cooldown: '720' Custom Availability Zones: 'us-west-2a,us-west-2b' MaxSize: '4' MinSize: '2' EnableCapacityRebalancing: true
aws:ec2:instances 命名空間
注意
當您更新環境資訊並從 InstanceTypes
選項中移除一或多個執行個體類型時,Elastic Beanstalk 會終止在已移除的執行個體類型上執行的任何 Amazon EC2 執行個體。然後,您環境的 Auto Scaling 群組會視需要啟動新執行個體,以使用目前指定的執行個體類型來完成所需的容量。
aws:ec2:instances 命名空間提供了與環境的執行個體相關的選項,包括 Spot 執行個體管理。這與 aws:autoscaling:launchconfiguration 及 aws:autoscaling:asg 相輔相成。
以下組態檔案範例會設定 Auto Scaling 群組,為您的環境啟用 Spot 執行個體請求。它指定三種可用的執行個體類型。至少將一個隨需執行個體用於基準容量,以及將認可的 33% 隨需執行個體用於額外容量。
組態會將 Spot 配置策略設定為 capacity-optimized-prioritized
。此特定配置策略會根據 InstanceTypes
選項中指定的執行個體類型的順序,排定執行個體從集區啟動的優先順序。如果SpotAllocationStrategy
未指定 ,則預設為 capacity-optimized
。
option_settings: aws:ec2:instances: EnableSpot: true InstanceTypes: 't2.micro,t3.micro,t3.small' SpotAllocationStrategy: capacity-optimized-prioritized SpotFleetOnDemandBase: '1' SpotFleetOnDemandAboveBasePercentage: '33'
如要選擇 Spot 執行個體類型,請使用 Spot Instance Advisor
重要
EnableSpot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或從啟動組態更新現有環境以啟動範本。這樣做需要必要的許可來管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策,而不是我們的受管政策,當您為環境啟用 Spot 執行個體時,環境建立或更新可能會失敗。如需詳細資訊和其他考量事項,請參閱 啟動 Elastic Beanstalk 環境的範本。
使用 的組態 AWS CLI
本節提供如何使用 AWS CLI create-environment 命令,透過這些章節中所述的 Auto Scaling 和 Capacity 選項來設定環境的範例。您會注意到 aws:autoscaling:asg和 的命名空間設定aws:ec2:instances,如先前命名空間組態選項一節所述,也會使用此範例進行設定。
Command AWS Line Interface 提供建立和設定 Elastic Beanstalk 環境的命令。使用 --option-settings
選項,您可以傳入 Elastic Beanstalk 支援的命名空間選項。這表示先前描述的命名空間組態選項可以傳入適用的 AWS CLI 命令,以設定 Elastic Beanstalk 環境。
注意
您也可以搭配 使用 update-environment 命令--option-settings
來新增或更新命名空間選項。如果您需要從環境中移除任何命名空間選項,請使用 update-environment命令搭配 --options-to-remove
。
下列範例會建立新的環境。如需傳入選項的更多內容,請參閱上一個主題命名空間組態選項。
在aws:autoscaling:launchconfiguration命名空間IamInstanceProfile
中列出的 fist 選項是 Elastic Beanstalk 執行個體描述檔。當您建立新的環境時,這是必要的。
範例 — 具有 Auto Scaling 選項的 create-environment (內嵌命名空間選項)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v4.3.0 running Python 3.12"
\ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
Namespace=aws:autoscaling:asg,OptionName=Availability Zones,Value=Any
\ Namespace=aws:autoscaling:asg,OptionName=Cooldown,Value=720
\ Namespace=aws:autoscaling:asg,OptionName=Custom Availability Zones,Value=us-west-2a,us-west-2b
\ Namespace=aws:autoscaling:asg,OptionName=MaxSize,Value=4
\ Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=2
\ Namespace=aws:autoscaling:asg,OptionName=EnableCapacityRebalancing,Value=true
\ Namespace=aws:ec2:instances,OptionName=EnableSpot,Value=true
\ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t2.micro,t3.micro,t3.small
\ Namespace=aws:ec2:instances,OptionName=SpotAllocationStrategy,Value=capacity-optimized-prioritized
\ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandBase,Value=1
\ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandAboveBasePercentage,Value=33
重要
EnableSpot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或從啟動組態更新現有環境以啟動範本。這樣做需要必要的許可來管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策,而不是我們的受管政策,當您為環境啟用 Spot 執行個體時,環境建立或更新可能會失敗。如需詳細資訊和其他考量事項,請參閱 啟動 Elastic Beanstalk 環境的範本。
或者,您也可以使用 options.json
檔案來指定命名空間選項,而非透過內嵌方式一併包含於其中。
範例 —使用 Auto Scaling 選項建立環境 (options.json
檔案中的命名空間選項)
aws elasticbeanstalk create-environment \ --region
us-east-1
\ --application-namemy-app
\ --environment-namemy-env
\ --solution-stack-name"64bit Amazon Linux 2023 v4.3.0 running Python 3.12"
--option-settingsfile://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Availability Zones", "Value": "Any" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Cooldown", "Value": "720" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Custom Availability Zones", "Value": "us-west-2a,us-west-2b" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "4" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "2" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "EnableCapacityRebalancing", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "EnableSpot", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t2.micro,t3.micro,t3.small" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotAllocationStrategy", "Value": "capacity-optimized-prioritized" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandBase", "Value": "1" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandAboveBasePercentage", "Value": "33" } ]
使用 EB CLI 的組態
使用 eb create 命令建立環境時,您可以指定與您環境 Auto Scaling 群組相關的幾個選項。這些是可協助您控制環境的容量的其中一些選項。
--single
-
建立有一個 Amazon EC2 執行個體且沒有負載平衡器的環境。如果您未使用此選項,系統會將負載平衡器新增至建立的環境環境。
--enable-spot
-
為您的環境啟用 Spot 執行個體請求。
重要
enable-spot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。這樣做需要必要的許可來管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策,而不是我們的受管政策,當您為環境啟用 Spot 執行個體時,環境建立或更新可能會失敗。如需詳細資訊和其他考量事項,請參閱 啟動 Elastic Beanstalk 環境的範本。eb create 命令的下列選項僅可搭配
--enable-spot
使用。--instance-types
-
列出您要讓環境使用的 Amazon EC2 執行個體類型。
--spot-max-price
-
您願意為 Spot 執行個體支付的每單位小時最高價格 (以美元為單位)。如需 Spot 執行個體最高價格選項的建議,請參閱《Amazon EC2 使用者指南》中的 Spot 執行個體定價歷史記錄。
--on-demand-base-capacity
-
隨著環境擴展,Auto Scaling 群組在考量 Spot 執行個體前佈建的最小隨需執行個體數量。
--on-demand-above-base-capacity
-
隨需執行個體百分比 (Auto Scaling 群組超出
--on-demand-base-capacity
選項所指定之執行個體數量所怖建的一部分額外容量)。
以下範例會建立環境並將 Auto Scaling 群組設為針對新環境啟用 Spot 執行個體請求。以這個例子來說,有三個執行個體類型可使用。
$
eb create --enable-spot --instance-types "t2.micro,t3.micro,t3.small"
重要
還有另一個名稱類似的選項 --instance-type
(沒有“s”),EB CLI 僅在處理隨需執行個體時才會區分這類選項名稱。請勿將 --instance-type
(沒有 "s") 與 --enable-spot
選項搭配使用。如果搭配使用,EB CLI 會加以忽略。反之,請將 --instance-types
(有 "s") 與 --enable-spot
選項搭配使用。