概述
很多小伙伴抱怨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模式,以达到一定成本优化的目标。
事不宜迟,参照[创建与管理抢占式实例]代码样例,开始您的成本优化之旅吧。