Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Adieu MaxMind ! Géolocalisez vos requêtes gratuitement avec Google Load Balancer

By Vadim SoloveyApr 24, 20182 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

gcp-load-balancer

MISE À JOUR : les en-têtes de requête personnalisés ne sont plus gratuits.

J'ai souvent besoin de géolocaliser les requêtes qui arrivent sur mon application, principalement à des fins analytiques, autrement dit pour savoir d'où viennent mes utilisateurs.

En général, il me suffit de connaître le pays, la ville, la latitude et la longitude de la requête d'origine. Pendant des années, j'ai utilisé MaxMind uniquement pour cela. MaxMind fait très bien le travail, mais la version commerciale coûte environ 1 500 $ par an, ce qui reste excessif pour des besoins aussi basiques que les miens.

Google a récemment publié en bêta la prise en charge des User-defined request headers, qui permet de géolocaliser gratuitement les requêtes passant par Google Load Balancer. Je vais vous montrer comment les configurer pour votre application.

Par souci de simplicité, je pars du principe que votre application tourne déjà sur Google Cloud et que vous routez les requêtes via Google HTTP/S Load Balancer.

Vous devez d'abord mettre à jour votre ou vos backends afin de prendre en charge les en-têtes de requête personnalisés. Mon backend s'appelle app et voici la commande utilisée :

google-cloud-load-balancer

Concrètement, je demande à Google Load Balancer d'ajouter trois en-têtes à chaque requête : X-Client-Geo-Location, X-Client-Geo-Region et X-Client-Geo-LatLong. Vous pouvez nommer vos en-têtes comme bon vous semble, à condition qu'ils ne s'appellent PAS X-User-IP et qu'ils ne commencent pas par X-Google ni par X-GFE.

Une fois le backend mis à jour, les nouveaux en-têtes apparaissent au bout de quelques minutes sur chaque requête :

load-balancer-gcp

Félicitations — vous disposez désormais des informations de géolocalisation de toutes vos requêtes, gratuitement et de façon entièrement serverless !

Et la géolocalisation n'est pas la seule donnée que vous pouvez enrichir. Google peut également vous fournir le RTT client (round-trip transmission) en millisecondes, la version TLS, le chiffrement utilisé et le nom d'hôte !

Mise à jour — septembre 2024 :

Google a revu sa tarification pour la géolocalisation des requêtes via Google Load Balancer. Le service coûte désormais **0,75 $ par million de requêtes**, plafonné à **500 $/mois**. Pensez à consulter la documentation officielle de Google pour les derniers détails.

Envie d'autres articles ? Consultez notre blog ou suivez Vadim sur Twitter.