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

Specifically I'm looking for techniques for scaling a web application which has no central database server, in the cloud, but general advice is great.

I have come across GlusterFS, which looks great, but I'm not yet clear how it fits into the architecture of a web application. This also is interesting to me.

Thanks for the advice and links.

share|improve this question

Of the top of my head I would look at Amazons SimpleDB beeing that you are in the aws ecosystem already. But its hard to say without more information about your application than its just "a web application".

share|improve this answer
Amazon's SimpleDB is frightfully expensive. I used it for about 10 hours one night, and discovered that they'd billed me for $50 of usage!? – Tom O'Connor Apr 11 '10 at 7:31
Thanks, I was hoping for more general discussion about this topic so I didn't include much info about our app. But since no one seems interested... we are a google-docs-style application and (at the moment) are storing user data in individual directories, each with an sqlite DB. We do this because our system will be both on and offline, and users can down/upload their data in this form. – jberryman Apr 12 '10 at 2:15

You could use Elastic Load Balancing to load balance a couple of nginex web server, then two or three application servers with Thin ( configured as a cluster. As Cloud DBMS you could use RDS, which is Amazon offer for MySql. You can share the sessions but using AR session storage or by using memchaced.

Thin is an application server for Ruby, but you can substitute Thin with Apache + mod_php, Tomcat or whatever.

The application servers should mount a clustered file system, such as GlusterFS, were you should put your code (the same code for any server).

Then using the command line tool of Amazon you can configure when the servers new instances should be created, for instance when a server reach the 70% of CPU usage.

You could use Varnish for static caching, installed in the same instance of the web server or using its own instance (better).

There are lot's of solutions, although the easiest one is to use Heroku.

share|improve this answer

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.