42

I have a micro instance on Amazon EC2 cloud.

Also the instance is small and it has vary low CPU and EAM usage but it generates a lot of content, so it can be considered like a web server serving small amount of static files (not of a big size) to many clients.

From the technical point of view there is no problems for such instance to handle the load serving many MBs per seconds.

What I'm considered is if there are limitation of bandwidth by Amazon itself. Many VPS service providers limit the bandwidths to lets say 10MB/s, are there such limits at Amazon and if they are what are they?

I couldn't find any reference.

Artyom
  • 754
  • 2
  • 7
  • 16
  • 1
    do you mean MB/s or Mb/s? there is a differance ;) MB/s is MegaByte and Mb/s or Mbits/s. usualy MB/s would be used to describe bandwith. – Zapto Dec 25 '12 at 10:32
  • 1
    Sorry typo normally Mb/s – Zapto Dec 25 '12 at 16:32
  • That link (to AWS source) is for bandwidth between the instance and EBS (Elastic Block Storage) and not to the Internet. –  Jun 04 '15 at 21:03
  • I suggest that you can work out approximate bandwidth of an instance by getting the ratio of instance CPU to total CPU of the server and relating that to the 40Mbps network throughput. Let's assume E5-2670 v2, same as the M3 instances use. A t2.micro has 10% of 1 core, 20 cores total, gives 1/200th of the server resources to the instance. 40Gbps / 200 = 0.2Gbps, ie 200Mbps, which roughly agrees with the comments in this question. – Tim Mar 18 '17 at 08:15

5 Answers5

29

Remembered that I had bookmarked a similar post a while back, and Cyberx86 posted an excellent answer with benchmark tests :)

Serverfault answer

Edit

From what I've been able to find on the AWS forums - It doesn't seem like the support people from Amazon want to answer that question. Their advice is to test it with an external source: AWS forum post from 2012

Older posts (post1, post2 refer to transfer speeds in coalition to instance size. The 2nd one mentions that the data was a part of the AWS documentation but later it was replaced with stuff about I/O.

small 250 mbps

large 500 mbps

xlarge 1000 mbps

These numbers seem to fit with the benchmarks you can find on google.

So sadly - I don't think you can find transfer speeds on their site anymore.

Qlue
  • 406
  • 4
  • 7
  • Answer not relevant at all. – Napster_X Dec 25 '12 at 12:23
  • 5
    Actually it is very relevant. I just trying to find official resources that define these I/O limits (100Mbs/250Mbs/1Gbs) – Artyom Dec 25 '12 at 13:49
  • 1
    @GeekRide since the question was regarding transfer speeds and there are no longer any official data from the AWS team. I thought benchmarks and answers from the forums would give the best indication of what one could expect. – Qlue Dec 26 '12 at 11:22
  • 3
    To expand on this answer i believe that the bandwidth limit is related to the IO performance of the instance. You can see the associated IO performance for each instance here http://aws.amazon.com/ec2/instance-types/. The numbers Qlue posted are equal to what I found last year not sure if they've since changed. The micro instance has a different IO performance than the small servers so I assume its less than 250 mbps. – bwight Dec 27 '12 at 22:56
  • I hope you mean Mbps, not mbps. A millibit per second is not a lot of bandwidth. – Mike Scott Mar 18 '17 at 05:41
6

Edit:

After @tomasz notified me, I checked the issue again.

I found a blog where the bandwidths are compared in;

http://epamcloud.blogspot.com.tr/2013/03/testing-amazon-ec2-network-speed.html?m=1

And I think, there is no a certain limit because of the different technical infrastructures by zone and the technology and infrastructure providers continues to improvement day by day.

If EC2 bandwidth limits are wanted to be known, each zone should be handled separately.


Now, there is a list on AWS docs.

The answer from its source;

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-ec2-config.html

efkan
  • 203
  • 3
  • 9
2

You say that the static files being served are not of a big size. The smaller they are, the more you'll be worried about packets per second instead of overall bandwidth on the network.

As with bandwidth, AWS doesn't publish any concrete numbers, only "Low", "Moderate", "High", etc. I ran into some problems with PPS limitations, and it was even less published than bandwidth numbers, so I ran some tests.

Here's what I found for various instance sizes:

t1.micro      8,473
t2.nano       9,807
t2.micro     19,391
t2.small     28,296
t2.medium    47,214
t2.large     49,512
c1.medium   110,575
m3.large    142,839
m1.large    157,557
m4.large    222,280
c4.large    233,450
r3.large    412,315
c3.large    475,996
i3.large    529,558
r4.large    544,981
c5.large    823,806

There was a lot more that I found, too, around guaranteed throughput and best effort PPS (packets per second). I put it into a blog on monitoring packets per second on EC2 where I show graphs and tables better than I can show in a comment.

To tie it back to Amazon's Network Performance Designation ("Low", "Moderate", "High"), you'd probably be shocked to know there's little correlation between actual bandwidth and actual PPS to those designations. They are worthless - only rely on test results, not published categories from AWS.

mbarlocker
  • 131
  • 2
0

You can use this tool inside your instance to get full information about bandwidth:

wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
./speedtest-cli

Output:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Amazon (54.72.143.50)...
Selecting best server based on latency...
Hosted by Digiweb (Dublin) [1.78 km]: 3.395 ms
Testing download speed........................................
Download: 171.74 Mbit/s
Testing upload speed..................................................
Upload: 281.61 Mbit/s

Hope it helps

  • You'll really want to trust https://github.com/sivel if you're doing this. It's also not necessarily going to tell you enough about the bandwidth available - other instances on the same underlying host may tie up bandwidth, it may be burstable bandwidth, etc. – ceejayoz Aug 24 '16 at 17:46
  • 1
    @ceejayoz, well this is for having an idea about the bandwidth available (not the exact and full informations), it's not stable and we all know that ec2 uses a complex algorithm for distributing cpu & bandwidth based on vm priority, the same thing goes for other cmp (omega from google). Besides you can test the performance of your app when using ec2 and other dedicated solution, that's what we did (testing t2.micro limits). Of course the download speed is not consistent, so we used c4.xlarge for production to increase instance priority and get more consistency – Nourdine Alouane Aug 25 '16 at 10:07
-1

It appears that EC2 is offering an Enhanced Networking feature for better network performance:

For supported Amazon EC2 instances, this feature provides higher packet per second (PPS) performance, lower inter-instance latencies, and very low network jitter.

Unfortunately the feature does not seem to be available for the T* instance range:

Currently C3, C4, D2, I3, I2 M4, X1 and R3 instances support Enhanced Networking. X1, P2, I3, R4 and m4.16xlarge instances provide the Elastic Network Adapter (ENA) interface for Enhanced Networking. C3, C4, R3, I2, M4 (except m4.16xlarge) and D2 instances, use Intel® 82599 Virtual Function Interface.

  • 1
    Enhanced networking separates EBS (network attached disk) bandwidth from network bandwidth. It increases network bandwidth only by moving other traffic to another interface. – Tim Mar 18 '17 at 08:11