🎉 We are launching a new weekly show: Hot off the Cloud

🎉 We are launching a new weekly show

EC2 Network Performance Cheat Sheet

Andreas WittigUpdated 12 Oct 2018

What is the maximum network throughput of your EC2 instance? The answer to this question is key to choosing the type of an instance or defining monitoring alerts on network throughput.

EC2 Network Performance Cheat Sheet

Unfortunately, you will only find very vague information about the networking capabilities of EC2 instances within AWS’s service description and documentation. That is why I run a network performance benchmark for almost all EC2 instance types within the last few days. The results are compiled into the following cheat sheet.

The data analysis in the following table shows the burst and baseline throughput of each instance type. The burst throughput is defined as the 95th percentile, which means the throughput was at least reached for 3 minutes. The baseline throughput is defined as the 10th percentile, which means the throughput was reached at least for 54 minutes.

INSTANCE TYPE Baseline (Gbit/s) Burst (Gbit/s)
m5.large 0.74 10.04
m5.xlarge 1.24 10.04
m5.2xlarge 2.49 10.04
m5.4xlarge 4.97 10.04
m5.12xlarge 10.04
m5.24xlarge 21.49
t3.nano 0.03 5.06
t3.micro 0.06 5.09
t3.small 0.13 5.11
t3.medium 0.25 4.98
t3.large 0.51 5.11
t3.xlarge 1.02 5.11
t3.2xlarge 2.04 5.11
Additional instance types can be found in the download below.

Download the free EC2 Network Performance Cheat Sheet (XLSX format).


Looking for a new challenge?

  • tecRacer

    Cloud Consultant • AWS Migrations

    tecRacer • Premier AWS Consulting Partner • Germany, Austria, Portugal, and Switzerland
    Assessment Transformation Change Management
  • DEMICON

    Senior Lead Full Stack Developer

    DEMICON • AWS Advanced Consulting Partner • Remote
    AWS JavaScript/TypeScript Angular React

Methodology

I have run the network performance benchmark in us-east-1 on April 12th, 2018 using iperf3. Each benchmark run took 60 minutes, and a data point was recorded every minute. A fresh c5.18xlarge was used as the counterparty for the network benchmark of each instance type. I have published the source code of the network benchmark at widdix/ec2-network-benchmark.

The benchmark measured the network performance of the following instance types.

c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge
c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge
d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge
g3.4xlarge, g3.8xlarge, g3.16xlarge
h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge
i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal
m3.medium, m3.large, m3.xlarge, m3.2xlarge
m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge
m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge
p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge
r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge
r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge
r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.12xlarge, r5.24xlarge
t1.micro
t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge
t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge
x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge
z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge

Update: I run the network performance benchmark for t3.*, i3.metal, and z1d.* at September 25th, 2018.

Disclaimer

Please note, that the network benchmark was just a random sample and does not claim to be 100% accurate. Therefore, you should treat the EC2 Network Performance Cheat Sheet as the first guide when choosing an instance type based on your network throughput needs. If network throughput is critical to your infrastructure, you should run network benchmarks yourself to verify my results.

One more thing

Read on and learn how to monitor the network utilization of your EC2 instances. On top of that, use marbot to receive CloudWatch alarms via Slack.

Become a cloudonaut supporter

Andreas Wittig

Andreas Wittig ( Email, Twitter, or LinkedIn )

We launched the cloudonaut blog in 2015. Since then, we have published 360 articles, 49 podcast episodes, and 48 videos. It's all free and means a lot of work in our spare time. We enjoy sharing our AWS knowledge with you.

Please support us

Have you learned something new by reading, listening, or watching our content? With your help, we can spend enough time to keep publishing great content in the future. Learn more

$
Amount must be a multriply of 5. E.g, 5, 10, 15.

Thanks to Alan Leech, Alex DeBrie, ANTHONY RAITI, Christopher Hipwell, Jaap-Jan Frans, Jason Yorty, Jeff Finley, Jens Gehring, jhoadley, Johannes Grumböck, Johannes Konings, John Culkin, Jonas Mellquist, Juraj Martinka, Kamil Oboril, Ken Snyder, Markus Ellers, Ross Mohan, Ross Mohan, sam onaga, Satyendra Sharma, Shawn Tolidano, Simon Devlin, Thorsten Hoeger, Todd Valentine, Victor Grenu, and all anonymous supporters for your help! We also want to thank all supporters who purchased a cloudonaut t-shirt.