概述
很多小夥伴抱怨ECS雲服務器價格過於昂貴,上雲成本過高,但是否瞭解過搶佔式實例這種付費方式呢?提供了低至1折的跳樓價,讓您通過技術手段,合法合理地優化成本。
搶佔式實例提供了兩種出價模式,SpotAsPriceGo(即自動出價模式),SpotWithPriceLimit(設定價格上限模式),讓很多用戶有了選擇困難症。本文詳細描述幾種出價方式及應用場景,為您提供最佳實踐指南,希望能幫助您解決選擇困難問題。
出價模式詳解
模式1:SpotWithPriceLimit
• 描述:創建實例時,設定一個心理預期的最大價格,如果當前市場價格波動,超過您的最大預期價格,則實例會被標記中斷。
• 適用場景:對實例的預算以及價格要求極其嚴格,絲毫不能容忍超過預算。
• 優點:預算控制交給ECS,能夠嚴格保證實例計費不會超過您設定的價格上限。
• 缺點:在價格波動較為劇烈的情況下,中斷概率會急劇增加,導致不能穩定持有實例,可能會極大地影響線上容量。
代碼示例:
RunInstancesRequest request = new RunInstancesRequest();
request.setVSwitchId("<your-vsw-id>");
request.setImageId("<your-image-id>");
request.setSecurityGroupId("<your-security-group-id>");
request.setSystemDiskCategory("<your-disk-category>"); // 系統盤類型, 例如 "cloud_ssd"
request.setSystemDiskSize("<your-disk-size>"); // 系統盤大小, 例如 "40"
request.setInstanceType(instanceType);
request.setAmount(1);
request.setAcceptFormat(FormatType.JSON);
request.setInstanceChargeType("PostPaid");
request.setSpotStrategy("SpotWithPriceLimit");
完整代碼樣例參見:創建與管理搶佔式實例
模式2:SpotAsPriceGo
• 描述:創建實例時,不設定最大價格限制。
• 適用場景:預算要求不嚴格,希望能比較穩定地持有實例。由於搶佔式實例的價格上限是按量價格,所以成本能省多少就是多少。
• 優點:在價格波動較為劇烈的情況下,仍然能保證實例不被中斷,極大降低中斷概率。
• 缺點:成本控制較難,價格上漲,超出預期上限之後,無法感知該信息,導致成本超出預算。
代碼示例:
RunInstancesRequest request = new RunInstancesRequest();
request.setVSwitchId("<your-vsw-id>");
request.setImageId("<your-image-id>");
request.setSecurityGroupId("<your-security-group-id>");
request.setSystemDiskCategory("<your-disk-category>"); // 系統盤類型, 例如 "cloud_ssd"
request.setSystemDiskSize("<your-disk-size>"); // 系統盤大小, 例如 "40"
request.setInstanceType(instanceType);
request.setAmount(1);
request.setAcceptFormat(FormatType.JSON);
request.setInstanceChargeType("PostPaid");
request.setSpotStrategy("SpotAsPriceGo");
完整代碼樣例參見:創建與管理搶佔式實例
模式3:SpotAsPriceGo+OOSPriceMonitor組合
• 描述:創建實例時,使用SpotAsPriceGo模式,即不設定最大價格限制;同時配置OOS價格上限監控,當實例價格超過您的設定閾值時,OOS會推送消息給您,方便您進行後續操作。
• 適用場景:對成本有一定要求,同時對實例中斷的容忍度較差。
• 優點:既具備SpotAsPriceGo較低中斷率的穩定性,又具備了SpotWithPriceLimit的價格可預期性。
• 缺點:需要單獨配置OOS,有一定接入成本。
最佳實踐
第一條:推薦使用SpotAsPriceGo出價模式
在價格波動較為劇烈的情況下,選擇SpotAsPriceGo模式將極大降低您實例的中斷風險。
而在選擇SpotWithPriceLimit模式前,您需要仔細考慮:
1、您的場景是否真正需要SpotWithPriceLimit模式?據現有線上數據統計,90%以上實例都是PriceAsGo模式。如果您對成本要求極其嚴苛,可以參照最佳實踐第二條:使用PriceAsGo+PriceMonitor組合方案替代PriceWithLimit模式來替代,將實例中斷的權利掌握在自己手裡。
2、您是否做好了萬全的中斷準備?從我們實際數據來看,每天中斷實例裡,95%以上都是由於SpotWithPriceLimit,即價格波動超過設定上限導致。
此外,您是否注意到了,搶佔式實例售賣頁,我們已經幫您默認選擇了"使用自動出價模式"了呢?
第二條:使用SpotAsPriceGo+PriceMonitor組合方案替代SpotWithPriceLimit模式
1、如果對成本有一定訴求,您可以使用"PriceAsGo+OOS配置的PriceMonitor"組合方式,這樣能極大降低實例被中斷概率,同時又能讓您在第一時間獲知價格的變化情況,方便您進行後續操作。具體價格監控接入方案參見【搶佔式實例】手把手教你快速配置價格監控。
2、當然如果您對成本無特殊訴求,又能做到良好的中斷處理,則可以放心SpotAsPriceGo模式,以達到一定成本優化的目標。
事不宜遲,參照創建與管理搶佔式實例代碼樣例,開始您的成本優化之旅吧。