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).

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.

Andreas Wittig

Andreas Wittig

I’ve been building on AWS since 2012 together with my brother Michael. We are sharing our insights into all things AWS on cloudonaut and have written the book AWS in Action. Besides that, we’re currently working on bucketAV,HyperEnv for GitHub Actions, and marbot.

Here are the contact options for feedback and questions.