搶占式實例是一種特殊的按量付費實例,相對于普通按量付費實例價格有一定的折扣,旨在為您降低部分場景下使用ECS實例的成本。搶占式實例存在多種出價模式,您可以根據實際情況進行選擇。本文將對搶占式實例不同出價模式進行對比分析,并提供出價模式最佳實踐。
出價模式對比
搶占式實例支持以下出價模式,具體出價模式說明如下:
出價模式 | 說明 | 適用場景 | 優點 | 缺點 |
設定您的最高價(SpotWithPriceLimit) | 該模式下需要您設置一個價格上限,即您愿意為這個實例規格支付的最高價格。如果實例規格在價格波動時超出您設置的價格上限,則對應的ECS實例將會觸發中斷事件。 | 業務對ECS實例的預算以及價格要求極其嚴格,完全不允許超出預算。 | 嚴格控制成本,能夠保證實例規格的費用不會超出既定的成本。 | 如果資源價格波動劇烈,則會提升觸發實例中斷事件的概率。 |
使用自動出價(SpotAsPriceGo) | 該模式為跟隨當前市場價格的模式,即表示您始終接受實時的市場價格作為實例規格的計費價格。 | 業務成本要求不嚴格,盡可能節省成本。 | 可以保證實例不會因價格因素被中斷,降低了實例中斷的概率。 | 較難控制成本,可能導致成本超支。 |
使用自動出價(SpotAsPriceGo)結合系統運維管理OOS | 搶占式實例的使用自動出價(SpotAsPriceGo)模式無法直接感知到資源價格的上升,當結合系統運維管理OOS的 | 同時具備了資源穩定運行以及對資源價格上升的感知能力。 | 需要接入系統運維管理OOS,存在一定的接入成本。 | 業務要求提升實例穩定運行概率,具備感知成本增加的能力。 |
經過對三種模式的簡要分析,結果如下表所示:
模式 | 實例被價格原因中斷概率 | 成本優化程度 | 成本可控性 |
設定您的最高價(SpotWithPriceLimit) | 高 | 高 | 高 |
使用自動出價(SpotAsPriceGo) | 低 | 較高 | 較低 |
使用自動出價(SpotAsPriceGo)結合系統運維管理OOS | 低 | 較高 | 高 |
出價模式最佳實踐
搶占式實例自身直接支持以下兩種模式,您可以根據業務實際需求選擇:
如果您需要嚴格控制預算,實例的穩定運行要求不嚴格。可以選擇設定您的最高價(SpotWithPriceLimit)的出價模式。
如果您對實例穩定運行有較高要求,成本要求不嚴格。可以選擇使用自動出價(SpotAsPriceGo)的出價模式。
如果您希望保證實例穩定運行概率的同時,兼顧業務成本。可以選擇使用自動出價(SpotAsPriceGo)結合系統運維管理OOS。
即通過
使用自動出價(SpotAsPriceGo)
的出價模式提升實例的穩定運行概率;通過系統運維管理OOS的ACS-ECS-AlarmWhenDiscountAndPriceExceedsThresholdInMultiZoneAndInstanceType
公共模板監控搶占式實例的價格,當價格超過設置的閾值時,系統會向您發送提示消息。具體操作步驟如下:
準備工作。
創建出價模式為使用自動出價(SpotAsPriceGo)的搶占式實例。
具體操作,請參見創建搶占式實例。如果您已經創建了搶占式實例,請跳過本步驟。
查看搶占式實例的信息。
具體操作,請參見查看實例信息。本教程中創建了兩臺搶占式實例,信息如下表所示,后續步驟將基于實例的信息設置價格監控的運維腳本。
實例名稱
地域和可用區
實例規格
搶占式實例1
華東1(杭州)可用區I
ecs.c5.xlarge
搶占式實例2
華東1(杭州)可用區K
ecs.r6.xlarge
基于RAM訪問控制創建OOS所需的
OOSServiceRole
角色。具體操作,請參見為OOS服務設置RAM權限。您需要注意,在選擇權限時僅授予
AliyunECSReadOnlyAccess
權限即可。接入釘釘自定義機器人。
具體操作,請參見自定義機器人接入。您需要注意在接入機器人時,安全設置選擇自定義關鍵詞,并設置
監控
關鍵詞。后續步驟中,OOS將通過釘釘自定義機器人的Webhook地址發送消息。
登錄OOS管理控制臺。
在左側導航欄,選擇
。在定時運維頁面,單擊創建。
在創建定時運維任務頁面,完成以下配置,然后單擊創建。
配置項
說明
定時類型
選擇周期性重復執行,然后進行以下配置:
重復頻率:保持默認配置,即1小時執行一次。
說明搶占式實例短時間內價格變化不頻繁,建議您以1小時為周期進行價格監控即可。
重復頻率的時區:根據您所在的地區時區自行設置。本教程中保持默認配置。
規則結束時間:根據您實際的業務需求自行設置。本教程中保持默認配置。
選擇模板
通過搜索框搜索并選中
ACS-ECS-AlarmWhenDiscountAndPriceExceedsThresholdInMultiZoneAndInstanceType
公共模板。設置模板參數
本步驟的參數設置需要參照已獲取的搶占式實例信息進行設置。參數說明如下:
地域ID:華東1(杭州)。
可用區:華東1 可用區I、華東1 可用區K。
實例規格:ecs.c5.xlarge、ecs.r6.xlarge。
監控任務類型:您可以根據自身需求選擇監控類型。具體說明如下:
Discount:基于實時折扣的監控。例如,某實例規格對應的按量付費價格為0.400,搶占式實例價格為0.080,則搶占式實例的折扣為2折。如果您期望搶占式實例在折扣大于2.5折時收到消息通知,則可以設置Discount,并將價格/折扣閾值參數設置為25(25表示2.5折)。
Price:基于實時價格的監控。例如,某實例規格對應的按量付費價格為0.400,搶占式實例價格為0.080。如果您期望搶占式實例價格大于0.090時收到消息通知,則可以設置Price,并設置價格/折扣閾值參數為0.090。
價格/折扣閾值:設置閾值。需要結合監控任務類型使用。
釘釘接收信息的地址:設置釘釘自定義機器人的Webhook地址。
任務執行的并發比率:保持默認配置。
執行使用到的權限的來源:選擇已創建的
OOSServiceRole
角色。
執行設置(可選)
保持默認配置。您可以根據實際情況自行配置。
執行定時任務后,您可以在定時運維頁面查看定時任務執行的狀態。
等待定時任務執行或者測試定時任務。
成功執行定時任務后,系統會實時監控搶占式實例的出價情況,如果超過您設置的閾值,則會通過釘釘自定義機器人發送提示消息。
實際場景下,搶占式實例價格波動不頻繁,不易驗證定時任務的觸發結果。您可以新建一個定時任務,并將閾值設置為必定觸發的值。例如,搶占式實例每小時價格平均為0.080,閾值可以設置為0.040。因為搶占式實例價格始終高于閾值,所以后續定時任務執行時必定會觸發報警并通過釘釘自定義機器人發送提示消息。
相關文檔
您可以調用DescribeSpotAdvice接口查詢搶占式實例平均釋放率和折扣率。
CLI命令參考如下。例如,查詢華東1(杭州)地域的搶占式實例平均釋放率和折扣率。
aliyun ecs DescribeSpotAdvice --region cn-hangzhou --RegionId 'cn-hangzhou'