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?