I couldn’t find any info out there comparing network latency across EC2 Availability Zones and inside any single Availability Zone. So I took 6 instances (2 on each US zone), ran some test using a simple ping, and measured 10 Round Trip Times (RTT). Here are the results.
Single Availablity Zone Latency
|Availability Zone||Minimum RTT||Maximum RTT||Average RTT|
It seems that at the time of my testing, zone us-east-1c had the worst RTT between 2 instances in it, almost twice as slow as the other 2 zones.
Cross Availablity Zone Latency
|Availability Zones||Minimum RTT||Maximum RTT||Average RTT|
|Between us-east-1a and us-east-1b||0.885ms||1.110ms||0.937ms|
|Between us-east-1a and us-east-1c||0.937ms||1.080ms||1.031ms|
|Between us-east-1b and us-east-1c||1.060ms||1.250ms||1.126ms|
It’s worth noting that in cross availability zones traffic, the first ping was usually off the chart, so I disregarded it. For example, it could be anywhere between 300ms to 400ms, and the the rest would fall down to ~0.300. Probably some lazy routing techniques by Amazon’s routers.
- Zones are created different! — At least at the time of the testing, if you have a cluster on us-east-1b it performs almost twice as fast with regards to RTT between machines than a cluster on us-east-1c.
- Cross Availability Zones latency can be 6 times higher than inner zone latency. For a network intensive application, better keep your instances crowded in the same zone.
I should probably also make a throughput comparison between and across Availability Zones. I promise to share if I get to test it.