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 |
---|---|---|---|
us-east-1a | 0.215ms | 0.348ms | 0.263ms |
us-east-1b | 0.200ms | 0.327ms | 0.259ms |
us-east-1c | 0.342ms | 0.556ms | 0.410ms |
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.
Conclusions
- 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.
