Criar um Failover na AWS via Route53

Vamos ver neste artigo como criar um sistema de Failover para garantir alta disponibilidade de um site ou recursos que possuem conectividade, apenas configurando uma pura e simples rotina em um outro recurso da AWS chamado de Route53.

O Route53 é um serviço de DNS (Domain Name System) é um solucionador de nomes para a internet, é uma função que facilitou a disseminação da internet pelo mundo, pois ao invés de você ter que decorar incompreensíveis números de IP, você deve decorar um nome, por exemplo: http://comunidadecloud.com/

Um sistema de failover permite que sua aplicação esteja sempre online, mesmo em momentos de desastres, como por exemplo, um data center (ou parte dele) sai do ar e sua aplicação é afetada, com um sistema de failover, todo o fluxo de acessos é reencaminhado para outro datacenter, nuvem, país ou afins, assim sua aplicação tem garantias de sempre estar operacional.

Para realizarmos este artigo, vamos precisar ter duas formas de usar uma aplicação própria, por exemplo, dentro da nossa infraestrutura, vamos ter uma página Web em uma EC2 e dentro de um S3 uma outra página para facilitar a identificação de quando o failover entrar em ação.

Figura 1 – Estrutura do Failover

Premissas

Ter uma Ec2 com uma página web qualquer, um s3 com um site estático hospedado e um domínio registrado no S3.

Route53

Dentro do Route53 na AWS, vamos fazer os primeiros passos para criar o Failover.

Primeiramente, vamos criar uma verificação de integridade (Health Check), dentro desta verificação vamos incluir as informações necessárias para indicar para o sistema de failover, quando ele deve tornar o acesso do DNS para uma outra fonte.

Figura 2 - Configurando uma verificação de integridade
Figura 2 – Configurando uma verificação de integridade

Nos campos acima, basta preencher um nome e o tipo de monitoria, neste artigo iremos monitor um endpoint simples.

Na segunda parte da tela vamos preencher a URL e demais informações que nossa aplicação de teste tem. O endpoint pode ser expressado por IP ou pelo hostname da aplicação.

Figura 3 - Endpoint da monitoria
Figura 3 – Endpoint da monitoria


Existe uma aba avançada ainda nesta tela que nos permite configurar os Thresholds de validação, assim podemos dizer quantos pontos de falha o health check tem que ter para assumir então o host secundário e vice-versa, quantos pontos positivos para voltar a assumir o host primário.

Figura 4 - Ponto de monitoria avançada
Figura 4 – Ponto de monitoria avançada

Clique em next para aplicar as novas configurações.

Espere alguns segundos até o health check interpretar que o seu novo endpoint está saudável, a tela ficará da segunda forma.

Aproveite que ainda está na tela de verificação de integridade e já crie um segundo endpoint com o segundo site para quando o site principal deixar de funcionar, o failover assume e aponta o DNS para o secundário.

Figura 5 - Nova integridade com sucesso
Figura 5 – Nova integridade com sucesso

Agora volte para a área de Hosted Zones e vamos criar os pontos de failover no DNS da AWS.

Para isso entre no seu domínio registrado no Route53 e vamos criar os Record Sets normalmente, porém note que no final da tela de criação o Route53 traz outras opções de comportamento desse DNS (Routing Policies), por exemplo:

  • Simple Routing Policy
  • Failover
  • Geolocation
  • Geoproximity
  • Latency
  • Multivalue Answer
  • Weighted

Abaixo segue uma figura com os campos que são necessários configurar e iniciar nosso DNS no modo failover.

Figura 6 - Failover do link primário
Figura 6 – Failover do link primário

e o mesmo será feito para o endereço secundário que temos.

Figura 6 - Failover do link secundário
Figura 6 – Failover do link secundário

Como neste caso estamos falando de um s3, o sistema da AWS pergunta se queremos avaliar a integridade do destino ele tem o mesmo efeito dos passos realizados na validação de integridade, inclusive iremos selecionar Em Associar á verificação de integridade o outro passo que criamos para o endpoint secundário.

Agora, com tudo configurado e respondendo no mesmo endereço definido, basta desligar o nosso endpoint primário para vermos o trabalho do DNS failover em ação, bem simples e intuitivo.

Espero que este artigo seja útil para você definir uma estratégia de failover com poucos cliques e usando os serviços da AWS.