Cloud Intelligence™
Adeus, MaxMind! Geolocalize requisições com o Google Load Balancer de graça
Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.
About Vadim Solovey
Founded DoiT in 2011 and have been here ever since — in every flavor of CTO, co-CEO, and now CEO. I started my career in 1999 building data centers before anyone called it "the cloud," and I've spent the two decades since trying to deliver on what the cloud was actually supposed to be. I still write code most weeks.
My personal page
ATUALIZAÇÃO: os user-defined request headers não são mais gratuitos;
Com frequência, preciso geolocalizar as requisições que chegam à minha aplicação, principalmente para fins de analytics — quero saber de onde vêm os usuários.
Em geral, basta saber o país, cidade, latitude e longitude da requisição de origem. Durante anos, usei o MaxMind só para isso e, apesar de ser uma ótima ferramenta, a versão comercial custa cerca de US$ 1.500 por ano — caro demais para uma necessidade tão básica.
Há pouco tempo, o Google lançou o suporte em beta para os " User-defined request headers", que permitem geolocalizar requisições que passam pelo Google Load-Balancer de graça. Vou mostrar como configurar isso na sua aplicação.
Para simplificar, vou partir do princípio de que você já tem a aplicação rodando no Google Cloud e roteia as requisições por meio do Google HTTP/S Load Balancer.
Primeiro, você precisa atualizar seu(s) backend(s) para adicionar o suporte aos user-defined request headers. Meu backend se chama "app" e este é o comando que usei:

Em resumo, estou pedindo ao Google Load Balancer para adicionar três cabeçalhos a cada requisição — " X-Client-Geo-Location", " X-Client-Geo-Region" e " X-Client-Geo-LatLong". Você pode dar o nome que quiser aos cabeçalhos, desde que NÃO seja "X-User-IP" e que não comecem com "X-Google" ou "X-GFE".
Cloud bill shouldn't be a mystery
One platform for AI and Cloud optimization.
Depois que o backend é atualizado, em poucos minutos você já vê os novos cabeçalhos aplicados em cada requisição:

Pronto — agora você tem informações de geolocalização em todas as requisições, de graça e de forma totalmente serverless!
E geolocalização não é a única coisa que dá para anexar às requisições. O Google também consegue informar o RTT (round-trip transmission) do cliente em ms, além da versão do TLS, cipher e hostname!
Atualização – setembro de 2024:
O Google atualizou os preços da geolocalização de requisições com o Google Load Balancer. Agora custa **US$ 0,75 a cada 1 milhão de requisições**, com teto de **US$ 500/mês**. Confira a documentação do Google para os detalhes mais recentes.
Quer mais conteúdos? Acesse nosso blog ou siga o Vadim no Twitter.