Amazon 关于 Spot 实例定价不一致的问题

Amazon 关于 Spot 实例定价不一致的问题

Amazon 关于 Spot 实例定价不一致的问题

可以通过实例定价历史图表的截图来最好地解释这一点。

如果你查看大量现货实例的价格,你会注意到价格有规律地出现飙升。请参见此处:

在此处输入图片描述

正如您所见,此计算中等实例的价格定期飙升至一经请求价格。

一个c1.medium实例(按需)仅$0.186按小时收费。但在 B 区,几周内价格会定期飙升至 1.20 美元。这大约是实际按需价格的 6 倍。

这也不是孤立的。如果你再次查看区域 b 中的小型实例,就会发现类似的情况,而且价格经常飙升。价格是按需定价的 4 倍。

在此处输入图片描述

有人知道为什么会发生这种情况吗?

以下是一些建议

  • 有人输入了 1.2 美元而不是 0.12 美元(我不相信这是真的,因为在 3 周的时间里这种情况发生了 20 次)。

  • 亚马逊经常通过竞标自己的实例来人为抬高价格,以获得最大的收益。(我不相信这种做法,因为这样做很荒谬,而且生意也不好)

  • 一些公司一次启动了 1000 台服务器,并希望确保它们全部启动。(我不这么认为,因为他们可能会以低于最低按需价格的价格启动它们。你为什么要为一台服务器支付高于按需的价格?)。

  • 这是他们的报告中的错误吗?

答案1

以色列理工学院的研究人员发表了一篇论文,分析了现货市场。他们的结论是,现货价格不是由出价驱动的,而是由 AR(1) 函数生成的。因此,在这种情况下,这不是由于其他人的出价,而是由于所使用的算法。

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

不过,我猜如果现货市场真的达到了可以从需求/供应中获得不错价格的水平,情况可能会有所改变。正如 Matt 所说,利用现货实例降低成本已成为一种常见做法,许多人为了避免停机而出价过高。从长远来看,这仍然是具有成本效益的……但它仍然是吗?真正的问题是,除了亚马逊之外,没有人真正知道价格是如何形成的。

答案2

这不是一个错误,这是一个优先级/可用性因为按需实例有优先事项无论现货出价如何,现货实例的收益都会高于现货实例。这源于 Amazon EC2 声明“竞标备用的 Amazon EC2 实例“。

因此,当按需实例的需求增加时,可用的备用资源就会减少,可用性根据竞争性现货竞价,现货实例数量减少导致现货价格上涨。

许多现货竞标者未能理解按需实例的更高优先级,并以高于按需定价的出价试图获得优先于按需实例请求的权利,但这会失败,因为无论现货竞标价格如何,按需实例都具有更高的优先级。

反过来,这些高于按需定价的出价一直在相互竞争,当现货实例可用性较低时,最高价格会比按需定价高出数倍。

虽然没有问到以下内容,但我对长期工作负载的最低成本现货实例管理的建议是:

  1. 设计应用程序以应对故障(持续备份/复制)和快速恢复
  2. 将竞价实例出价设置为按需定价
  3. 当竞价实例终止时,将其作为按需实例重新启动,或者在竞价价格较低的其他区域/地区重新启动。
  4. 监控现货定价,直到其低于按需定价
  5. 停止按需实例并转到上面的 2.

答案3

EC2 不再使用人工 AR(1) 流程来控制最低价格。即使他们这样做了,他们也只是改变了最低价格 - AR(1) 流程是固定的,从未导致价格超过按需价格。这种跳跃可能来自用户指定高价(可能超过他们实际打算支付的价格),或者来自亚马逊希望关闭部分现货实例,就像他们在 2010 年夏天对 m1.small 所做的那样。

您可以在我们论文的期刊版本,在最后一节中更新较多(事后分析部分):

答案4

这不是报告错误。有时,现货价格确实会飙升。过去,它们曾飙升到惊人的水平。从那时起,亚马逊改进了竞标和分配现货实例的算法,但即便如此,现货价格还是会不时飙升。

早在 2011 年 9 月,us-east-1 AZ 中 m2.2xlarge 的现货价格就飙升至每小时 999 美元。

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

许多人使用现货实例来尽量降低运行 EC2 实例的成本。他们通常会指定较高的最高现货价格,以减少他们的现货实例被竞价超过和终止的可能性。这是一场赌博,从长远来看可能会有回报,但如果不小心,就会面临成本迅速变得非常昂贵的风险。

相关内容