Cloud Intelligence™
¡Adiós, MaxMind! Geolocaliza requests con Google Load Balancer gratis
Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.
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
ACTUALIZACIÓN: los user-defined request headers ya no son gratuitos.
Muchas veces necesito geolocalizar las requests que llegan a mi aplicación, sobre todo con fines analíticos: quiero saber desde dónde se conectan mis usuarios.
Normalmente me basta con el país, la ciudad, la latitud y la longitud de la request de origen. Durante años usé MaxMind solo para eso y, aunque MaxMind funciona muy bien, la versión comercial cuesta cerca de $1,500 al año, lo cual es excesivo para necesidades tan básicas como las mías.
Hace poco, Google lanzó en beta los "User-defined request headers", que permiten geolocalizar gratis las requests que pasan por Google Load Balancer. A continuación te muestro cómo configurarlos en tu aplicación.
Para simplificar, voy a asumir que ya tienes tu aplicación corriendo en Google Cloud y que enrutas el tráfico mediante Google HTTP/S Load Balancer.
Lo primero es actualizar tu(s) backend(s) para que admitan los user-defined request headers. Mi backend se llama "app" y este es el comando que usé:

Básicamente, le indico a Google Load Balancer que agregue tres headers a cada request: "X-Client-Geo-Location", "X-Client-Geo-Region" y "X-Client-Geo-LatLong". Puedes ponerle a tus headers el nombre que quieras, siempre que NO sea "X-User-IP" y que no empiecen por "X-Google" ni "X-GFE".
Cloud bill shouldn't be a mystery
One platform for AI and Cloud optimization.
Una vez actualizado el backend, en pocos minutos empezarás a ver los nuevos headers en cada request:

¡Listo! Ya cuentas con información de geolocalización para todas tus requests, gratis y de forma totalmente serverless.
Y la geolocalización no es lo único que puedes sumarle a tus requests: Google también te entrega el RTT del cliente (round-trip transmission) en ms, así como la versión de TLS, el cipher y el hostname.
Actualización – septiembre de 2024:
Google actualizó los precios para geolocalizar requests con Google Load Balancer. Ahora cuesta **$0.75 por cada millón de requests**, con un tope de **$500/mes**. Revisa la documentación de Google para conocer los detalles más recientes.
¿Quieres más historias? Visita nuestro blog o sigue a Vadim en Twitter.