Alta disponibilidade em um orçamento usando o EC2 para failover?

1

Estou fazendo algumas pesquisas para determinar a melhor forma de criar uma solução de alta disponibilidade para a implantação de um aplicativo da web rails / mysql pelo menor custo.

Eu descobri uma possibilidade e estou procurando feedback sobre ela e idéias ou possibilidades adicionais.

Eu quero que minha instância de produção principal seja um servidor co-localizado. Isso aumenta muito a quantidade de energia que posso obter por dólar de hospedagem, além de ter um ambiente de hospedagem bastante seguro e confiável. Eu encontrei algumas empresas locais que se encaixam bem na conta. Eu não sou totalmente bom nisso, mas eu posso construir e montar servidores, e eu sou um administrador competente para que eu possa viver sem muito dos serviços gerenciados mais agradáveis.

Eu não quero ter que comprar uma instância completa de recuperação de desastre / failover com as mesmas especificações - para uma coisa, ela deve estar em uma região diferente, o que significaria que ela teria que ser dedicada ou virtual porque eu posso ' t entrar no centro de dados; e, consequentemente, seria muito mais caro do que minha instância co-localizada e provavelmente não seria usada.

Então, meu pensamento é usar o EC2 para failover e deixar as instâncias off-line até que sejam necessárias. Portanto, o failover não seria instantâneo, mas os novos servidores estariam prontos em poucos minutos. Eu ainda precisaria de alguma instância online o tempo todo para atuar como um alvo escravo de replicação do MySQL.

No entanto, não tenho certeza sobre a melhor maneira de gerenciar o failover. Eu tenho alguns pensamentos: um é usar TZO-HA que pode ser usado apenas para teste de porta e fail-over, mas é claro que só faz isso em um nível de DNS, o que significaria que ainda haveria uma interrupção até que o cache de DNS das pessoas expirasse.

Então, meu pensamento é colocar uma instância EC2 de baixo nível que possa executar o HAProxy. A configuração padrão seria IPs elásticos para essa instância, que são enviados para o servidor co-localizado. Há algumas maneiras diferentes de automatizar o failover real, se ocorrer com o servidor de aplicativos co-localizado ou com o HAProxy quase que instantaneamente.

A desvantagem, claro, é que isso cria um salto extra para cada solicitação. E, eu vou estar colocando um monte de largura de banda através do EC2, eventualmente, o que levanta a questão de por que não apenas usá-los para começar, uma vez que a largura de banda é uma grande parte dos meus custos estimados de hospedagem lá.

Algum problema com o meu plano? Alguma outra ideia?

    
por Jeremy 12.11.2010 / 19:28

1 resposta

1

Acho que a AWS permite que você configure seus próprios balanceadores de carga (ELB), que também permitem que você configure regras automáticas para iniciar mais instâncias de suas AMIs conforme as demandas de carga (e desligá-las novamente depois).

Eu não o implementei, apesar de estar olhando para ele. Eu encontrei este guia fantástico para configurar pilhas LAMP com balanceamento de carga: link (O layout da AWS mudou um pouco desde que isso foi escrito, mas ainda é incrivelmente útil).

(Editar: link foi movido, agora que eu vejo: link )

    
por 12.11.2010 / 19:36