Tool: AWS region to region latency calculator

We had a project for work at one of my last jobs to create a replica infrastructure in Europe, our main one being in Canada (for legal reasons). During the conversation, there was a question as to whether we would need to replicate everything, or if the European services could leverage some of the Canadian ones.

Of course that would allow us to save a pretty penny on EC2 costs, but what about the end user performance impact of making requests that need to physically travel back and forth the Atlantic Ocean.

I embarked on the (quick) journey to build a tool that would estimate the minimum amount of time (ms) required for a packet to make that trip, based on physics.

The premise is that a packet of information may not travel faster than the speed of light. This premise is backed by the fact that the speed of light is the fastest speed at which energy, matter and information can travel. (source)

With this constant, along with the geographical positions of AWS data-centers, plus some maths for the actual distance on the globe (the earth is a sphere, after all), we are left with the theoretical minimal latency that can be expected for a packet to travel from one region to the other.

Now, the next step was to get a rough idea of a full round trip (or ping) time in ms. For this, I had to read into this paper of network hops and the added latency that is expected: (source)

Once put together, I was able to get the minimal round trip overhead from Europe (eu-west-1) to Canada (ca-central-1)

Ping: 53.89 ms

…and now comparing with actual numbers

Ping: 78.75 ms

It’s not exactly accurate, but it can give us a lot of insights:

  • We can plan SLAs more accurately for routes needing to reach other AWS regions,
    - We can estimate infrastructure overhead and potentially detect outages (if we take the full round trip time from the European service’s request, then subtract the minimal ping value and the Canadian service’s response time, we’re left with the infrastructure overhead)

Here’s the tool for those interested: https://gist.github.com/fed135/fdac7af0a49099ad45cc2547a45bf762

Anyways, that’s all I had for today.
Cheers

--

--

--

Building engineering organizations, one commit at a time.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Software Testing: Stress Testing & Penetration Testing

Carrying out a Project Plan

Designing a Robust and Scalable Kafka Integration

How to use multiple private gems in the same github repository?

Sample S3 Bucket Policies — Part 01

Parachute and UFO animations using CSS

Building a basic admin panel using Laravel (2) — CRUD

JejuDoge BSC

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
frederic charette

frederic charette

Building engineering organizations, one commit at a time.

More from Medium

AWS Monitoring Walkthroughs: Config vs CloudTrail vs CloudWatch

Creating an IAM User on AWS with Programmatic Access

Cloud Platforms like AWS and more….!!!!!

What is Amazon Cognito?