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 building a MySQL database with a web front end for a client. The client and their staff will use this webapp on a daily basis, creating anywhere from a few thousand, to possibly a few hundred thousand records annually. I just picked up a second client who wishes to have the same product and will probably be creating the same number of records annually, possibly more.

In the future I hope to pick up a few more clients. In the next few years I could have up to 5 databases & web front ends running for 5 distinct clients, all needing tight security while creating, likely, millions of records annually (cumulatively across all the databases).

I would like to run all of this with Amazon's EC2 service but am having difficulty deciding on what type of instance to run. I am not sure if I should have several distinct Linux instances, one per client, or run one "large" instance which would manage all the clients' databases and web front ends.

I know that hardware configuration is rather specific to the task at hand. The web front ends will be using JQuery to make MySQL queries "pretty" and I will likely be doing some graphing of data (again with JQuery). The front ends will be using SSL for security, which I understand can add some overhead to the network speed.

I'm looking for some of your thoughts on this situation.


share|improve this question
up vote 0 down vote accepted

This question's pretty much impossible to answer without runtime characteristics for your queries, specific performance expectations, etc. So I'll just say this: start small and scale up as necessary. I'm also not really sure what you mean, specifically, by "millions of records annually," but even with modest hardware, you should be able to push 10-30K transactions/second without much fuss [as measured by sysbench].

As for distinct servers for each client? That sort of depends on what sort of data you're holding. If it's not really sensitive, save some money and run multiple databases/front ends on the same server, then spin off the larger ones as necessary. If you have sensitive data, though, it might not be a bad idea to run individual servers, so that if one's compromised, you don't lose the whole basket.

All that said, your question's really vague, and there isn't much to respond to.

edit: unless you're pushing massssiveee volumes of data, the SSL overhead's completely negligible.

share|improve this answer
Thanks for the reply. Sorry for the vagueness of the question. Despite such ambiguity, you've provided some good information for me to think about and helped me in my decision. – Garfonzo Jul 11 '11 at 6:04
Even if you are pushing massssiveee volumes of data, the SSL overhead is completely negligible. Never, ever forego SSL for any reason other than "I wouldn't mind if the whole world saw this traffic". – womble Jul 11 '11 at 6:22

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.