Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

I wanted to know how fast each cloud region is from my home connection, so I built a tool for it

When I pick a region for a new server, I used to search for a cloud latency map and go with whatever looked green. At some point it clicked that every one of those maps, and every provider's looking glass, runs its tests from a datacenter. Datacenters buy good transit, so the numbers look great. My home line is one ISP with one set of international links, and those get crowded every evening. None of that shows up on a map measured from somewhere else.

The question I actually had was simple: from my connection, at this time of day, which region is closest?

So I built Me2Cloud: m2c.1ms.dog

You open the page and press Start. The requests go from your browser straight to each provider. It covers 361 regions across 17 providers: AWS, Azure, Google Cloud, Oracle, IBM Cloud, DigitalOcean, Linode, Vultr, Hetzner, OVHcloud and Scaleway, plus Alibaba Cloud, Tencent Cloud, Huawei Cloud, Volcengine, Baidu AI Cloud and Naver Cloud.

Picks and the distribution of 172 regions, measured from a home connection in Beijing

Today at noon I ran 6 of them from home in Beijing, 172 regions in about three minutes on the quick setting. AWS Beijing came in at 7.7 ms and Alibaba Cloud Beijing at 8.2 ms. Azure's best was Seoul at 83 ms, Google Cloud's was Los Angeles at 175 ms, and Hetzner Singapore was 500 ms. Those are the numbers that decide where I'd put a server, and you can't get them from a test that starts in Frankfurt.

Results are grouped into five tiers by median latency (GOATed, Top tier, Solid, NPC, Cooked). If you tell it what the server is for (gaming, video calls, SSH or a website), it applies the matching latency and jitter limits and suggests three regions.

A few decisions took more thought than the rest.

Why HTTPS requests instead of ping?

Partly because a browser can't send ICMP. But I wouldn't want ping anyway: websites, APIs and anything tunneled over 443 run on TCP, and plenty of ISPs queue or throttle ICMP separately. Ping can look fine while pages crawl.

One region opened: five samples, the uncounted warm-up, the request method and the exact URL

The cost of HTTPS is a little server time on every request. I measured it per provider: roughly 0–5 ms on AWS, about 8 ms on Alibaba Cloud, about 20 ms on Huawei Cloud's object storage. Past 100 ms it doesn't matter; for regions very close to you, expect slightly higher numbers than ping. The first request pays for the TLS handshake and isn't counted. Every sample after that reuses the same connection, so it's one round trip.

What if I usually run a proxy?

Then you'll probably see Singapore, Tokyo and Frankfurt all within a few milliseconds of each other. That's the latency to your proxy node, not to the clouds. Before testing, the page checks a few things: whether your exit IP belongs to a datacenter, whether your timezone matches the exit country, whether WebRTC and HTTPS leave from the same address. If something looks off, it says so and gives you direct-connection rules for Clash/Mihomo, Surge, Shadowrocket, Quantumult X, Loon, sing-box, Xray or SwitchyOmega.

Direct rules: a remote rule set, or all 413 rules to paste

The rules went through a few versions. Early on some tools got suffix matches like amazonaws.com, which was easy but also sent every S3 download of yours direct, and in some countries direct is the slow path. Now the rules list only the 413 hostnames the test actually uses. No wildcards.

Won't hundreds of regions at once get you blocked?

If the requests come too fast, a provider's WAF or rate limit steps in and the numbers stop meaning anything. So each hostname gets one request at a time, at least 250 ms apart, 21 at most per run, and a host is skipped after three failures in a row. That's less traffic than loading an average web page.

Where does my data go?

Nowhere. There's no backend and no account, and results stay in your browser. Every request shows up in DevTools, and there's a request log on the page too.

Share image generated in the browser, without city or ISP

Sharing doesn't touch a server either. The share link packs the results into the URL itself, and the share image, like this one from the run above, is drawn on a canvas in your browser.

Open source, and easy to host yourself

MIT licensed: github.com/yt1988/me2cloud

It's a static site, and the built pages are already in the repo. On Cloudflare Workers static assets it's free and unmetered:

git clone https://github.com/yt1988/me2cloud && cd me2cloud
npx wrangler deploy

You don't need to deploy anything to test your own server, though. Add it as a custom endpoint on the page and it shows up in the same chart as the big providers.

What it won't tell you

It measures one place, yours, not your users'. Ask a few of them to run it too. It tests each provider's public API or storage endpoint rather than the VM you'd rent, so premium network tiers can behave differently. It doesn't test bandwidth or UDP. And run it again between 8 and 11pm; peak hour is the result that counts.

I built it to pick regions for my own projects. If there's a provider or region you'd like added, or an endpoint that doesn't respond from where you are, open an issue or leave a comment.

Comments

  • i like this one

  • @mans_xd said:
    i like this one

    Oh my gosh, you actually picked up on this quirky detail of mine.

    When I was choosing a domain name, I thought of this classic doge meme, and that’s how I ended up making this logo.

    I also came up with a nickname for this dog: FastDog.

    Thanked by 2mans_xd tux
  • LeviLevi Veteran

    @yt1988 said: for this dog: FastDog.

    Epic! How much do you pay for tokens? Can you share how to obtain them at a very cheap rates?

  • @Levi said: Can you share how to obtain them at a very cheap rates

    but vibe coding is....bad

    Thanked by 1forest
  • @JohnFilch123 said:

    @Levi said: Can you share how to obtain them at a very cheap rates

    but vibe coding is....bad

    To some extent, I agree with you.

    But it seems to have permanently changed something, and no one appears to have had a choice.

  • @yt1988 said:

    @JohnFilch123 said:

    @Levi said: Can you share how to obtain them at a very cheap rates

    but vibe coding is....bad

    To some extent, I agree with you.

    But it seems to have permanently changed something, and no one appears to have had a choice.

    Vibe coding is always bad.

    Programming with AI assistance for things like boilerplate, code review, etc. is fine.

    Thanked by 2Obelous Xrmaddness
  • @yt1988 said: To some extent, I agree with you.

    My point is slightly different. You will get bullied here, if, for some reason, your vide coded idea is not vibing with the community. Those bullies will tell you that they are super-dooper experienced coders and you are nobody. However, I have not seen a single coder who did something and shared it with the community. It is very comfortable to criticise on the sofa.

  • LeviLevi Veteran

    @JohnFilch123 said:

    @yt1988 said: To some extent, I agree with you.

    My point is slightly different. You will get bullied here, if, for some reason, your vide coded idea is not vibing with the community. Those bullies will tell you that they are super-dooper experienced coders and you are nobody. However, I have not seen a single coder who did something and shared it with the community. It is very comfortable to criticise on the sofa.

    Not like that. Bullying will begin when person advertise his "solution to a problem" fit for production. Which is laughable if generated entirely by LLM. 95% of projects advertised here as "fit for production" is trash and deserves bashing.

    On the other hand, there is small, private and cute code toys like this one. He does not seek any profit, does not advertise "production ready" or even "safe". There is demo, there is source code. I do not read that LLM gened text of his, but demo is sufficient. And logo is cute.

    Thanked by 1uhu
  • @Levi said: Bullying will begin

    Bullying must never take place, regardless.

  • @Levi said:

    @JohnFilch123 said:

    @yt1988 said: To some extent, I agree with you.

    My point is slightly different. You will get bullied here, if, for some reason, your vide coded idea is not vibing with the community. Those bullies will tell you that they are super-dooper experienced coders and you are nobody. However, I have not seen a single coder who did something and shared it with the community. It is very comfortable to criticise on the sofa.

    Not like that. Bullying will begin when person advertise his "solution to a problem" fit for production. Which is laughable if generated entirely by LLM. 95% of projects advertised here as "fit for production" is trash and deserves bashing.

    On the other hand, there is small, private and cute code toys like this one. He does not seek any profit, does not advertise "production ready" or even "safe". There is demo, there is source code. I do not read that LLM gened text of his, but demo is sufficient. And logo is cute.

    I agree with this, there's no real problem when someone vibe codes something more or less harmless and don't advertise it as production ready. I'd rather they write in the title of the post that it's vibe coded, though, and perhaps put an handwritten text with whatever english the can produce, instead of a big slop, with a link to the actual slop text in Github.

    The real problem is the shitload of new panels, vibe-coded by an "expert of 30 years", advertised as production ready

  • This looks really interesting. Will be trying it out in the next few days. Thanks for sharing!

    Thanked by 1tux
  • Looks pretty promising! Thanks

    Thanked by 1tux
  • @JohnFilch123 said:

    @Levi said: Bullying will begin

    Bullying must never take place, regardless.

    Bullying (shaming) people who try to offer something security-critical that's riddled with security bugs is a good thing. But OP isn't offering some cloud panel or SSH client so the most he'll get is eye rolls or "s/I wrote/Claude wrote/" comments.

  • nikionikio Member

    Putting aside all of the (off-topic) pearl-clutching over AI, there is a fundamental methodological problem with a HTTPS-based latency map: namely you are not controlling for the differences in the server-side networking stack.

    To illustrate, this tool shows the latency to the OCI infra in my city is 13ms. However, if I define a website (as a custom source) running on that OCI Infra, the resulting latency is 16ms. Another provider in the same city is 183ms, which suggests a networking side issue rather than a true latency issue.

    Not all APIs are created equal, either. There's a finite difference between serving a static site and retrieving something from an upstream DB that introduces extra latency.

    I'd be interested in seeing a normalized latency map comparing against a binary-identical software stack in each region, but that would be pretty expensive.

  • @nikio said:
    Putting aside all of the (off-topic) pearl-clutching over AI, there is a fundamental methodological problem with a HTTPS-based latency map: namely you are not controlling for the differences in the server-side networking stack.

    To illustrate, this tool shows the latency to the OCI infra in my city is 13ms. However, if I define a website (as a custom source) running on that OCI Infra, the resulting latency is 16ms. Another provider in the same city is 183ms, which suggests a networking side issue rather than a true latency issue.

    Not all APIs are created equal, either. There's a finite difference between serving a static site and retrieving something from an upstream DB that introduces extra latency.

    I'd be interested in seeing a normalized latency map comparing against a binary-identical software stack in each region, but that would be pretty expensive.

    You’re right. Different testing methods all have their limitations, so you need to combine them and make a judgment based on your specific needs.

  • @globalRegisters said:
    This looks really interesting. Will be trying it out in the next few days. Thanks for sharing!

    Any suggestions or ideas are welcome here in this thread or on GitHub. I’ll check them regularly.

    Thanks.

  • cloudblastcloudblast Member, Patron Provider

    No CloudBlast? :(

  • Kind of obvious once you say it

  • nikionikio Member

    @yt1988 said:

    @nikio said:
    Putting aside all of the (off-topic) pearl-clutching over AI, there is a fundamental methodological problem with a HTTPS-based latency map: namely you are not controlling for the differences in the server-side networking stack.

    To illustrate, this tool shows the latency to the OCI infra in my city is 13ms. However, if I define a website (as a custom source) running on that OCI Infra, the resulting latency is 16ms. Another provider in the same city is 183ms, which suggests a networking side issue rather than a true latency issue.

    Not all APIs are created equal, either. There's a finite difference between serving a static site and retrieving something from an upstream DB that introduces extra latency.

    I'd be interested in seeing a normalized latency map comparing against a binary-identical software stack in each region, but that would be pretty expensive.

    You’re right. Different testing methods all have their limitations, so you need to combine them and make a judgment based on your specific needs.

    Holy ChatGPT Batman!

    Nothing against vibecoding. Nothing against using AI to translate, either. But at least don't get your AI to do your engagement for you. What you just said is a non sequitur and a half - especially when your next engagement bate was with another user asking for suggestions. I just gave you a suggestion.

    Thanked by 1forest
  • @nikio said:

    @yt1988 said:

    @nikio said:
    Putting aside all of the (off-topic) pearl-clutching over AI, there is a fundamental methodological problem with a HTTPS-based latency map: namely you are not controlling for the differences in the server-side networking stack.

    To illustrate, this tool shows the latency to the OCI infra in my city is 13ms. However, if I define a website (as a custom source) running on that OCI Infra, the resulting latency is 16ms. Another provider in the same city is 183ms, which suggests a networking side issue rather than a true latency issue.

    Not all APIs are created equal, either. There's a finite difference between serving a static site and retrieving something from an upstream DB that introduces extra latency.

    I'd be interested in seeing a normalized latency map comparing against a binary-identical software stack in each region, but that would be pretty expensive.

    You’re right. Different testing methods all have their limitations, so you need to combine them and make a judgment based on your specific needs.

    Holy ChatGPT Batman!

    Nothing against vibecoding. Nothing against using AI to translate, either. But at least don't get your AI to do your engagement for you. What you just said is a non sequitur and a half - especially when your next engagement bate was with another user asking for suggestions. I just gave you a suggestion.

    It’s hard to prove, but there really is a person replying to posts here.

    I’m just a Chinese person whose English is poor but who loves creating new things. AI is a tool that lets me, someone who can’t code, create things that are useful to me or to others.

    In fact, I write in Chinese first, then use GPT-6-Luna to translate so I can communicate.

    Let me think about how to prove I’m a real person. For example, I really like the doge icon, so I incorporated it into my domain name.

    anyway, I hope this won’t cause you any trouble.

  • @yt1988 said: In fact, I write in Chinese first, then use GPT-6-Luna to translate so I can communicate.

    Use Google Translate or DeepL, otherwise you just sound like a slopbot. It changes your tone more than you realize.

  • dosaidosai Veteran

    Vibe coding put to good use.

    Thanked by 1tux
  • @forest said:

    @yt1988 said: In fact, I write in Chinese first, then use GPT-6-Luna to translate so I can communicate.

    Use Google Translate or DeepL, otherwise you just sound like a slopbot. It changes your tone more than you realize.

    Thank you for your advice.

  • NeoonNeoon Community Contributor, Veteran

    @mans_xd said:
    i like this one

    Thanked by 1mans_xd
  • can you support known LET providers? also a bug on mobile reso the providers selection can't be closed!

  • @edmarhub said:
    can you support known LET providers? also a bug on mobile reso the providers selection can't be closed!

    The current list is mainly made up of Tier 0 providers serving a global audience, making it broadly applicable to more people.

    For individual needs, the tool supports adding custom test nodes.

    Regarding the bug you encountered, could you provide a more detailed description of the issue, your environment, and the steps to reproduce it? (I tested opening and closing this window in Safari on iOS, and it worked normally.) If I can reproduce it, I’ll fix it as soon as possible.

  • @edmarhub said:
    can you support known LET providers? also a bug on mobile reso the providers selection can't be closed!

    Thanks again for your feedback. I was able to reproduce the issue in Safari on my iPhone, and it has now been fixed. I’ve tested it myself, and it’s working as expected.

    Feel free to test it again, and let me know if you run into any issues.

  • ProxysolidProxysolid Member, Host Rep

    It actually makes a lot of sense to measure it directly from the user's connection instead of relying only on the latency maps from the providers, especially because the results can change quite a lot depending on the ISP, the route, and even the time of the day.

    Something interesting would be to have the option to save the results and compare them at different times of the day. For example, one test in the morning and another one at night, just to see which regions stay more stable.

    With 361 regions you already have a pretty interesting amount of data!!

Sign In or Register to comment.