Whilst the exact answer will vary according to your web application’s architecture, we recommend the following cluster architectures to back a typical site as it grows, progressing in order:
- Single small server with standard disk, running entire LAMP stack
- Single large server with dedicated disk, running entire LAMP stack
- Multiple large servers in classic 3-tier web application architecture, interconnected over private network VLAN:
- Clustered database servers with dedicated disk
- Front-end application servers with standard disk
- Load balancer(s) running Pound, HAproxy, etc
Note that in the second stage a single larger server with dedicated disk will typically give better performance than splitting immediately into multiple small servers, since disk I/O is improved and there are no extra latencies from cross-network communication.