Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Tschüss MaxMind! Anfragen kostenlos mit dem Google Load Balancer geolokalisieren

By Vadim SoloveyApr 24, 20182 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

gcp-load-balancer

UPDATE: User-defined Request Headers sind nicht mehr kostenlos.

Oft muss ich die Anfragen an meine Anwendung geolokalisieren – vor allem zu Analysezwecken, sprich: Ich will wissen, woher meine Nutzer kommen.

Meist genügen mir Land, Stadt, Breitengrad und Längengrad der eingehenden Anfrage. Genau dafür habe ich jahrelang MaxMind verwendet. MaxMind ist ein hervorragender Dienst, doch die kommerzielle Version schlägt mit rund 1.500 US-Dollar pro Jahr zu Buche – für meine Grundanforderungen schlicht zu viel.

Vor Kurzem hat Google die Beta-Unterstützung für "User-defined Request Headers" veröffentlicht. Damit lassen sich Anfragen, die über den Google Load Balancer laufen, kostenlos geolokalisieren. Ich zeige Ihnen, wie Sie das für Ihre Anwendung einrichten.

Der Einfachheit halber gehe ich davon aus, dass Ihre Anwendung bereits auf Google Cloud läuft und Sie die Anfragen über den Google HTTP/S Load Balancer leiten.

Zunächst müssen Sie Ihre Backends so anpassen, dass sie User-defined Request Headers unterstützen. Mein Backend heißt "app" – hier der Befehl, den ich verwendet habe:

google-cloud-load-balancer

Im Grunde weise ich den Google Load Balancer an, jeder Anfrage drei Header mitzugeben: "X-Client-Geo-Location", "X-Client-Geo-Region" & "X-Client-Geo-LatLong". Sie können Ihre Header frei benennen, solange sie NICHT "X-User-IP" heißen und nicht mit "X-Google" oder "X-GFE" beginnen.

Sobald das Backend aktualisiert ist, tauchen nach wenigen Minuten die neuen Header in jeder Anfrage auf:

load-balancer-gcp

Glückwunsch – Sie haben jetzt für all Ihre Anfragen Geolokalisierungsdaten, kostenlos und komplett serverless!

Geolokalisierung ist dabei längst nicht alles, was sich Anfragen mitgeben lässt. Google kann Ihnen auch die Client-RTT (Round-Trip-Time) in ms sowie TLS-Version, Cipher und Hostname liefern!

Update – September 2024:

Google hat die Preise für die Geolokalisierung von Anfragen über den Google Load Balancer angepasst. Sie kostet jetzt **0,75 US-Dollar pro 1 Million Anfragen**, gedeckelt bei **500 US-Dollar/Monat**. Die aktuellen Details finden Sie in der Google-Dokumentation.

Lust auf mehr? Schauen Sie in unseren Blog oder folgen Sie Vadim auf Twitter.