AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 448746
Accepted
platforms
platforms
Asked: 2012-11-15 11:01:39 +0800 CST2012-11-15 11:01:39 +0800 CST 2012-11-15 11:01:39 +0800 CST

使用 Spot 和按需实例进行 EC2 自动缩放?

  • 772

我希望通过让它们启动 spot 实例而不是按需实例来优化我们的自动扩展 EC2 组的成本。

我真正想要的是能够将组中的一些服务器保留为按需实例,而不管现货实例定价市场发生什么变化。然后,我希望该组中的任何其他服务器(超过我配置的最小值)成为 spot 实例。我通常可以接受通过现场请求添加服务器的延迟。

我似乎找不到任何方法来执行此操作,并且我已尝试搜索 AWS 文档。ASG 似乎可以是按需的或现货的,但不是混合的。

我可能会手动将一个按需实例添加到分配给自动缩放组的弹性负载均衡器,但是该服务器的负载不会被计入自动缩放测量和触发器中。

我想我可以输入一个高得离谱的出价,以确保我总能得到我需要的服务器,但后来我查看了定价历史,发现偶尔会出现大幅上涨。

AWS 文档自相矛盾,因为在一个地方它说如果您输入服务器最小值,则“确保”该数字在那里。但是当你读到 spot 实例时,没有任何保证。现货的价格差异非常引人注目,所以我想尽可能多地利用它,同时仍然保持始终在线的基线。这可能吗?

amazon-ec2
  • 5 5 个回答
  • 8979 Views

5 个回答

  • Voted
  1. rICh
    2015-01-15T08:34:31+08:002015-01-15T08:34:31+08:00

    上面讨论的方法会有点混乱,而且不那么灵活。更规范的方法是只创建 2 个 ASG(一个用于 spot,一个用于按需),然后将它们都注册到同一个 ELB(在此处讨论)。这使您能够独立控制每个,而不是试图在单个 ASG 中处理 LC 交换。

    • 15
  2. Steffen Opel
    2012-11-16T08:05:45+08:002012-11-16T08:05:45+08:00

    不幸的是,这种混合 Auto Scaling方法似乎并不是开箱即用的。

    但是,您也许可以按如下方式解决此限制(未经测试,只是我已经研究了一段时间的系统设计):

    潜在的解决方法

    如使用 Auto Scaling 启动 Spot 实例中所述,现货出价是所用启动配置的一个参数。正如您所指出的,没有可用的混合启动配置,它必须是按需的或现场的,这意味着用例需要两种不同的启动配置。

    这似乎没有立即帮助,因为您一次只能将一个启动配置附加到 Auto Scaling 组,具有以下(部分过时的)约束(请参阅启动配置):

    当您将新的或更新的启动配置附加到您的 Auto Scaling 组时,任何新实例都将使用新的配置参数启动。现有实例不受影响。当 Auto Scaling 需要缩减时,它首先终止具有较旧启动配置的实例。[强调我的]

    不过,强调的部分是关键,前者涵盖了在从相应的初始按需启动配置更改为额外的现场启动配置后保持按需实例运行的要求,而后者不一定是这种情况,因为最近引入的Auto Scaling 终止策略(对于更改,通常没有通过随附的 AWS 博客文章大张旗鼓),记录在您的 Auto Scaling 组的实例终止策略中:

    在 Auto Scaling 选择要终止的实例之前,它首先会识别比该组使用的其他可用区拥有更多实例的可用区。如果所有可用区具有相同数量的实例,它会标识一个随机可用区。在确定的可用区内,Auto Scaling 使用终止策略来选择要终止的实例。[强调我的]

    如您的终止政策如何运作中所述,如果您希望终止最后启动的实例,您现在可以指定NewestInstance,这将是最近启动的 spot 实例之一:

    Auto Scaling 使用实例启动时间来识别最后启动的实例。

    显然,这可能还有更多内容,例如,您可以将任何一个策略指定为独立策略,或者您可以在有序列表中列出多个策略,但这种方法应该确保所有实例的负载都被考虑到自动缩放测量和触发器;但仍有一个警告:

    警告

    如果负载均衡器出于任何其他原因终止了其中一个按需实例(例如,因为它本身变得不健康),它不会自动被一个按需实例替换。因此,您需要单独监视和说明此事件,例如,通过再次临时激活按需启动配置。

    祝你好运!

    • 6
  3. Ashwanth Kumar
    2015-10-28T23:51:21+08:002015-10-28T23:51:21+08:00

    我从这里的答案中得到灵感,提出了https://github.com/ashwanthkumar/matsya

    它可以帮助您执行以下操作

    • 你总是需要一组机器来满足你的 Hadoop / Mesos / YARN 集群需求
    • 您希望通过使用 Spot 来节省资金,但又希望回退到 OD,因为您需要处理能力来满足您的 SLA
    • 在 OD 上切换回 Spot 一次以再次省钱。
    • 1
  4. MaXimus
    2017-01-23T20:14:30+08:002017-01-23T20:14:30+08:00

    如果您只需要 1 个具有静态数量的按需实例的 ASG,则以下内容应该有效:

    • 根据 Spot 实例启动配置创建 Auto Scaling 组。

    • 在 ASG 上暂停 Auto Scaling

    • 手动将按需实例(静态基本负载)添加到 ASG 并为这些实例开启实例保护。

    • 在 ASG 上恢复自动缩放

    • 默认的自动缩放策略现在将忽略按需实例(由于保护)并终止与按需实例相同数量的 spot 实例以达到所需的组数量。任何缩减活动只会启动或终止 spot 实例。

    • 1
  5. Best Answer
    ALex_hha
    2018-11-29T23:07:41+08:002018-11-29T23:07:41+08:00

    目前,您可以跨单个 ASG混合按需实例和 Spot 实例

    Amazon EC2 Auto Scaling 现在允许您在单个 Auto Scaling 组 (ASG) 中跨购买选项、可用区 (AZ) 和实例系列预置和自动扩展实例,以优化规模、性能和成本。现在,您可以在单个 ASG 中包含具有按需实例和 RI 的 Spot 实例,以节省高达 90% 的计算成本。

    • 1

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve