Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 多AZ环境中的自动缩放实例_Amazon Web Services_Amazon Ec2_Aws Auto Scaling - Fatal编程技术网

Amazon web services 多AZ环境中的自动缩放实例

Amazon web services 多AZ环境中的自动缩放实例,amazon-web-services,amazon-ec2,aws-auto-scaling,Amazon Web Services,Amazon Ec2,Aws Auto Scaling,我计划在多AZ(AZ=可用区)网络中建立一个自动缩放组(ASG)。假设我们运行了一些诊断,发现正常负载至少需要8个实例,高峰时间需要24个实例 这里是一个示例屏幕截图控制台 我不知道这8个实例(或24个实例)是在AZ上运行还是在一个AZ中运行。此外,如果我必须强制ASG在一个AZ中每个都有8个实例,我该怎么做 有人能指引我吗?我是一个初学者,请原谅我的无知。当您创建自动缩放组时,您指定了应该在其中启动实例的AZ 自动缩放的目的是保持每个AZ中实例的数量平衡。例如,当启动一个新实例时,它将以自动缩

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

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

我不知道这8个实例(或24个实例)是在AZ上运行还是在一个AZ中运行。此外,如果我必须强制ASG在一个AZ中每个都有8个实例,我该怎么做


有人能指引我吗?我是一个初学者,请原谅我的无知。

当您创建自动缩放组时,您指定了应该在其中启动实例的AZ

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

因此,为了确保每个AZ中有8个实例,自动缩放组需要有一个等于配置AZ数量8倍的实例计数

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

因此:

  • 确定您的系统是否能够处理启动替换实例所涉及的延迟
  • 如果可以,只需启动最少数量的实例
  • 如果无法处理延迟,则启动足够的实例,这样即使一个AZ出现故障,也会有足够的实例
自动缩放使多个AZ上的实例数保持(平衡)均匀

例如:


您至少设置了8个实例

如果为自动缩放设置2个AZ,则每个AZ有4个实例(4+4=8)

如果将3个AZ设置为自动缩放,则2个AZ将各有3个实例,1个AZ有2个实例(3+3+2=8)

总的来说,至少有8个实例在多个AZ之间保持正常负载


将24个实例设置为最大值

如果为自动缩放设置2个AZ,则每个AZ有12个实例(12+12=24)

如果为自动缩放设置3个AZ,则每个AZ有8个实例(8+8+8=24)

总的来说,在高峰时间,最多有24个实例跨多个AZ保存



AWS也会回答您的问题-->

谢谢John。我从你详细的回答中学到了很多东西,我想真诚地感谢你帮助像我这样的新手。我无法用语言来解释我从你们的帖子中学到的感觉有多好。如果我理解正确,我认为要点是如果我们知道最小实例数,并且如果我们不能吸收任何延迟,那么我们应该设置AZs的
minimum instance count=min count*#
,这样它们就会自动平衡。不完全是这样。它应该启动足够多的实例,以便一个AZ的故障仍能提供足够的实例。所以公式应该是
Number to launch=(minu required/(Number of_AZs-1))*Number of_AZs
谢谢John。如果你不介意的话,我还有一个问题。在上面的示例中,我们确定(从负载测试)需要最少8个(常规负载)和最多24个(峰值负载)实例。假设有两个AZ。在这种情况下,参数(我相信)将是最小=8,最大=24,期望=16(根据上述公式)。我说得对吗?如果是,我担心在峰值负载期间,如果一个AZ崩溃,我将在平均值上有12个实例。为了解决这个问题,我可以将最小值/最大值/期望值乘以2(即最小值:16等)。然而,这并不划算。我读书。您能指导我吗?如果您不想等待其他实例启动,那么您需要
最小值=16
,因为如果on-AZ失败,这将在2个AZ中的每个AZ中提供8个实例。运行3个AZ的成本较低,因为它需要
最小值=12
(每个AZ中有4个)。坦率地说,AZ失败的可能性非常低,因此这是您的风险偏好和运行额外实例的成本之间的权衡。您说您至少需要8个,但您可能愿意在自动缩放启动更多实例时,在罕见的AZ故障情况下,在几分钟内使用较低的数字。所需容量=“您现在需要多少”。自动缩放将尝试通过启动/终止实例来为您提供如此多的实例,直到达到该数量。实例的实际数量永远不会低于最小值或高于最大值,即使所需容量要求的数量超出这些界限您可以将“最大值”设置为您想要的任何值——它只是设置了一个自动缩放不会超过的限制。