De que outras maneiras eu posso balancear a carga de servidores EC2 sem usar o Elastic Load Balancing?

1

Eu tenho um aplicativo da web que consiste em um servidor web gerenciado por uma empresa de hospedagem, um conjunto de instâncias do EC2 na nuvem amazons e um banco de dados MySQL (hospedado no servidor da web). O MySQL está protegido por um firewall e está configurado para permitir o acesso do Localhost e de um único endereço IP, que é um endereço IP do Amazon Elastic que está conectado à instância do EC2 que tenho executado até agora.

O problema é que quero examinar minha estratégia de escalonamento e balanceamento de carga para minha instância do EC2. Para este fim, tenho investigado as ferramentas Elastic Load Balancers e Autoscaling que a Amazon fornece e conseguiram definir isso bem, mas por um lado - conectando-se ao banco de dados MySQL em execução no meu servidor web. Percebi (graças às respostas no Serverfault) que precisava verificar as configurações do firewall e adicionar o endereço IP para o balanceador de carga. No entanto, os Elastic Load Balancers fornecem um nome DNS, não um endereço IP, e os endereços IP mudam com o tempo isso não funcionará. Fui informado pela empresa que hospeda o banco de dados que a maneira como o firewall funciona é procurar o endereço IP do nome DNS e armazenar o IP em vez do nome DNS. Então, basicamente, isso não funcionará e a única maneira de permitir o acesso seria abrir a porta SQL para permitir o acesso de qualquer pessoa!

Esta é uma ideia viável? Devo olhar para mover meu banco de dados para a nuvem? Existe outro firewall que a empresa de servidores pode usar? Devo encontrar outra forma de balanceamento de carga (em caso afirmativo, o quê?)

um complicado eh? qualquer ajuda apreciada!

    
por undefined 13.01.2011 / 18:59

3 respostas

1

As instâncias do EC2 recebem seu próprio IP, independentemente de estarem ou não no balanceador Elastic Load. Você não pode adicionar seu IP do Elastic Load Balancer ao seu firewall para permitir acesso a instâncias do EC2, porque o IP de saída do EC2 não é o IP do Balanceador de Carga, mas é o IP da própria instância.

Se você planeja ter várias instâncias do EC2, certamente precisará de uma maneira de permitir mais de 1 IP no firewall do servidor MySQL. Porque cada instância do EC2 obtém seu próprio IP de saída.

Nunca abra sua porta do MySQL para todos.

Seu problema não é o balanceador de carga, mas o servidor MySQL. Se você pode mover seu banco de dados para a nuvem, essa seria a melhor abordagem.

    
por 13.01.2011 / 21:11
0

Existem algumas maneiras de contornar isso:

  1. Configure um script para verificar a cada 30 segundos ou menos e certifique-se de que as regras do firewall estejam definidas corretamente e codifique um tratamento de erro para conexões com falha no aplicativo (indesejável).

  2. Use um servidor apache como um balanceador de carga (ou vários com apontador de round-robin do DNS, portanto, apenas alguns endereços IP a serem monitorados). O Apache possui recursos de balanceamento de carga razoavelmente maduros que você pode aproveitar em vez de um ELB.

por 13.01.2011 / 20:30
0

Este é um dos problemas com o EC2, uma opção em torno disso é criar um túnel VPN automático das instâncias do EC2 para seu servidor de banco de dados (usando stunnel, ou ssh ou ipsec, sua escolha), se você tiver largura de banda suficiente deve resolver o seu problema bem. Eu pessoalmente iria com stunnel.

O problema com um firewall reativo é que ele sempre causará alguma interrupção em algum nível.

    
por 13.01.2011 / 20:41