As empresas na grande maioria das vezes querem ter alta disponibilidade. Falando de Amazon Web Services (AWS), há uma probabilidade muito baixa de que uma região inteira da AWS fique indisponível, pois as regiões tem no mínimo duas zonas de disponibilidade e cada zona de disponibilidade é um data center, entre eles existe no mínimo 25KM de distância e estão em lugares desconhecidos dentro da região.
Você já pode imaginar que irá ter um SLA muito melhor do que tem normalmente nos datacenters convencionais, a não ser que use alguma ferramenta de virtualização e monte um cluster entre dois datacenters independentes, o que não é uma tarefa simples. Mas vamos imaginar que você quer continuar com sua infraestrutura física e ter parte de sua infraestrutura na AWS, ou deseja ter sua infraestrutura toda na AWS porém em duas regiões destintas, ou qualquer solução que não seja apenas uma região AWS ou apenas um data center.
Na AWS, existe um serviço chamado Route 53. Esse serviço é um gerenciador DNS, cujo uso comum é gerenciar as entradas www.nome_do_site.com.br, nome_do_site.com.br, ftp.nome_do_site.com.br, dentre outros. Nosso objetivo nesse artigo é mostrar como fazer o Failover utilizando este serviço. No exemplo vamos usar a entrada www2.rivendel.com.br apontando para uma instância na Virginia e como backup a região de São Paulo.
Pré-requisito do teste: Possuir um domínio (Ex.: rivendel.com.br), no Route 53.
Crie uma instância com Linux Amazon na região de Virginia e outra em São Paulo, atrele elastic IPs a elas, acesse suas instâncias, e então instale o nginx:
yum install nginx -y; chkconfig nginx on
Entre na pasta html padrão:
cd /usr/share/nginx/html
Mova a página index.html padrão:
mv /usr/share/nginx/html/index.html /usr/share/nginx/index.html-orig
Coloque o ID da região como index.html para poder destinguir:
curl --silent http://169.254.169.254/latest/dynamic/instance-identity/document | grep region|awk '{print $3}' | sed -e s/','/''/g | sed -e s/'"'/''/g > /usr/share/nginx/html/index.html
Sua instância agora está configurada para receber requisições na porta 80. Vamos agora configurar o serviço Route 53.
Vá na área de Health Checks
Crie um novo health checker e preencha o campo de IP Address com o Elastic IP da sua instância da Virginia. Insira o nome do host (nome da entrada DNS que utilizará para teste). No exemplo vou usar uma entrada www2 no domínio rivendel.com.br. Então pressione o botão “Create Health Check”. Este será utilizado para analisar o status da URL, conforme a imagem abaixo.
Vamos agora criar as entradas DNS. Para isso vá em Hosted Zones
Na área dos serviços AWS, vá em Route 53. Lá você encontrará o seu domínio que já foi configurado anteriormente.
Selecione o domínio o qual irá utilizar, e então pressione o botão “Go to Record sets”.
No painel do seu domínio, pressione o botão “Create Record Set”, conforme a imagem abaixo.
No lado direito abrirá uma caixa para você inserir os dados da entrada DNS, então preencha como já feito anteriormente:
Feito isso, selecione o monitoramento criado nos passos anteriores, e então pressione o botão “Create Record Set”.
Para a entrada primária precisamos de monitoramento para analisar o status do DNS. Caso ocorra algum problema ele irá enviar as requisições a entrada secundária.
Vá novamente em “Create Record Set” e insera os dados da entrada DNS.
Para a entrada secundária não precisamos de monitoramento pois a ideia é que ela seja uma entrada para ser ativa quando a primária estiver com algum problema.
Pronto, agora está tudo configurado, vamos ao teste?
Abre um navegador e insira a entrada DNS criada, conforme utilizado no exemplo. Usarei a entrada www2.rivendel.com.br
Legal, vimos a sua entrada DNS respondendo no IP primário (us-east-1 é a região da virginia). Agora desligue a sua instância da Virginia(Primária), espere 60 segundos (TTL) e faça novamente um teste. Ele abrirá o conteúdo da instância do IP secundário (sa-east-1 é a região da São Paulo), conforme imagem abaixo.
Concluímos assim que é muito simples fazer o Failover utilizando o Route 53 da Amazon, o que é uma funcionalidade ótima e extremamente barata (0.50$ por mês) conforme link da calculadora.
Fonte de referência: http://aws.typepad.com/aws/2013/02/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting.html
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.