Balanceamento de Carga AWS/GCP com Cloudflare: Guia Completo

Como Implementar o Balanceamento de Carga entre AWS e GCP com Cloudflare

Descubra como utilizar o balanceador de carga (LB) da Cloudflare para distribuir o tráfego de sua aplicação entre a AWS (Amazon Web Services) e o GCP (Google Cloud Platform).

Em geral, aplicações web realizam o balanceamento de carga entre servidores ou serviços dentro do mesmo centro de dados.

Entretanto, para aplicações de missão crítica que necessitam de alta disponibilidade em nível global, torna-se essencial o uso de um balanceador de carga em nuvem.

Além da garantia de disponibilidade, existem outros fatores que justificam essa escolha:

  • Implementação de arquiteturas ativo-passivo ou ativo-ativo entre centros de dados.
  • Necessidade de um plano de recuperação de desastres eficiente.
  • Utilização de múltiplos centros de dados para direcionar requisições ao local mais próximo do usuário, reduzindo a latência.
  • Conformidade com regulamentações específicas.

A Cloudflare oferece soluções de balanceamento de carga local e global, permitindo o roteamento do tráfego para diversos centros de dados.

Algumas características do Cloudflare LB incluem:

  • Monitoramento de integridade integrado, possibilitando a rápida identificação e remoção de servidores com problemas.
  • Acionamento automático de failover quando o monitoramento de integridade detecta falhas.
  • Redução da latência por meio do direcionamento do tráfego para o servidor mais próximo do usuário.
  • Suporte a balanceamento de carga no nível DNS e protocolos HTTP(S), TCP e UDP.
  • Aderência de sessão, garantindo que as requisições sejam direcionadas ao mesmo servidor.

A configuração completa pode ser realizada tanto pelo painel de controle quanto pela API da Cloudflare.

As instruções a seguir podem ser aplicadas em qualquer plataforma de nuvem, como Azure, DigitalOcean, Alibaba, entre outras. Para fins de demonstração, optamos por usar o GCP e a AWS.

Detalhes da Configuração em AWS e GCP

Realizamos o provisionamento de um servidor no GCP e outro na AWS, com as seguintes configurações:

  • Instalação do Nginx.
  • Criação de um arquivo index.html personalizado para identificar qual servidor está respondendo à requisição.
  • Inicialização do Nginx, garantindo que a página esteja acessível em ambos os servidores.

Agora, vamos configurar o LB na Cloudflare.

Ativação do Balanceador de Carga da Cloudflare

Para este tutorial, utilizaremos o domínio bloggerflare.com.

Importante: o balanceador de carga da Cloudflare não é gratuito e seus preços partem de $5 por mês.

Assumimos que você já possui uma conta na Cloudflare. Caso contrário, crie uma e adicione seu domínio, conforme explicado em nosso artigo anterior.

  • Acesse sua conta Cloudflare e selecione o domínio para o qual deseja habilitar o balanceamento de carga.
  • Navegue até a aba “Tráfego” e ative o balanceamento de carga.

  • Configure os recursos de acordo com suas necessidades. Vamos seguir com a configuração mínima neste exemplo.

Para direcionar as requisições ao local mais próximo do usuário, habilite o Roteamento Geográfico.

  • Confirme a assinatura e ative o serviço.

Como demonstrado, é possível iniciar o balanceamento de carga a partir de $5 mensais, com suporte para dois servidores de origem e um intervalo de monitoramento de integridade de 1 minuto.

A acessibilidade da infraestrutura atual é notável. Há cinco anos, um balanceador de carga em nuvem por esse preço seria impensável.

Isso confirma que o Cloudflare LB está ativo e pronto para configuração.

Criação do Cloudflare LB

Após a confirmação da assinatura, você será redirecionado para a página de Tráfego.

  • Clique em “Criar balanceador de carga”.

  • Insira o domínio no qual deseja configurar o balanceamento de carga.
  • Expanda as opções de Aderência de Sessão e selecione “Por Cookie Cloudflare” caso necessite habilitá-la.

  • Defina um nome para o pool e adicione os servidores de origem (servidores para onde o tráfego será direcionado).

  • Em seguida, configure o monitoramento de integridade.

O monitoramento de integridade é crucial. A Cloudflare deixará de enviar tráfego para servidores defeituosos assim que uma falha for detectada.

  • Se o seu servidor estiver escutando na porta 80, selecione HTTP; caso contrário, para a porta 443, selecione HTTPS.

A Cloudflare também oferece opções avançadas para configurar o monitoramento de integridade, incluindo:

  • Método HTTP (GET ou HEAD).
  • Código de status HTTP esperado.
  • Validação do conteúdo do corpo da resposta.
  • Número de tentativas antes de considerar o servidor como íntegro ou não.
  • Validação do nome do cabeçalho.

Finalmente, salve a configuração e a implemente.

  • O LB iniciará o monitoramento de integridade e, em instantes, o status dos servidores será exibido como íntegro.

Com isso, o balanceador de carga da Cloudflare está pronto para receber tráfego e encaminhá-lo para os servidores de origem configurados.

Testando o Balanceador de Carga

Vamos realizar um teste básico para verificar o funcionamento.

  • Primeiro, acesse o domínio.

Perfeito!

O LB encaminhou a requisição para a VM do Google Cloud, e obtivemos a resposta. Também podemos verificar a requisição nos logs do Nginx.

162.158.167.174 - - [19/Dec/2017:10:25:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • Agora, vamos desligar o Nginx no GCP e acessar a página novamente.

  • E pronto! A página foi servida pelo servidor na AWS.

O LB desativou o membro do pool do GCP.

Por padrão, os logs de acesso do Nginx exibirão o IP da Cloudflare. Se precisar restaurar o IP do cliente, consulte este guia.

Conclusão

A implementação do balanceador de carga da Cloudflare é bastante simples, podendo ser realizada em menos de 15 minutos. Caso busque alta disponibilidade entre múltiplos centros de dados ou servidores de origem, experimente esta solução para avaliar seus benefícios.

Gostou deste artigo? Compartilhe com sua rede!