本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Spot 執行個體支援
若要利用 Amazon EC2 Spot 執行個體,您可以為您的環境啟用 Spot 選項。您環境的 Auto Scaling 群組接著會結合 Amazon EC2購買選項,並維護隨需執行個體和 Spot 執行個體的混合。
注意
EnableSpot
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。如需詳細資訊,請參閱 啟動範本。
本主題說明為環境啟用 Spot 執行個體請求的下列方法:
-
Elastic Beanstalk 主控台 – 如需詳細資訊,請參閱 使用 Elastic Beanstalk 主控台設定 Auto Scaling 群組 中的機群組成。
-
EB CLI – 如需詳細資訊,請參閱使用 EB 的 Auto Scaling 群組組態 CLI。
-
aws:ec2:instances
命名空間組態選項 – 如需詳細資訊,請參閱 命名空間組態選項。
重要
Spot 執行個體的需求可能隨時有很大差異,Spot 執行個體的可用性也會因未使用的 Amazon EC2執行個體可用數量而有很大差異。Spot 執行個體隨時都有可能中斷。
為了協助將這些中斷對應用程式的影響降至最低,您可以啟用 Amazon EC2 Auto Scaling 隨附的容量重新平衡選項。啟用此功能後, EC2 會自動嘗試在 Auto Scaling 群組中取代 Spot 執行個體,然後再中斷。使用 Elastic Beanstalk 主控台設定 Auto Scaling 群組來啟用此功能。您也可以在 aws:autoscaling:asg 命名空間中將 Elastic Beanstalk EnableCapacityRebalancing
組態選項設定為 true
。
如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的容量重新平衡和》Amazon EC2使用者指南》中的 Spot 執行個體中斷。
Elastic Beanstalk 提供支援 Spot 功能的多個組態選項。下列各節將探討設定 Auto Scaling 群組的組態選項。
在 aws:ec2:instances 命名空間,其中兩個選項應特別注意:
-
SpotFleetOnDemandBase
-
SpotFleetOnDemandAboveBasePercentage
這兩個選項與 aws:autoscaling:asg 命名空間中的 MinSize
選項相互關聯:
-
只有
MinSize
會決定您環境的初始容量,亦即您要執行的最少執行個體數量。 -
SpotFleetOnDemandBase
不會影響初始容量。啟用 Spot 時,此選項僅會決定在考慮使用 Spot 執行個體前,要佈建的隨需執行個體數量。 -
當
SpotFleetOnDemandBase
小於MinSize
時考慮。你仍會獲得MinSize
個執行個體做為初始容量。其中至少SpotFleetOnDemandBase
個必須是隨需執行個體。 -
當
SpotFleetOnDemandBase
大於MinSize
時考慮。隨著環境擴展,這可保證您至少能取得相當於兩個值之差的額外執行個體數量。亦即保證在達到SpotFleetOnDemandBase
個的數量要求前,您至少能取得(SpotFleetOnDemandBase - MinSize)
個額外的隨需執行個體。
在生產環境中,做為可擴展且有負載平衡環境中一部分的 Spot 執行個體格外實用。不建議您將 Spot 用於單一執行個體環境。如果沒有可用的 Spot 執行個體,您可能會失去環境的整個容量 (單一執行個體)。您可能仍會想要將 Spot 執行個體用於單一執行個體環境,以進行開發或測試。當您這麼做時,請務必將 SpotFleetOnDemandBase
與 SpotFleetOnDemandAboveBasePercentage
同時設為零。任何其他設定都會產生隨選執行個體。
備註
-
有些較舊 AWS 的帳戶可能會提供 Elastic Beanstalk 不支援 Spot 執行個體的預設執行個體類型 (例如 t1.micro)。如果您啟用了 Spot 執行個體請求,並且看到
None of the instance types you specified supports Spot (您指定的執行個體類型皆不支援 Spot)
錯誤,請務必設定可支援 Spot 的執行個體類型。如要選擇 Spot 執行個體類型,請使用 Spot Instance Advisor。 -
啟用 Spot 執行個體請求需要使用 Amazon EC2啟動範本。當您在環境建立或更新期間設定此功能時,Elastic Beanstalk 會嘗試將環境設定為使用 Amazon EC2啟動範本 (如果環境尚未使用)。在此情況下,如果您的使用者政策缺乏必要的許可,環境建立或更新可能會失敗。因此我們建議您使用我們的受管使用者政策,或將所需的許可新增至您的自訂政策。如需所需許可的詳細資訊,請參閱建立自訂使用者政策。
以下範例示範設定各種擴展選項的不同情況。所有範例均假設使用已啟用 Spot 執行個體請求的負載平衡環境。
範例 1:做為初始容量一部分的隨需和 Spot
選項 | 命名空間 | Value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
在此範例中,環境是從十個執行個體開始,其中七個是隨需 (四個是基本數量,50% 的六個高於基本數量),其中三個是 Spot。環境最多可擴展到 24 個執行個體。隨著環境擴展,高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%,整體最多 24 個執行個體,其中 14 個是隨需 (四個基本數量,50% 的 20 個高於基本數量),其中十個是 Spot。
範例 2:所有隨需初始容量
選項 | 命名空間 | Value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
在此範例中,環境是從四個執行個體開始,全部都是隨需。環境最多可擴展到 24 個執行個體。隨著環境擴展,高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%,整體最多 24 個執行個體,其中 14 個是隨需 (四個基本數量,50% 的 20 個高於基本數量),其中十個是 Spot。
範例 3:超過初始容量的額外隨需基本數量
選項 | 命名空間 | Value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
在此範例中,環境是從三個執行個體開始,全部都是隨需。環境最多可擴展到 24 個執行個體。超過初始三個的第一個額外執行個體是隨需,可讓四個基本數量隨需執行個體變得完整。隨著環境進一步擴展,高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%,整體最多 24 個執行個體,其中 14 個是隨需 (四個基本數量,50% 的 20 個高於基本數量),其中十個是 Spot。