Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am evaluating and trying to estimate hosting costs for an existing Java based web application and am currently trying to determine the most effective hosting solution. In looking at Amazon EC2 hosting and am trying to get an apples to apples comparison versus what we have established now with our parent companies data center.

Our current setup is non-virtualized. We have 3 servers:

  1. An under utilized public-facing Apache web server, acting as reverse-proxy setup.

  2. and 2 identical application servers, load-balanced, and behind a firewall.

Let's ignore the database.

My question is if such a 3 server setup is practical in comparison to simply having a single large instance? What I am getting at is being since I have to pay for the bandwidth usage, will network communication between my instances on their own subnet count against my bandwidth usage?

If so then the monolithic super instance would probably make more financial sense than say many smaller load balanced application servers behind their own firewall.

share|improve this question
Remember, one of the primary benefits of several servers behind a load balancer is that you can survive one of them going down. – ceejayoz May 10 '12 at 18:07
@ceejayoz Good point, on that fact alone it seems that multiple smaller servers is always better. – maple_shaft May 10 '12 at 18:11
Well, once you have 2-3, scaling further by scaling up can be better/less complex in some situations... but yes, multiple is usually better than just one. – ceejayoz May 10 '12 at 18:21

If you have multiple EC2 instances inside the same AWS availability zone (for example, us-east-1a), then traffic between them is not chargeable. So you can send data freely between your EC2 instances without worrying about your bill.

If they are in different regions, or even different availability zones within the same region, then you will be charged for traffic.

Knowing this, build your application in such a way as to make sense for the application (single instance or multiple instances) in conjunction with how your various instances will cost you for EBS storage and EC2 running time.

share|improve this answer
But if I understand correctly, I will be charged for data transfer to and from my EBS mount correct, it is just a different rate? Or is EBS usage have entirely to do with how much storage is being used? – maple_shaft May 10 '12 at 18:08
Sort of. You get charged for input/output, but not based on the amount of data. One I/O request could be for lots of data, or it could be for very little data. I/O costs are pretty minimal in my experience. – ceejayoz May 10 '12 at 18:20
@ceejayoz The problem is that we are paranoid with money and I will never get the funding to do this until I can give something more concrete than, I/O costs are pretty minimal in my experience. This pay as you need model makes the accountants nervous apparently. – maple_shaft May 10 '12 at 18:25
You won't get anything concrete until you benchmark your app yourself. We can't give you anything concrete, it all depends on what you are doing. – ceejayoz May 10 '12 at 18:30
Exactly. You'll need to actually run your app for a short while using multiple configurations so that you know (a) how much it will cost, and (b) the best cost/performance setup that works for you. – Matt Houser May 10 '12 at 19:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.