本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用配置策略來確定EC2叢集或 Spot 叢集如何滿足 Spot 和隨需容量
當您在EC2叢集或 Spot 叢集中使用多個容量集區 (每個都包含執行個體類型和可用區域) 時,您可以使用配置策略來管理 Amazon 如何從這些集區EC2履行 Spot 和隨需容量。配置策略可針對可用容量、價格和要使用的執行個體類型進行最佳化。Spot 執行個體和隨需執行個體有不同的配置策略。
競價型執行個體 的分配策略
您的啟動組態會決定EC2叢集或 Spot 叢集可從中啟動 Spot 執行個體的所有可能 Spot 容量集區 (執行個體類型和可用區域)。不過,在啟動執行個體時,叢集會使用您指定的配置策略,從所有可能的集區中挑選特定的集區。
注意
(僅限 Linux 執行個體) 如果將競價型執行個體設定為啟用 AMDSEV-SNP,則需支付額外的小時使用費,相當於所選執行個體類型隨需小時費率
您可以為 Spot 執行個體指定下列其中一個配置策略:
- 價格容量最佳化 (建議使用)
-
叢集會針對正在啟動的執行個體數量,識別具有最高容量可用性的集區。這表示我們將從我們認為在短期內中斷機會最低的集區請求 Spot 執行個體。然後,叢集會從這些集區的最低價格請求 Spot 執行個體。
價格容量最佳化配置策略是大多數 Spot 工作負載的最佳選擇,例如無狀態容器化應用程式、微型服務、Web 應用程式、資料和分析任務以及批次處理。
如果您使用的是 AWS CLI,則參數名稱適用
price-capacity-optimized
於EC2叢集和priceCapacityOptimized
Spot 叢集。 - 容量最佳化
-
叢集會針對正在啟動的執行個體數量,識別具有最高容量可用性的集區。這表示我們將從我們認為在短期內中斷機會最低的集區請求 Spot 執行個體。您可以選擇性地為叢集中的每個執行個體類型設定優先順序,其中叢集會先針對容量進行最佳化,但會盡最大努力遵守執行個體類型優先順序。
使用 競價型執行個體,定價會依據長期的供需趨勢隨時間慢慢改變,但是容量會即時波動。容量最佳化策略會透過查看即時容量資料並預測哪些可用資料,自動將 Spot 執行個體啟動到最多可用的集區。這適用於可能具有較高中斷成本與重新啟動工作相關的工作負載,例如持續整合 (CI)、影像和媒體轉譯、深度學習和高效能運算 (HPC) 工作負載,這些工作負載可能與重新啟動工作相關的中斷成本較高。容量最佳化策略可減少中斷的可能性,可降低工作負載的整體成本。
或者,您也可以使用容量最佳化的優先順序配置策略搭配優先順序參數,將執行個體類型從最高到最低優先順序排序。您可以為不同的執行個體類型設定相同的優先順序。叢集會先針對容量進行最佳化,但會盡最大努力遵循執行個體類型優先順序 (例如,如果遵守優先順序不會對叢集佈建最佳容量的能力造成重大影響)。對於必須將中斷可能性降至最低的工作負載來說,這是一個很好的選擇,而且某些執行個體類型的偏好也很重要。請注意,當您為 Spot 容量設定執行個體類型的優先順序時,如果隨需配置策略設定為優先順序,您的隨需執行個體也會套用相同的優先順序。對於競價型叢集,只有當您的叢集使用啟動範本時,才支援使用優先順序。
如果您使用的是 AWS CLI,參數名稱
capacity-optimized-prioritized
為capacity-optimized
「EC2叢集」capacityOptimized
和capacityOptimizedPrioritized
「競價型叢集」。 - 多元化
-
競價型執行個體 會分佈在所有 Spot 容量集區。如果您使用的是 AWS CLI,則參數名稱適用
diversified
於「EC2叢集」和「競價型叢集」。 - 最低價格(不建議使用)
-
警告
我們不建議使用最低價格配置策略,因為它對您的競價型執行個體具有最高的中斷風險。
Spot 執行個體來自價格最低且還有可用容量的集區。使用時 AWS CLI,這是預設策略。不過,我們建議您透過指定價格容量最佳化配置策略來覆寫預設值。
使用最低價格策略時,如果價格最低的集區沒有可用容量,Spot 執行個體將來自下一個具有可用容量的最低價集區。如果集區在滿足您想要的容量之前耗盡容量,叢集將繼續從下一個最低價的集區繪製來滿足您的要求。為確保達到所需的容量,您可能會從數個集區中接收 Spot 執行個體。
由於此策略僅考慮執行個體價格,而不考慮容量可用性,因此可能會導致高中斷率。
最低價格配置策略僅在使用時可用 AWS CLI。參數名稱
lowest-price
適用於「EC2叢集」和lowestPrice
「競價型叢集」。 - 要使用的池數
-
要配置目標 Spot 容量的 Spot 集區數量。只有在配置策略設定為最低價格時才有效。叢集會選取價格最低的競價型集區,並將目標 Spot 容量平均分配到您指定的 Spot 集區數目。
請注意,叢集會嘗試從您以最佳方式指定的集區數量繪製 Spot 執行個體。如果集區在滿足您的目標容量之前用完 Spot 容量,叢集將繼續從下一個最低價的集區繪製來滿足您的請求。為確保達到目標容量,您可能會從超過您指定的集區數量中接收 Spot 執行個體。同樣地,如果大多數集區沒有 Spot 容量,您可能會從少於您指定的集區數量中接收完整目標容量。
只有在指定最低價格配置策略時才能使用此參數,且僅在使用時才能使用 AWS CLI。參數名稱
InstancePoolsToUseCount
適用於「EC2艦隊」和「競價型叢集」。
隨需執行個體的配置策略
您的啟動設定會決定EC2叢集或 Spot 叢集可從中啟動隨需執行個體的所有可能容量集區 (執行個體類型和可用區域)。不過,在啟動執行個體時,叢集會使用您指定的配置策略,從所有可能的集區中挑選特定的集區。
您可以為隨需執行個體指定下列其中一種配置策略:
- 最低價
-
隨需執行個體來自價格最低且具有可用容量的集區。這是預設策略。
如果價格最低的集區沒有可用容量,則隨需執行個體來自具有可用容量的下一個價格最低的集區。
如果集區在滿足您想要的容量之前耗盡容量,叢集將繼續從下一個最低價的集區繪製來滿足您的要求。為確保符合您所需的容量,您可能會收到來自多個集區的隨需執行個體。
- 優先
-
叢集會使用您指派給每個啟動範本覆寫的優先順序,以最高優先順序啟動執行個體類型。此策略無法用於以屬性為基礎的執行個體類型選取。如需如何使用此配置策略的範例,請參閱針對隨需容量排定執行個體類型的優先順序。
選擇適當的 Spot 配置策略
您可以選擇適當的 Spot 分配策略,進而針對您的使用案例最佳化機群。
平衡最低價格與容量可用性
為了平衡最低價 Spot 容量集區與具有最高容量可用性的競價型容量集區之間的權衡,我們建議您使用價格容量最佳化配置策略。此策略會根據集區的價格和這些集區中 Spot 執行個體的容量可用性,決定要從哪些集區請求 Spot 執行個體的集區。這表示我們將從我們認為在短期內中斷機會最低的集區請求 Spot 執行個體,同時我們仍會將價格納入考慮。
如果您的叢集執行彈性且無狀態的工作負載,包括容器化應用程式、微型服務、Web 應用程式、資料和分析工作以及批次處理,請使用價格容量最佳化配置策略,以達到最佳的成本節省和容量可用性。
如果您的機群執行的工作負載有較高的重新啟動工作中斷的成本,則您應該實作檢查點作業,以便應用程式可以在中斷時從該點重新啟動。通過使用檢查點,您可以使價格容量優化配置策略非常適合這些工作負載,因為它可以從價格最低的集區中分配容量,這些集區也提供較低的競價型執行個體中斷率。
如需使用價格容量最佳化配置策略的JSON組態範例,請參閱下列內容:
當工作負載具有較高的中斷成本時
如果您執行的工作負載使用價格相似的執行個體類型,或是中斷成本非常重要,以致於與中斷的邊際增加相比,節省成本不足,您可以選擇性地使用容量最佳化策略。該策略可從最可用的 Spot 容量集區分配容量,而這些集區會提供較少中斷的可能性,進而降低您工作負載的整體成本。
如果必須將中斷的可能性降至最低,但對特定執行個體類型的偏好設定很重要時,您可以使用容量最佳化的優先順序配置策略來表示集區優先順序,然後將執行個體類型的使用順序從最高到最低優先順序來表示集區優先順序。
請注意,當您設定容量最佳化優先順序時,如果將隨需配置策略設定為優先順序,也會將相同的優先順序套用至您的隨需執行個體。另請注意,對於競價型叢集,只有當您的叢集使用啟動範本時,才支援使用優先順序。
如需使用容量最佳化配置策略的範例JSON組態,請參閱下列內容:
-
EC2艦隊 — 範例 8:在容量最佳化叢集中啟動 Spot 執行個體
-
現貨艦隊 — 範例 9:在容量最佳化機群中啟動 Spot 執行個體
如需使用容量最佳化優先順序配置策略的JSON組態範例,請參閱下列內容:
當您的工作負載具有時間彈性且容量可用性並非相關因素時
如果您的機群很小或運作時間很短,您可以使用最佳化的價格容量,以最大限度地節省成本,同時仍考慮容量可用性。
當您的機群很龐大或執行時間較長時
如果您的叢集規模龐大或長時間執行,您可以使用多元化策略將 Spot 執行個體分配到多個集區,以提高叢集的可用性。例如,如果您的叢集指定 10 個集區,而目標容量為 100 個執行個體,則叢集會在每個集區中啟動 10 個 Spot 執行個體。如果某個集區的 Spot 價格超過該集區的最高價格,則只有 10% 的機群會受到影響。隨著時間,使用這種策略也會使您的機群對任何一個集區 Spot 價格上漲較不敏感。透過多元化策略,叢集不會將 Spot 執行個體啟動到任何競價型價格等於或高於隨需價格
維持 Spot 執行個體的目標容量
在 Spot 執行個體因 Spot 價格變更或 Spot 容量集區的可用容量而終止後,類型的叢集會maintain
啟動替代 Spot 執行個體。分配策略會確定從中啟動替代執行個體的集區,如下所示:
-
如果配置策略經過最佳化的價格容量,則叢集會在具有最多 Spot 執行個體容量可用性的集區中啟動替換執行個體,同時考慮價格並識別具有高容量可用性的最低價格集區。
-
如果配置策略已最佳化容量,叢集會在具有最多 Spot 執行個體容量可用性的集區中啟動替換執行個體。
-
如果配置策略是多元化的,則叢集會將替換的 Spot 執行個體分配到剩餘的集區中。
針對隨需容量排定執行個體類型的優先順序
當EC2叢集或 Spot 叢集嘗試滿足您的隨需容量時,預設會先啟動價格最低的執行個體類型。如果將隨需配置策略設定為優先順序,叢集會使用優先順序來決定滿足隨需容量時要先使用的執行個體類型。優先順序會指派至啟動範本覆寫,優先順序最高的將會先啟動。
範例:排定執行個體類型的優先順序
在本例中,您設定三個啟動範本覆寫,每個範本均具有不同的執行個體類型。
執行個體類型的隨需價格在價格範圍內。以下是本範例中使用的執行個體類型,依價格順序列出,從最便宜的執行個體類型開始:
-
m4.large
– 最便宜 -
m5.large
-
m5a.large
若您不使用優先順序來決定順序,則機群會以最便宜的執行個體類型開始來實現隨需容量。
但是,假設您有要首先使用且未使用的 m5.large
預留執行個體。您可設定啟動範本覆寫,以便依優先順序使用執行個體類型,如下所示:
-
m5.large
– 優先順序 1 -
m4.large
– 優先順序 2 -
m5a.large
– 優先順序 3