Como Load Balance Site entre GCP e AWS usando Cloudflare?

Saiba como você pode usar o balanceador de carga (LB) da Cloudflare para distribuir tráfego entre AWS (Amazon Web Services) e GCP (Google Cloud Platform).

A maioria dos aplicativos da Web exige ou faz balanceamento de carga entre servidores/serviços no mesmo data center.

No entanto, se você estiver executando aplicativos de missão crítica em que o tempo de atividade é necessário o tempo todo em todo o mundo, precisará de um balanceador de carga na nuvem.

Não apenas o tempo de atividade, mas pode ser muitos outros fatores.

Ex:

  • Requisito de data center ativo-passivo ou ativo-ativo
  • Plano de recuperação de desastres
  • Aproveitando os vários data centers para atender solicitações do local mais próximo
  • Observância

Cloudflare oferece opções de balanceamento de carga local e global, que ajudam a direcionar o tráfego para vários data centers.

Alguns dos recursos do Cloudflare LB são:

  • As verificações de integridade são incorporadas, para que você possa derrubar rapidamente um servidor defeituoso.
  • Acionar o failover quando a verificação de integridade falhar
  • Reduza a latência roteando o tráfego para o servidor mais próximo
  • Nível DNS e suporte HTTP(S), TCP e UDP
  • Aderência da sessão para garantir que a solicitação vá para o mesmo servidor

Você pode configurar tudo por meio do painel ou da API da Cloudflare.

  4 maneiras de assistir ao canal Hallmark sem cabo

Tecnicamente, as instruções a seguir se aplicam ao balanceamento de carga em qualquer plataforma de nuvem como Azure, DigitalOceanAlibaba, etc. Mas eu escolhi GCP e AWS para a demonstração.

Detalhes de configuração da AWS e GCP

Eu provisionei um servidor no GCP e na plataforma AWS com o seguinte.

  • Nginx instalado
  • Adicionado index.html com texto personalizado para mostrar que a página está sendo veiculada no respectivo servidor
  • Iniciado o Nginx, e a página pode ser acessada em ambos os servidores

Vamos passar para a Cloudflare para implementar o LB.

Ativando o balanceador de carga da Cloudflare

Tenho um domínio disponível (bloggerflare.com), que usarei neste laboratório.

Observação: o balanceador de carga da Cloudflare não é GRATUITO e preços começa em $ 5 por mês.

Suponho que você já tenha uma conta na Cloudflare; se não, você pode criar e adicionar o domínio, como expliquei no meu post anterior.

  • Faça login na Cloudflare e selecione o domínio em que deseja habilitar o balanceamento
  • Vá para a guia de tráfego e habilite o balanceamento de carga.

  • Configure os recursos com base no requisito. Estou procedendo com configuração mínima.

Se você deseja que as solicitações sejam redirecionadas para o local mais próximo, você deve habilitar o Geo Routing.

  • Confirme a assinatura e habilite-a.
  Como configurar um servidor FTP no Ubuntu com Webmin

Como você pode ver, você pode começar a partir de $ 5 por mês com dois servidores de origem e um intervalo de verificação de integridade de um minuto.

A infraestrutura é tão acessível agora. 5 anos atrás, você pode imaginar o balanceador de carga na nuvem por US $ 5?

Isso indica que o Cloudflare LB está ativado e pronto para ser configurado.

Criando Cloudflare LB

Levará alguns segundos para confirmar a assinatura e levá-lo de volta à página Tráfego.

  • Clique em Criar balanceador de carga

  • Insira o domínio no qual você deseja configurar o balanceamento.
  • Expanda Session Affinity e selecione By Cloudflare Cookie se precisar habilitar a aderência da sessão

  • Digite um nome de pool e é a origem (servidor para onde o tráfego deve ser redirecionado)

  • Em seguida, você pode configurar uma verificação de integridade.

Uma verificação de saúde é essencial. A Cloudflare parará de enviar tráfego para a origem defeituosa quando uma verificação de integridade falhar.

  • Se sua origem estiver escutando na porta 80, você poderá selecionar HTTP ou https para a porta 443.

A Cloudflare também permite definir configurações avançadas de verificação de integridade, como:

  • Método GET ou HEAD
  • Código de status HTTP esperado
  • Validação de conteúdo no corpo da resposta
  • Número de tentativas antes de considerarem saudável ou não
  • Validação do nome do cabeçalho
  Verifique a lentidão do seu dispositivo

E, finalmente, salve a configuração e implante

  • O LB realizará uma verificação de integridade e, em alguns segundos, você verá que o status está íntegro.

Ótimo, isso conclui que o balanceador de carga da Cloudflare está pronto para aceitar tráfego do mundo e encaminhá-lo para os servidores de origem configurados.

Testando o balanceador de carga

Vamos fazer um teste básico para ver se funciona.

  • Primeiro, tente acessar o domínio.

Incrível!

LB encaminhou uma solicitação para o Google Cloud VM e obteve a resposta. Eu posso ver a solicitação no 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"
  • Deixe-me desligar o Nginx no GCP e acessar a página novamente.

  • E aqui vai. Uma página solicitada é atendida pela AWS.

Posso ver que LB derrubou o membro do pool do GCP.

Por padrão, o IP da Cloudflare será mostrado nos logs de acesso do Nginx e, se você precisar restaurar o IP do cliente, consulte este guia.

Conclusão

A implementação de um balanceador de carga da Cloudflare é simples e pode ser iniciada em menos de 15 minutos. Se você estiver procurando por alta disponibilidade entre vários data centers ou servidores de origem, experimente para ver como funciona.

Gostou de ler o artigo? Que tal compartilhar com o mundo?