我昨天尝试通过Ansible设置现货实例,即使我将现货价格==该实例的按需价格,几乎所有请求都失败了。

因此,当我查看现货价格图表时,发现了一些非常有趣的东西:





us-east-1a中该实例的现货价格高于按需价格,这使我感到困惑。 [实际上高出约5倍]

难道不是低成本的现货实例?如果是,那么价格为什么高于按需价格?

根据AWS的文档:


竞价型实例可让您访问未使用的Amazon EC2容量
相对于按需价格有很大的折扣。


这是否也意味着人们在按需价格上竞标?如果是,那为什么呢?使用按需实例不是更好吗?

还是我理解竞价型实例的概念错了?

评论

如果现货价格始终低于按需价格,为什么按需价格会存在?

Zach,因为如果出价更高的话,Amazon可以随意终止您的实例。

不管其背后的原因是什么-您都可以通过对竞价型实例实施最佳实践规则来最大程度地降低风险-aws.amazon.com/ec2/spot/getting-started-为尽可能多的实例类型和可用区创建请求这样,您就可以减轻支付更多费用的可能性。如果您在短时间内支付多一点钱,而在其他所有情况下却少得多,这仍然对您有利。而且,看起来有很多小实例的算法对于大型单节点工作负载aws.amazon.com/ec2/spot/instance-advisor
来说,可能更安全

#1 楼

这实际上是人们稍微滥用现场的一个很好的例子。人们说“我们的工作量确实很重要,但我们不想全额支付按需价格”,因此他们将竞价设置为高于按需价格,但前提是该价格极不可能终止,但仍希望得到“最便宜的”现货价格。

在某些情况下,人们输入,例如$ 1000(我听说过这种情况至少发生过一次)是因为他们想要收益现货市场。当然,自然会在某个时候出现需求,SOARS的现货价格使人们支付的费用要高于按需支付。从上到下进行计数,直到它们满足所有X个实例的需要为止。那么,“价格”便是它们可以满足这X个实例的最低价格。那10,000个实例实现了。但是,如果供应量突然下降到100个实例,那么也许有几个人将100个实例的出价设为10,000美元,突然,他们将每小时支付1万美元。

Tl; dr了解如何现场工作,并设置您准备支付的上限。

#2 楼

原因有两个:


很多用户有时会使用竞价型实例(考虑批处理,将100台机器作为竞价型实例启动并处理掉)。 br />对于竞价型实例,您不支付出价,而是支付当前的现货价。投标价格是截止点。如果当前现货价格超过竞标价格,则AWS将终止该实例。

这也是某些用户对现货价格过度出价的原因。他们不希望实例频繁关闭,因此他们出价很高,以至于现货价格将永远无法达到。由于他们只支付当前的现货价格,因此实例将在99%的时间内便宜很多。

评论


因此,在我所问的这张图中,18:00的现货价格为2.15美元,对吗?这意味着当人们可以按需支付价格时,人们仍然需要为每个实例支付2.15美元。为什么这样?

– Dawny33♦
17年4月15日在8:02

查看我的答案(即将发布)

–亨利
17年4月15日在8:11

@ Dawny33有时,价格仅在短暂时间内升至阈值以上。从现货定价转换为按需定价涉及在普通ec2实例上重新创建实例。如果价格再次下降,则按需实例已被销毁,新的现货实例等。因此,浪费的时间使该实例变得有用。有些人认为这样做不值得,而只会使用竞价型实例

– Thern
17-4-15在19:26



#3 楼

可以在竞价型实例简介中找到一些有用的信息,以了解为什么有人会出价高于按需价格:
用于大量计算能力(请注意,竞价型实例的默认限制为100,而按需实例的默认限制为20。)如果您的需求很紧急,则可以指定一个最大值
价格(可能甚至高于按需价格),这将提高您请求的相对优先级
,并允许您根据其他请求和
尽可能多地使用即时容量竞价型实例容量当时可用。


如果您对服务的需求量激增(也许已从另一个受欢迎的网站链接到此商品,请参阅Slashdot效果),则为竞价实例出价高于按需价格如文档中所述,这将帮助您访问更多实例。只需购买按需实例就可以进行长期计算(此外,竞标的风险也较小!)。

如果您处在需要大量计算能力的情况下,速度将比您快得多可以从仅购买按需实例获得收益-竞价可能是有道理的。

#4 楼

如果仔细查看图表,您会发现峰值总是持续很短的时间-足够的时间让所有者编写的自动监视系统正常终止这些系统。此外,您偶尔会发现价格在飙升后立即跌至0。这是因为该数据中心中的所有系统都按需使用,没有可用的现货定价系统,价格实际上为零。将在系统上的本地元数据uri http://169.254.169.254/latest/meta-data/spot/termination-time上可用。它将持续3分钟。在大多数情况下,有足够的时间来自动处理终止。只有在需要几分钟才能正常终止的部署中,才需要以高于需求价的价格出价。

如果无法将系统设计为正常终止,在3分钟内归档数据等,可以将出价高于需求价格以获取时间。该系统甚至可以设计为主动监视当前现货价格,并在价格结束之前进行交换。但对于那些确实如此的情况,您将需要做出一个业务决策,以决定该时间有多少钱才能优雅地终止合同。为了保持您的系统。但是,如果您的系统需要30分钟才能正常终止所有流程,则可以做出业务决策,以决定可能丢失任何数据或降低水平扩展服务的价值。一个电子商务站点每小时的纯利润为10,000美元,一定可以支付1000美元来保持2个现货实例在15到30分钟内运行,同时启动需求系统和归档数据。基于Web的应用程序可以使用Elastic Load Balancer帮助自动解决终止问题。一个聪明的实现者将放置一组脚本来处理警报。他们可以维护2个负载均衡的低成本按需实例-然后通过竞价型实例使用多达半打中等成本的系统来维持高性能,并花费少于同容量的单个按需系统。

让其中3个人支付最高每小时$ 100的费用,其中3个人仅支付最高按需价格的一半。随着AWS终止实例,ELB将自动进行调整。只需一个小时即可将自动系统调整为200美元。