我们最近开始在AWS上竞价实例。 从那时起,我们使用的可用区价格已经在我们的出价附近出现了一个可疑的价位。 我试图与其他人看到这个价格,并有奇怪的差异。
我已经比较了美国东部的c1.medium的EC2价格:
与那些来自网站EC2现货价格 :
但是他们不匹配。 我究竟做错了什么? 所有参数匹配; 非官方网站缺乏我们东1b,但其余的应该是相同的。 亚马逊是否有可能根据客户改变价格? 如果别人能够证实,这将是有趣的。
所有我已经检查过的ServerFault上的答案,如这个或这个 ,总是假设有一个固定的价格。 这篇有趣的文章讨论了定价algorithm,但又没有提到每个客户的不同价格。
更新 :从第二个AWS账户我看到不同的价格比第一个:
即使比较每个区域的区域也是相似的,但不相等。 他们也与第二个网站上的那些兼容,但不相等。 而对于这个第二个帐户区域,我们东部1b缺失,其他实例types也会发生这种情况。 古怪和古怪!
你引用的论文反映了不再适用的观察和结论,如果确实如此的话。
从那时起,我们使用的可用区价格已经在我们的出价附近出现了一个可疑的价位。
这实际上并不令人意外。
对于可用性区域,平台,操作系统types和实例types的每种组合,点容量均由以下逻辑分配:
确定可用的实例数量作为这种types的实例。 (这里的algorithm是未知的,但它大概是按需使用的硬件的一小部分,但目前不在使用中。)将此数字称为n 。
将出价从高到低sorting,并确定前n个最大价格出价。 这是中标。 如果任何非中标投标都有正在运行的现场实例,请将其终止。 如果任何获胜的出价没有正在运行的实例,请启动它。 如果中标出现了跑步的情况,那就什么也不要做。
以中标价最低的中标价格。 这成为目前的价格。
当投标被创build或销毁时,或者可用容量发生变化时,从头开始。
从这个逻辑,我们可以推断出几个结论:
如果现货价格是最低价格,那么比竞价人出价超过绝对最低值的可用容量更多。
相反,当价格高于最低价格时,则需求超过产能,因此高于市场价格的所有投标者都会上调市场价格,因为价格正好是最低中标人投标的金额。
市场价格越接近您的出价越接近您成为最低得标者。
对该algorithm的考虑表明,如果您在同一可用性区域/平台/操作系统types/实例types中运行多个实例,但您愿意接受的实例数量less于所需数量,则应使用多个单独的出价交错出价金额。 这有可能让你更好地了解市场,增加获胜者的可能性,而不是一无所获。如果你的出价中有一个是最低赢家,那么所有获奖者支付的市场价格将会更低。 如果你考虑的价格是3元/小时,比如3元,那么最好是4元,3元和2元,因为你最多可以支付4元1元,6元2元和6元为3.如果您反而3出价3美元,如果您的$ 3出价是最低的赢家,您的最高小时成本将为9美元3。 适当的出价策略取决于您在机器上的价值。 我在网站pipe理员那里详细地写了这个。
请注意,正如您所看到的,在一个区域内,跨帐户,可用性区域到名称映射不同。
问:如何确保我与其他开发人员处于相同的可用区域?
目前,我们不支持在AWS开发人员帐户中协调启动到同一可用区域的function。 两个AWS客户帐户中的一个可用区域名称(例如,us-east-1a)可能与不同的物理可用区域有关。
经过仔细观察,我的两个账户的价格确实是一样的,有一些注意事项: