HA no Amazon EC2 com servidor único - possível?

2

Eu fiz uma pergunta semelhante no ec2ubuntu, mas percebi que é mais uma questão geral de escalabilidade / redundância do servidor.

Basicamente, eu tenho uma única instância do Amazon EC2 executando uma das AMIs do Ubuntu. É instalado com uma pilha LAMP básica, atuando como um servidor db / web em um.

Agora, eu queria saber qual é a melhor maneira de configurar isso com algum grau  de redundância, basicamente para que, se a instância morrer, possamos criar uma nova instância, montar o mesmo volume de EBS e estar em nosso caminho alegre. Provavelmente haverá algum tempo de inatividade mínimo enquanto esperamos que a nova instância seja ativada. Mais tarde, na pista, provavelmente vamos querer torná-lo mais elástico e aumentar a escala para lidar com novas cargas.

Eu sugeri que eu pudesse usar o ELB (Elastic Load Balancing) e o Autoscaling para definir algo assim (isso é apenas para as instâncias de substituição), no entanto, não sei como isso funcionará apenas uma única instância do servidor?

Além disso, existem soluções alternativas, que não dependem do escalonamento automático / ELB, ou essa é a melhor opção para essa configuração? (Do que eu entendo, scalr e Rightscale são projetados em torno de pools - eu só quero uma configuração única e bastante discreta, e estou disposto a tolerar alguns minutos de inatividade enquanto esperamos que a instância de substituição gire).

Felicidades, Victor

    
por victorhooi 15.10.2009 / 06:49

4 respostas

0

Eu diria que você precisaria de mais 2 máquinas.

  1. O primeiro é um balanceador de carga que redireciona a chamada para o melhor servidor (os balanceadores de carga lidam com isso)

  2. O segundo é uma segunda máquina com exatamente as mesmas especificações do que a máquina atual.

É claro que, a qualquer momento, você pode simplesmente conectar um novo servidor da Web e adicioná-lo à lista de máquinas no balanceador de carga, e agora você terá três máquinas configuradas e usadas dependendo de suas cargas. etc.

Se você quiser ter certeza de que tudo está bem, você escolheria um terceiro servidor que seria seu servidor de banco de dados e os dois servidores da Web gravariam e leria esse único servidor de banco de dados. No futuro, você poderá adicionar facilmente uma infraestrutura de banco de dados replicada a partir desse novo servidor de banco de dados.

Pode ser um pouco exagerado, mas essa configuração seria, em teoria, boa para mais tarde

    
por 05.11.2009 / 13:41
2

O importante é ter algo que possa detectar quando a instância morre e iniciá-la novamente. Eu não acho que exista algo interno ao EC2 que possa fazer isso, então você precisará ter alguma coisa externa para lidar com isso. Não me surpreenderia se alguém está executando um serviço em algum lugar que monitore seu site e pare / inicie a instância do EC2 se tiver problemas, mas eu não sei de nada que esteja no topo da minha cabeça.

    
por 15.10.2009 / 08:14
1

Você precisará de uma entidade externa para cuidar disso para você. Eu simplesmente não sei de um serviço que faz isso para configurações de uma única máquina, já que uma única máquina tipo é a falha em sua equação para começar. :)

Tenho certeza de que você sabe que pode automatizar as configurações do EC2, por exemplo, com um pouco de dados do usuário, a AMI certa (por exemplo, com o chef-solo instalado), etc. - então essa é a parte fácil.

No final, a questão é se você está melhor em outro provedor. Por exemplo. uma instância do slicehost pode ser boa para você. Ou dois. Um para app, um para DB. Há também menos o "exemplo pode desaparecer coisa". Embora eu tenha que acrescentar, isso raramente acontece. (Mas eu também vi isso.)

    
por 18.10.2009 / 15:35
0

Uma solução realmente barata poderia ser usar um cron job em uma hospedagem compartilhada, como bluehost et al. Você pode criar um script que execute a cada 5 minutos e faça algo como:

  • há alguma instância apropriada em execução? (usando ec2-describe-instances por exemplo)
  • está em execução? por exemplo, 'enrole' no nome do host e verifique se ele retorna algo sensato
  • se não houver uma dessas perguntas, mate a instância antiga, se necessário, e lance uma nova

É claro que tanto a sua hospedagem compartilhada quanto a sua instância podem cair e a sua instância pode ficar inativa ao mesmo tempo: -P

    
por 29.11.2009 / 17:44

Tags