does having dedicated instances completely prevent noisy neighbor issues?

Due to sharing of hardware, AWS instances can be prone to 'noisy neighbor' issues, where one or more of your neighbor's instances hog resources from your instance.

This article suggests:

The most effective way to avoid noisy neighbors, however, is to pay extra for dedicated EC2 instances.

I'm assuming the above article is referring to dedicated EC2 instances providing hardware isolation.

Questions:

  1. Does having dedicated AWS instances completely prevent noisy neighbor issues?
  2. If it doesn't completely prevent, how much does it reduce the noise neighbor issue?

As I understand the article, it's suggesting that if you have a number of instances, they're likely to all be present on the same underlying hardware, and to use all that hardware, thus preventing other (potentially noisy) instances from running on that hardware - or at least making it much less likely that any such will.

If this understanding is right, your questions can be answered as follows:

  1. Only if you launch enough instances that they completely use a single underlying server, and no other instances can run thereon.

  2. The more "slots" on the underlying hardware you use, the less likely it is that someone else's instance can (a) run on it, and (b) turn out to be noisy.

There are several problems with this line of reasoning. Firstly, we don't know that all your instances will automatically cluster on the same hardware (this may be so; I just don't know that it is). Secondly, even if they do, we don't know how many instances you need to run in order to close "your" underlying hardware to other people's instances. Thirdly, even if we did, Amazon aren't stupid, and there's no such thing as a free lunch; if you run enough instances to completely monopolise a backend server, you would expect to pay about the same as simply renting a backend server.

It seems to me that the upshot is to recognise that (a) virtualised servers are cheap primarily because one can oversell them on the basis that not everyone uses all of their server's resources all the time, and (b) if you really want resources dedicated to you, you should rent a dedicated server.


Does having dedicated AWS instances completely prevent noisy neighbor issues?

Your own instances might be noisy neighbors to each other. Also, while you've paid Amazon to ensure that no one else's instances run on your underlying host, I don't believe it reserves an entire rack - so you could conceivably run into an issue where other hosts in the same rack are using more bandwidth than the rack has available.

If it doesn't completely prevent, how much does it reduce the noise neighbor issue?

I don't believe anyone but Amazon is able to answer this one.