O Elastic Load Balancer da AWS é um ponto único de falha?

15

Estou pensando em mudar nosso aplicativo para o Amazon Web Services. O plano é ter todas as instâncias do EC2 espelhadas em duas zonas de disponibilidade. Devido aos custos de transferência de dados, ficaremos em uma única região da AWS (Oregon).

Os vários AZs eliminam o ponto único de falha de nossos servidores de aplicativos e banco de dados, mas e o ELB? Se eu tiver um único ELB distribuindo tráfego entre dois AZs, o ELB também será hospedado nesses dois AZs?

O que a Amazon faz para impedir que o ELB seja um SPoF?

Chris.B
fonte

Respostas:

13

Na essência, um ELB é apenas uma coleção de instâncias do EC2. Quando você criar um ELB , você especifica as zonas de disponibilidade em que deseja que o balanceador de carga esteja. As instâncias para compor o balanceador de carga serão criadas nessas zonas. A maneira como eles evitam um único ponto de falha aqui é retornando vários endereços IP ao fazer uma pesquisa de DNS. Por exemplo:

  • A pesquisa de DNS para website.example.com retorna CNAME website-elb-12345.eu-west-1.elb.amazonaws.com
  • A pesquisa também retorna as informações para website-elb-12345.eu-west-1.elb.amazonaws.com. Ele afirma que o site tem o endereço IP 1.2.3.4 e o endereço IP 2.3.4.5

Cabe ao cliente escolher qual endereço IP usar para fazer uma conexão. Os endereços IP nem sempre serão retornados na mesma ordem da pesquisa de DNS. Um cliente pode tentar novamente um endereço IP alternativo se não conseguir se conectar na primeira tentativa.

O TTL nos registros DNS de um ELB é de apenas 60 segundos, o que significa que, se uma instância ELB morrer e for substituída, o DNS será atualizado rapidamente em todos os lugares.

Richard
fonte
Portanto, como implantarei as instâncias do EC2 do meu aplicativo em várias zonas, quando criar o ELB para essa região, ele será automaticamente hospedado nas instâncias do EC2 espalhadas pelas mesmas duas zonas?
Chris.B
Ao criar o ELB, seja através da API ou do console, você será solicitado a selecionar as zonas de disponibilidade nas quais deseja que o ELB opere. Você só precisa selecionar as mesmas zonas de disponibilidade nas quais suas instâncias estarão.
Richard
3

Na verdade, poderia ser um SPoF, mas acredito que seria um SPoF apenas dentro da mesma região.

É por isso que a AWS está sugerindo o uso da verificação de integridade do Route 53 para detectar e redirecionar o tráfego que acabaria em um ELB prejudicial.

Você pode usar os recursos de verificação de integridade do Amazon Route 53 e de failover de DNS para melhorar a disponibilidade dos aplicativos em execução atrás do Elastic Load Balancers. A rota 53 falhará em um balanceador de carga se não houver instâncias EC2 saudáveis ​​registradas no balanceador de carga ou se o próprio balanceador de carga não estiver íntegro .

Fonte: http://aws.amazon.com/elasticloadbalancing/

Alex
fonte
Portanto, existe uma maneira de configurar mais de um ELB em uma única região. Tem um como primário e um como reserva? Ou o Route 53 é capaz de disparar uma nova instância ELB?
Chris.B
Eu não acho que o Route 53 possa configurar automaticamente um ELB, você precisaria procurar no guia do desenvolvedor.
27414 Alex
1

Você pode contornar o seu AZ SPoF único criando um grupo de dimensionamento automático onde, se o seu ELB único não atender ao fator X, seja por carga, tempo de resposta, etc., um novo ELB será criado. ELBs são essencialmente instâncias do EC2 executando código proprietário da AWS.

Jon Deane
fonte
Eu pensei que o ELB escalado automaticamente ao aumento do punho na carga, etc.
Chris.B