ECI支援搶佔式執行個體,對於短時間啟動並執行Job任務,以及部分擴充性和容錯率高的無狀態應用,使用搶佔式執行個體可以有效地節約執行個體使用成本。本文介紹如何建立搶佔式ECI執行個體。
背景資訊
搶佔式執行個體是一種低成本競價型執行個體,您可以對阿里雲當前閑置的資源出價,獲得資源後運行容器,直到出價低於市場價格或者庫存不足等原因導致資源回收。
搶佔式執行個體適用於短時間啟動並執行Job任務,以及部分擴充性和容錯率高的無狀態應用,例如可Auto Scaling的Web網站服務、映像渲染、巨量資料分析和大規模並行計算等。應用程式的分布度、可擴充性和容錯能力越高,越適合使用搶佔式執行個體節省成本和提升輸送量。更多資訊,請參見什麼是搶佔式執行個體。
基本概念
建立搶佔式執行個體前,您需要瞭解以下資訊:
計費方式
搶佔式執行個體的市場價格隨供需變化而浮動,您需要在建立搶佔式執行個體時指定出價模式,當指定執行個體規格的即時市場價格低於出價且庫存充足時,就能成功建立搶佔式執行個體。建立成功後,在保護期(預設1小時)內按照成交時的市場價格計費。超過保護期後,按照即時的市場價格計費。
說明搶佔式執行個體相對於隨用隨付執行個體價格有一定的折扣,實際價格隨供求波動,並按實際使用時間長度進行收費。更多資訊,請參見搶佔式執行個體計費。
回收機制
超過保護期後,系統每隔5分鐘將自動檢測一次執行個體規格的市場價格和庫存。如果某一時刻的市場價格高於出價或執行個體規格庫存不足,搶佔式執行個體會被釋放。
說明資源回收前約3分鐘,系統會產生準備釋放的事件。
資源回收後,執行個體不再收費,但會保留執行個體資訊,且狀態會變更為已到期(Expired)。
注意事項
基於搶佔式執行個體的特點,使用搶佔式執行個體時,請注意以下資訊:
選擇一個合適的執行個體規格和一個合理的出價。
您可以通過ECS的OpenAPI介面查詢搶佔式執行個體近30天的資訊,以便選擇執行個體規格和出價。相關介面如下:
DescribeSpotPriceHistory:查詢執行個體歷史價格。
DescribeSpotAdvice:查詢執行個體平均釋放率、平均折扣率等資訊。
重要您的出價應該足夠高,同時充分考慮了市場價格的波動,並且符合您對自身業務評估後的預期。這樣才能成功建立搶佔式執行個體,且執行個體不會因為價格因素被釋放,在滿足業務需求的同時實現成本節約。
使用不受搶佔式執行個體釋放影響的儲存介質來儲存您的重要資料,例如:雲端硬碟(關閉隨執行個體釋放)、NAS等。
建立方式
支援指定ECS規格,或者指定vCPU和記憶體來建立搶佔式ECI執行個體:
指定ECS規格
計費以指定規格的按量市場價格和即時折扣為準。
指定vCPU和記憶體
該方式與指定ECS規格方式的效果相同。系統會自動匹配滿足規格和價格要求的ECS規格,並以此規格的市場價格作為計費的原始市場價格,即折扣是基於該ECS規格的市場價,而非對應ECI的vCPU和記憶體的按量價格。
該方式僅支援2 vCPU及以上規格,支援指定的vCPU和記憶體規格如下表所示。如果指定的規格不支援,系統會自動向上規整。
vCPU
記憶體(GiB)
2
2、4、8、16
4
4、8、16、32
8
8、16、32、64
12
12、24、48、96
16
16、32、64 、128
24
24、48、96、192
32
32、64、128、256
52
96、192、384
64
128、256、512
配置說明
OpenAPI
調用CreateContainerGroup介面建立ECI執行個體時,您可以通過SpotStrategy參數來設定搶佔式執行個體的出價模式,SpotPriceLimit參數來設定搶佔式執行個體的每小時價格上限,以及SpotDuration參數來設定搶佔式執行個體的保護期。相關參數說明如下表所示。更多資訊,請參見CreateContainerGroup。
名稱 | 類型 | 樣本值 | 描述 |
SpotStrategy | string | SpotWithPriceLimit | 執行個體的搶佔策略。取值範圍:
|
SpotPriceLimit | number | 0.2 | 設定搶佔式執行個體的每小時最高價格,最多精確到小數點後3位。當SpotStrategy取值為SpotWithPriceLimit時,必須設定SpotPriceLimit。 |
SpotDuration | long | 1 | 搶佔式執行個體的保護期。單位為小時。預設為1。可設定為0,表示無保護期。 |
控制台
通過Elastic Container Instance控制台建立搶佔式ECI執行個體時,可以直接選擇付費模式為搶佔式執行個體。
該方式不支援以下功能:
不支援設定出價策略,預設採用SpotAsPriceGo,即系統自動出價,跟隨當前市場實際價格。
不支援設定無保護期,預設保護期為1小時。