1

我计划在多可用区(AZ = 可用区)网络中构建一个自动扩展组 (ASG)。假设我们运行了一些诊断程序,发现正常负载至少需要 8 个实例,高峰时间需要 24 个实例。

这是一个示例屏幕截图控制台。控制台截图

我很困惑这 8 个实例(或 24 个实例)是跨 AZ 运行还是在一个 AZ 中运行。此外,如果我必须强制 ASG 在 AZ 中每个实例拥有 8 个实例,我该怎么做?

4

2 回答 2

2

创建 Auto Scaling 组时,您指定应在其中启动实例的可用区。

Auto Scaling 旨在保持每个 AZ 中的实例数量平衡。例如,当启动一个新实例时,它将在 Auto Scaling 组中实例数量最少的 AZ 中启动(如果它们相等,则为随机 AZ)。终止实例时,它将选择 Auto Scaling 组中实例最多的 AZ 中的一个实例(如果它们相等,则选择一个随机 AZ)。

因此,为确保每个 AZ 中有 8 个实例,Auto Scaling 组的实例计数需要等于已配置 AZ 数量的 8 倍。

如果您希望确保 8 个实例始终在运行,并且 Auto Scaling 组使用 3 个 AZ,那么一个 AZ 发生故障的可能性很小。如果发生这种情况,Auto Scaling 将在剩余 AZ 中启动更多实例。如果您的应用程序不能等待这些额外的实例失败,那么它需要在 3 个 AZ 中的每一个中有 4 个实例。这样,如果一个 AZ 发生故障,仍然会有两个 AZ,每个 AZ 有 4 个实例,使 8 个实例运行。

所以:

  • 确定您的系统是否可以处理启动替换实例所涉及的延迟
  • 如果可以,那么只需启动最少数量的实例
  • 如果它无法处理延迟,则启动足够多的实例,以便即使一个 AZ 发生故障也有足够的实例
于 2020-10-13T11:01:13.667 回答
0

Auto Scaling 保持(平衡)跨多个 AZ 的实例数量均匀。

例如:


您至少设置了 8 个实例。

在此处输入图像描述

如果您为 Auto Scaling 设置 2 个 AZ,则每个 AZ 有 4 个实例 (4 + 4 = 8)。

如果您为 Auto Scaling 设置 3 个 AZ,则 2 个 AZ 将有 3 个实例,1 个 AZ 有 2 个实例 (3 + 3 + 2 = 8)。

总共至少有 8 个实例跨多个 AZ 保留以用于正常负载。


您将 24 个实例设置为最大值。

在此处输入图像描述

如果您为 Auto Scaling 设置 2 个 AZ,则每个 AZ 有 12 个实例 (12 + 12 = 24)。

如果您为 Auto Scaling 设置 3 个 AZ,则每个 AZ 有 8 个实例(8 + 8 + 8 = 24)。

在高峰期,总共最多保留 24 个实例跨多个可用区。


AWS 也会回答您的问题 -->问:Amazon EC2 Auto Scaling 如何平衡容量?

于 2021-03-23T10:26:08.363 回答