我今天需要启动一个新的 EC2 实例,并决定尝试新的竞价实例,您可以通过竞标您愿意支付的最高每小时价格来降低实例成本。由于今天的现货价格仅为 3.5c / 小时,而按需实例的价格为 8.5c / 小时,我想知道:如果我出价很高,比如 10c / 小时,我是否可以有效地确保获得比按需实例便宜得多的长期运行实例(因为现货实例仅按当前现货价格收费)?
我认为现货价格在理论上有可能超过按需价格,但据我从 AWS 网站上的数据了解,现货价格一直远低于按需价格。
更新:几周以来我一直在监测小型实例现货价格,价格一直非常稳定,仅在 2.9c 和 3.1c 之间波动。我写了一份更详细的博客文章在现货实例上,包括我为监控现货价格而构建的 Nagios 插件的链接。
答案1
理论上,这是个好主意,但不要在上面托管网络服务器或任何不会死机的东西。这传统上用于数据搅动等分布式作业,而不是服务,因为如果现货价格超过您的最高出价,您的服务器就会关闭。
另外,请确保您的数字正确,按需收费为每小时 0.085 美元,而不是 0.85 美元。这可能会对您的预测产生影响 :)
答案2
嗯,出价 10 倍于当前价格会有所帮助。然而,在过去,曾发生过终止交易的事件全部在给定区域内运行现货实例(价格飙升)。
一个重要的保护措施是将卷设置为持久性,以便它们能够经受住任何不必要的终止(毕竟,任何实例都是如此)。另一个是制定清晰、概述的备份和恢复计划——将要如果实例终止,如果您在一个区域丢失了数据(这在今年春季的中断中发生过),如果您在跨区域丢失了实例/数据,您会怎么做?
当然,您在后一种(最坏情况)情景中投入多少精力是一个成本/收益的问题,但一般来说,您会希望对现货和持久实例制定相同的恢复计划。
最后,竞价型实例无法“停止”(暂停或“关闭”)并重新启动。这是诊断问题时需要注意的一点——例如,您无法停止挂起的实例,无法将卷附加到另一个实例,无法进行更改,也无法尝试重新启动。(当然,您可以创建 AMI 并启动新实例)。
答案3
问题在于,如果 AWS 的资源利用率过高,它将关闭你的竞价实例 - 竞价实例只是 AWS 在需求总体较低时通过闲置服务器赚取一些钱的一种方式。
基本上,这不仅仅是您出价的金额与现货价格的因素,还取决于 AWS 区域的总体利用率。
答案4
我也是这么想的。即使我的最高出价被设置为与按需实例相同,我的现货实例也会终止。无论当前出价是多少,都无法保证您的实例会继续运行。