Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Addio MaxMind! Geolocalizzare le richieste gratis con Google Load Balancer

By Vadim SoloveyApr 24, 20182 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

gcp-load-balancer

AGGIORNAMENTO: gli header di richiesta personalizzati non sono più gratuiti;

Mi capita spesso di dover geolocalizzare le richieste in arrivo alla mia applicazione, soprattutto a fini analitici: voglio sapere da dove arrivano i miei utenti.

Di norma mi bastano paese, città, latitudine e longitudine della richiesta di origine. Per anni mi sono affidato a MaxMind proprio per questo motivo e, sebbene MaxMind sia un ottimo servizio, la versione commerciale costa circa 1.500 dollari l'anno: per le mie esigenze di base è davvero troppo.

Di recente Google ha rilasciato il supporto in beta per gli "User-defined request headers", che permettono di geolocalizzare gratuitamente le richieste che transitano per il Google Load Balancer; in questo articolo le mostro come configurarli per la sua applicazione.

Per semplicità, do per scontato che la sua applicazione giri già su Google Cloud e che il traffico sia instradato tramite Google HTTP/S Load Balancer.

Per prima cosa dovrà aggiornare il suo backend (o i suoi backend) abilitando il supporto agli header di richiesta personalizzati. Il mio backend si chiama "app" ed ecco il comando che ho usato:

google-cloud-load-balancer

In sostanza, sto chiedendo al Google Load Balancer di aggiungere a ogni richiesta tre header: "X-Client-Geo-Location", "X-Client-Geo-Region" e "X-Client-Geo-LatLong". Può dare ai suoi header il nome che preferisce, purché non sia "X-User-IP" e non inizi con "X-Google" o "X-GFE".

Una volta aggiornato il backend, dopo qualche minuto vedrà comparire i nuovi header su ogni richiesta:

load-balancer-gcp

Congratulazioni: ha appena ottenuto le informazioni di geolocalizzazione su tutte le sue richieste, a costo zero e in modalità completamente serverless!

La geolocalizzazione, però, non è l'unico dato che può aggiungere alle richieste. Google può fornirle anche l'RTT (round-trip transmission) del client espresso in ms, oltre a versione TLS, cipher e hostname!

Aggiornamento – settembre 2024:

Google ha rivisto i prezzi per la geolocalizzazione delle richieste con Google Load Balancer. Il costo è ora di **0,75 $ ogni 1 milione di richieste**, con un tetto massimo di **500 $/mese**. Le consigliamo di consultare la documentazione ufficiale di Google per i dettagli aggiornati.

Vuole leggere altri articoli? Visiti il nostro blog oppure segua Vadim su Twitter.