Why is my VM created in GCE asia-east1 is getting a US IP address?
Solution 1:
As already mentioned in some of the comments, many external Geo IP services solely depend on SWIP database. Most of Google IPs are SWIP'ed to be Mountain View, CA. Therefore a VM living in a datacenter outside of U.S. might show a linked U.S. IP address. A detailed discussion and some suggestions are carried out on this thread.
Solution 2:
There are three types of IP addresses in Google Cloud: IPv4 Global, IPv6 Global and IPv4 Regional.
All Google IPv6 addresses are Global.
If you deploy a Global IP address, which can only be assigned to certain Google services such as load balancers and proxies, the IP address is not bound to any particular region. Google Global IP addresses are anycast addresses. The location can appear to be the closest Google Frontend (GFE) to the customer. Two different customers in different regions will have different routes.
If you factor in Google network tiers, standard and premium, trace routes will show more differences.
Regional IP addresses, which are used for services like Compute Engine, are created and assigned in a specific region. These IP addresses cannot be assigned to resources in different regions. Therefore when you select a Regional IP address you know for which region it exists, for your use case. Google can relocate IP addresses, so a defined region today might be different in the future.
IP Geolocation services cannot report reliable information for Google Global IP addresses. These services typically use the registered business address. I have not seen an instance where they report the actual physical data center as Google does not report this information to external sources.