The simplest server would be the following:
1 Load Balancer
2 Web Servers
1 DB server
As far as session storage goes, it is not recommended to store in the Database. While it is fully supported, it places an additional load on the DB. Redis or Memcache would be better suited for this task. They are also fully supported out of the box for Community Edition.
A couple of tips:
- Have both web servers leverage bytecode caching such as APC or OPCache.
- Strip Apache of all unused modules to optimize memory consumption, by. By default, you should only need
mod_php
,mod_expires
,mod_deflate
,mod_mime
,mod_dir
,mod_authz_host
, andmod_authz_user
. - Configure your dedicated database server to maximize
innodb_buffer_pool_size
,query_cache_limit
,query_cache_size
,thread_cache_size
,max_connections
, andthread_concurrency
.
A few more tips (your results may vary):
- Have the Load Balancer set to Round-Robin instead of Sticky sessions, (evenrandom distribution of load).
- Turn off
AllowOverride All
and place your .htaccess values inside of yourVirtualHost
configuration for apache (fewer file requests).
There are guides available from Magento to give you more details about configurations: http://www.magentocommerce.com/whitepaper/