Um balanceador de carga de aplicativos com menos instâncias que zonas de disponibilidade?

4

É importante ter sempre uma instância ec2 em cada zona do seu balanceador de carga? Existem vantagens em ter mais de duas ou três zonas?

Nós configuramos nosso aplicativo em um grupo de escalonamento automático do EC2 que atua como o único grupo-alvo de um balanceador de carga de aplicativos. Para nossa implantação inicial, definimos o modelo de inicialização e o balanceador de carga para usar seis zonas de disponibilidade. Com base na recomendação do parágrafo 4 aqui , nós defina o tamanho mínimo do AutoScaling Group para seis, para que sempre haja pelo menos uma caixa em cada zona.

Na prática, na maioria das vezes não precisamos de seis caixas; um pool mínimo de dois ou três nos daria a redundância de que precisamos.

Eu posso entender que sem o Balanceamento de carga entre regiões seria importante ter uma caixa em cada zona, mas os Balanceadores de carga de aplicativo sempre usam o Balanceamento de carga entre regiões, portanto, parece que isso não deveria importar. Do outro ângulo, há vantagens ou desvantagens em ter nosso LB em tantas zonas?

    
por ShapeOfMatter 09.11.2018 / 15:43

2 respostas

1

Tanto quanto eu sei a maioria das regiões , você só pode usar 2 ou 3 zonas de disponibilidade , somente na região us-east-1 pode usar até 6 AZs . Consulte AWS Global Infrastructure para obter detalhes.

Word of mouth: I remember from some AWS presentation that even if they sometimes have more than 3 datacentres in some regions these are added to the existing 3 AZs because they realised that for most practical purposes 3 AZs are sufficient. [citation needed, I know. Sorry can't find a link]

Agora à sua pergunta - ao criar o ALB, você pode selecionar em quais AZs você deseja. Se em us-east-1 você decidir manter apenas 3 AZs, seu ALB pode ser configurado apenas nestes 3 AZs.

Se você tiver instâncias com menos AZs do que o ALB foi ativado, não se preocupe, eles ainda encaminharão o tráfego para as instâncias existentes em outras zonas. Você pode pagar um pouco mais por tráfego entre zonas , mas isso provavelmente será menor do que o custo de execução de instâncias desnecessárias em cada AZ. Você faz as contas.

E finalmente, na minha opinião, usar 3 AZs por região é mais que suficiente, porque:

  • As chances de uma baixa de disponibilidade serem pequenas, mas isso aconteceu algumas vezes no passado. Se isso acontecer, você ainda terá dois outros AZs on-line para pegar a carga.

  • Interrupções de toda a região são muito incomuns. Mas mesmo que isso aconteça - se toda a região cair devido a algum erro humano ou técnico, não importa se você teve suas instâncias em 1 ou 6 AZs. A coisa toda está para baixo de qualquer maneira.

  • Se sua implantação for totalmente supercrítica e você não puder tolerar nenhum tempo de inatividade - implante em várias regiões para redundância extra. E, novamente, não importa se em cada região você tem 2 ou 3 ou 6 AZs.

Espero que ajude:)

    
por 10.11.2018 / 04:35
0

Não, você não precisa de uma instância em cada região, o balanceador de carga em cada AZ verificará se há uma instância em sua zona e, caso contrário, encaminhará o tráfego para alguma instância saudável em alguma outra zona.

O balanceamento de carga entre zonas não se aplica realmente neste caso. Ele é usado somente se houver instâncias íntegras em todas zonas ELB, mas você ainda deseja que o ELB escolha aleatoriamente uma instância para falar, independentemente do AZ. Por padrão, ele só fala com instâncias em seu AZ, se houver algum. Se não houver, ele ainda fala com qualquer instância disponível, independentemente do balanceamento de carga entre zonas.

    
por 10.11.2018 / 04:43