为什么AWS现货实例价格高于“按需”定价?

Amazon竞价型实例不一致性定价

这是通过实例报价的历史图表的截图来最好地解释的。

如果您查看现货实例的很多实例价格,您将会注意到有规律的峰值模式。 看这里:

在这里输入图像描述

正如您所看到的,这个计算介质实例的价格经常高于按需价格。

c1.medium实例(按需)只需要$0.186美元。 但在几周的时间内,在B区,价格将会经常上涨至1.20美元。 这是实际按需价格的6倍。

这也不是孤立的。 如果再看一下小区域的b区,频繁出现类似的尖峰。 其中4倍的按需定价。

在这里输入图像描述

有谁知道为什么发生这种情况?

这里有一些build议

  • 有人进入1.2美元,而不是0.12美元(我会打这个,因为它发生了20周,超过3周的空间)。

  • 亚马逊通常通过对自己的实例进行竞价来抬高价格,从而获得最大的回报。 (我会打折,因为这将是荒谬和糟糕的生意)

  • 有的公司同时推出了1000台服务器,并希望确保它们全部启动。 (我会打折的,因为他们可能会推出价格低于最低要求价格,为什么你会支付一台服务器的需求以上?)。

  • 这是他们的报告错误?

有一份来自以色列技术研究所的人员对现货市场进行分析。 他们的结论是现货价格不是由投标驱动的,而是由AR(1)函数产生的。 所以在这种情况下,这不是由于其他人的出价,而是由于使用了algorithm。

http://www.cs.technion.ac.il/~ladypine/spotprice-ieee.pdf

尽pipe如此,如果现货市场真正达到可以从需求/供应中获得好价格的水平,我想这可能会发生改变。 正如马特所言,通过现货实例降低成本已经成为一种常见做法,许多高价位的按需价格以避免停机。 从长远来看,它仍然具有成本效益…但它仍然是? 真正的问题是,除了亚马逊,没有人真正知道价格是如何创造的。

EC2不再使用人工AR(1)过程来控制最低价格。 即使他们这样做了,他们也只是改变了最低的价格 – AR(1)的过程就停滞了,从来不会导致价格跳过按需价格。 这种跳跃既可以来自用户指定高价格(可能比他们真正想要支付的价格更高),也可以来自亚马逊,希望closures一部分现货实例,就像在2010年夏天为m1.small做的那样。

您可以在我们的论文的期刊版本中阅读更多内容,在更新的最后部分(后续章节)中:

这不是一个错误,这是一个优先级/可用性问题,因为按需实例比现货实例优先于现货出价。 这源于Amazon EC2的声明,即您“ 在备用的Amazon EC2实例上出价 ”。

因此,当按需实例的需求增加时,可用的备件就会减less,并且现场实例的可用性会降低推动现货价格,根据竞争性的现货出价。

许多现场投标人未能理解按需实例的更高优先级,并且出价高于按需定价,试图获得优先于按需实例请求的优先级,但是由于按需实例具有更高的优先级,现货价格。

反过来,这些按需定价的价格竞标相互竞争,在现货实例可用性较低时推动最高价格比按需定价多倍。

尽pipe没有提出以下要求,但我对于长期工作负载的最低成本现场实例pipe理的build议是:

  1. devise应用程序失败(连续备份/复制)和快速恢复
  2. 将即期竞价价格设置为按需定价
  3. 当现货实例终止时,将其重新启动为按需实例或现货定价较低的其他区域/区域。
  4. 监控现货定价,直到低于按需定价
  5. 停止按需实例,并转到2.以上

这不是报告中的错误。 有时候,现货价格会上涨。 在过去,他们飙升到巨额。 从那以后,亚马逊改进了现货实例投标和分配的algorithm,但即使如此,现货价格也不时出现上涨。

早在2011年9月,美国东部1区AZ的m2.2xlarge的现货价格猛涨至999美元/小时。

原因很简单:人们指定的最高现货价格高于按需价格,需求推高了价格。

许多人使用专有实例作为最小化正在运行的EC2实例的成本的一种方式。 他们通常会指定较高的最高现货价格,以减less他们的现货实例出价和终止的可能性。 从长远来看,这是一场赌博,但是如果不小心的话,它将面临非常快的花费。