【问题标题】:AWS Amazon EC2 Spot pricingAWS Amazon EC2 Spot 定价
【发布时间】:2011-07-08 12:20:50
【问题描述】:

我想要一个非亚马逊的答案来解决这个难题......

看起来,通过现货实例定价,您可以以每小时 22 或 23 美分的价格运行一个实例,时间不限,因为小时/天/月的历史图表显示现货价格永远不会超过每小时 21 (22?) 美分。这就像相同大小的实例的非预留实例成本的一半,甚至比预留实例的每小时成本还要低。没有承诺。

我是否遗漏了什么,我是否对现货/出价/要价实例机制有完全和完全的误解?或者这是在亚马逊拥有大量额外容量的同时获得 24/7 实例的廉价方式?

杰里米

【问题讨论】:

    标签: amazon-ec2 amazon-web-services


    【解决方案1】:

    不,你没有错过任何东西。当我第一次看 Spot 时,我多次问过同样的问题,然后 “为什么不是每个人都一直使用它?”

    那么缺点是什么?亚马逊保留随时以任何理由终止 Spot 实例的权利。现在,一个正常的“按需”实例也可能随时终止,但如果主机服务器需要关闭,亚马逊会尽最大努力保持它们在线并提前(几天/几周)为客户提供警告用于维护。如果您有一个 Spot 实例在他们想要重新启动的服务器上运行……他们只会将其关闭。在实践中,两者都非常可靠(但不是 100% !!),并且许多角色可以在现场 24/7 全天候运行而不会出现问题。只是不要向亚马逊抱怨您的 Spot 实例已关闭并且您的整个数据库都存储在临时驱动器上......当然,如果您在任何实例上这样做,您将承担巨大(而且非常愚蠢)的风险。

    一些公司通过 Spot 节省了大量资金。 这是一篇关于 Vimeo 节省 50% 的文章,一篇关于 Pinterest 节省 60%+ 的文章($54/小时 => $20/小时)。

    为什么没有更多的公司将 Spot 用于他们的实例? 许多购买 EC2 实例小时数的公司对价格不是很敏感,而且非常规避风险,尤其是在中断时以及消耗工程量的运营事件。他们不想为了节省几块钱而处理麻烦,特别是如果 AWS 费用与人员相比不是一个重要的成本中心。对于 24/7 实例,他们已经通过“预留实例”支付了 1/2 的价格,因此与全价“按需”实例相比,节省的费用并不像看起来那么显着。 Spot 与大客户并不完全相关。您几乎可以肯定,当客户达到 Netflix 的规模时,他们 1) 需要与 Amazon 就容量规划进行协调,因为您不能一时兴起启动 1/2 的数据中心,以及 2) 获得显着的批量折扣,无论如何都会将其使用成本降低到 Spot 价格范围内。另外,削减成本的第一层是回收不需要的硬件。在我上一家公司,一个人发现了一个错误,当我们循环通过盒子时,我们会“忘记”其中的一些,然后关闭它每月节省 100 美元以上(哎呀)。一旦公司消耗掉这些脂肪,他们就会开始关注 Spot。

    还有第二个较少讨论的 Spot 不被使用的原因...... 这是一个不同的 API。想想这如何与“组织惯性”相互作用……在一家持续在 EC2 上花费 $XX / 小时的公司工作(并且来自一家花费 $XXXX / 小时的公司),工程师使用他们提供的工具启动实例.我们的 Chef 部署不知道如何与 spot 交谈。 Rightscale (prev place) 默认启动按需实例。通过一些工作,我可能会弄清楚如何制作一个现场实例,但如果我的首要任务是在明天之前让角色 XYZ 启动并运行,为什么还要麻烦呢?我不打算只为我的一个角色设计一个基于现场的解决方案,然后宣传为什么这是一个好主意;这必须是一个组织范围的决定。如果您阅读我上面链接的 Pinterest 案例研究,您会注意到他们谈论将他们的整个部署从 54 美元/小时迁移到 20 美元/小时。从字里行间看,他们没有选择一一启动 Spot 实例;有一天,他们醒来并做出了一个全公司范围的决定,即“解决 Spot 问题”并将他们的部署工具“迁移”到默认使用 Spot(可能支持将他们的数据库实例保持在 Spot 之外的标志)。我无法想象亚马逊通过使 Spot 成为一个不同的 API 而不是作为普通 EC2 API 上的标志而赚了多少钱。提示:它是装船的……就像你可以买一艘船,然后用现金装满它直到它沉没。

    因此,如果您愿意承受稍高的风险和/或您对价格有些敏感...那么,是的,您绝对可以通过在 Spot 24/7 下运行您的服务来节省一大笔钱。

    只需确保您已做好双重准备,以防意外丢失您的实例(即进行备份)......您已经需要为没有 100.0% 正常运行时间的“按需”实例做好准备要么。

    这样想:

    不是得到 99.9% 可靠的东西,而是得到 99.5% 可靠的东西并支付半价

    (我编造这些数字是为了传达这个想法,但它们可能与事实相差不远)。

    【讨论】:

    • So what's the downside? Amazon reserves the right to terminate a Spot instance at any time for any reason. TERMINATE 还是只是停止您的实例?即我的 EBS 驱动器也会被删除吗?
    • 实例被终止,而不仅仅是停止。已终止的实例仍会在列表中出现一小段时间(状态显示为“已终止”),然后它将完全消失。
    【解决方案2】:

    只要您的出价高于现货实例的市场价格,您就可以继续运行您想要的任何现货实例,并且只需支付市场价格。

    但是,当市场价格高于您的出价时,您将失去实例。没有任何警告。他们只是终止。虽然现货价格很少出现飙升,而且一旦出现,它往往会很快再次回落,但对于许多应用程序而言,在没有升温的情况下丢失所有实例的可能性是不可接受的。您可以通过提高出价来使自己免受这种可能性的影响,但您可能不得不支付这么多钱。

    TL;DR:如果您的应用程序能够容忍突然终止,那么 Spot 实例就很棒。但是使用它们存在风险。

    【讨论】:

    • 将一个核心 Auto Scaling 组与最少的按需/预留实例与另一个仅包含 Spot 实例的组合结合起来将是一个非常可行的解决方案。
    【解决方案3】:

    我认为这些答案有点不合时宜...

    您需要为您的工作负载选择最最合适的定价,并牢记这一点来构建您的解决方案。 AWS 提供 3 种定价类型:

    • 预留实例(低成本、高可靠性,但需预先付费)
    • 按需实例(成本最高、可靠性高,但随用随付)
    • Spot 实例(通常成本最低,但可能会意外终止)

    预留实例 - 使用这些来节省长期运行/恒定/可预测工作负载的成本。

    按需实例 - 将这些用于临时工作负载,例如开发/概念验证/不可中断的不可预测工作负载。

    Spot 实例 - 将这些用于临时工作负载。确保应用程序的设计考虑到这一点(例如,在某处永久保持状态并支持新实例从先前中断的地方恢复的能力)。

    一个有用的设计模式可以是拥有一个“指示灯”实例并使用自动缩放来根据需要启用 Spot 实例,并在 Spot 实例未能出现时通过一些巧妙的方式启用按需实例。

    TL;DR: Spot 实例适用于可以暂停和恢复但不是关键任务的工作负载。它们可能会出现非同寻常的峰值(例如,北加利福尼亚 m2.2xlarge 现货价格通常为 0.11 美元/小时,但持续峰值为 10.00 美元/小时!)。

    【讨论】:

      【解决方案4】:

      或者在亚马逊拥有大量额外容量的情况下,这是一种获得 24/7 实例的廉价方式吗?

      现货,如果您的出价始终高于现货价格。
      我找不到任何其他明确提及他们何时终止您的实例。
      我本以为他们会要求愿意为实例支付全额费用的客户提供该容量,但话又说回来,从技术上讲,现货价格可能会高于按需价格。

      【讨论】:

      • 当市场价格高于您的出价时,他们将终止您的实例。事实上,现货价格经常高于按需价格。
      猜你喜欢
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多