带有预留实例的 AWS Auto Scaling

Posted

技术标签:

【中文标题】带有预留实例的 AWS Auto Scaling【英文标题】:AWS Auto Scaling with reserved intance 【发布时间】:2017-07-05 13:54:29 【问题描述】:

我有一个关于 AWS Auto Scaling 的小问题。

对于 Auto Scaling 组,我们需要设置最小(1 个服务器)和最大实例数以进行扩展。

问题:

假设,我已经有一个 24x7 运行的预留实例。

我将为预留实例创建一个 AMI,并将此 AMI 用于自动缩放。

我想将此预留实例作为 Auto Scaling 组的一部分(这将成为我在 Auto Scaling 组中的最少 1 台服务器)。

但是当我缩小规模时,我根本不希望这个保留实例终止(因为我为此使用了我的弹性 IP),但其他实例可以在负载下降时终止。

我怎样才能做到这一点?

请推荐。 提前致谢。

【问题讨论】:

【参考方案1】:

实例预留不绑定到特定的 EC2 实例。只要您运行的实例与您的预留匹配,就会按预留的小时费率向您收费。

【讨论】:

【参考方案2】:

此预留实例不应在自动伸缩组中。您只希望它位于 Elastic Load Balancer 下使用的实例中。自动缩放组应该只包含动态的实例。

你可以在负载均衡器下设置这个实例,它永远不会被终止。

记得将自动伸缩组最小值设置为零,这样当预留实例的负载较低时,自动伸缩组会调用减少实例策略,您会减少费用。

【讨论】:

【参考方案3】:

Reserved Instance 的概念总是令人困惑。

预留实例是对特定容量(实例类型、操作系统、可选可用区)的预付款。例如,假设您为 m4.large Linux 实例购买了 1 年的预留实例。这意味着,一年中的每一个小时,您都可以免费运行m4.large Linux 实例,因为您已按年或按月预付费用。

请注意,您不会选择哪个实例获得此计费优惠。相反,一年中的每个小时,如果一个实例正在运行且与购买的预留实例相匹配,则不会按该小时收费。

因此,您不能真正说出诸如“我想将此保留实例作为 Auto Scaling 组的一部分”或“创建保留实例的 AMI”之类的话,因为您不知道也无法控制 实例获得计费收益。只要知道与预留实例匹配的运行实例将受益,就会很高兴。

因此,如果您有一个预留实例并且您正在运行在给定小时内至少有一个匹配实例类型和操作系统的 EC2 实例,那么其中一个实例将不会按小时收费.它不必是您提名的特定实例。

旁注:停止和启动实例会触发新的计费时间。每个购买的预留实例每小时仅收取一小时费用。因此,如果 Auto Scaling 启动一个实例,将其终止,然后在同一小时内启动另一个,收费。只有每个拥有的预留实例的第一个计费小时才会“不收费”。

(我记得看到过这样的说法,即预留实例优势通常适用于具有最早启动时间的实例,如果它被停止/终止,则该优势将用于具有下一个最早启动时间的实例 - 但是这可能不准确。)

【讨论】:

以上是关于带有预留实例的 AWS Auto Scaling的主要内容,如果未能解决你的问题,请参考以下文章

AWS 和 Auto Scaling cassandra

AWS Auto Scaling 下降 ~/.ssh/authorized_keys

AWS Auto Scaling 测试失败实例

ec2 实例和 AWS Auto Scaling 组

amazon aws Auto Scaling 组实例名称标签

针对 Auto Scaling 组的每个实例的 AWS Cloudwatch 警报