would appreciate suggestions/recommendations on server architecture of new site. it's D7 and mostly logged users.
here's the available hybrid cloud resources and the initial plan. would like to hear more suggestions to get the most of existing setup in terms of optimization and caching.
dedicated web: 8cpus, 12g ram
- apache (http on port 8080 and https on 443), http port 80 will go to varnish in another cloud server.
- apc (opcode caching only, not integrated iwth drupal)
dedicated db: 12cpus, 32g ram, ssd
- mysql
- memcache (just default config)
cloud server: (can use up to two 8gb instances)
- varnish (http traffic only)
things i consider but haven't figured out yet the best way on where to put them:
- drupal files (want to put it in dedicated web server as storage is enough), then probably serve images/video/media files in CDN
- solr/tomcat for Search. is tomcat a good choice? i noticed it usage a lot of ram from previous deployments. not sure if i can put it in one of dedicated servers or on it's one cloud instance.
thanks in advance

Comments
This is quite a setup already
This is quite a setup already :)
Not sure about your question. Is the setup currently too slow? How many requests per second does it have to manage? Is all the software (especially MySQL) tuned?
Hello Martijn -- i appreciate
Hello Martijn -- i appreciate the feedback. right now there's no setup but i am planing to have different sets of configuration that i can test and see which one would work best for my available resources and existing site.
do you have recommended setup or config for varnish for authenticated users?
thank you!
Personally I wouldn't bother
Personally I wouldn't bother with Varnish if most traffic is authenticated users..
As mentioned above there is a lot to be gained from tuning over piling in more server capacity.. Apache and PHP can be run in a number of different ways and MySQL has a ton of settings that can be tuned to your specific workload..
Without any real numbers to work from so no indication of where the load will be I would probably switch the servers around with the 12core/32G server for the web server and the 8core/12G server for the DB.. I would run memcached and APC on the 32G server as well..
Again depending on traffic patterns and assets being delivered in each page load a CDN is probably a good idea..
Another option to consider is using a Solr provider.. Something like the Acquia Search product.. So you don't have to worry about maintaining and tuning it yourself..
What is the current load on your site and what hardware are you currently using?
I would keep varnish even for authenticated users.
I would keep varnish even if you expect most traffic to be from authenticated users. Some event can go viral and get a lot of people visiting your site once and bouncing away, or a miss configured web crawler can slam your site. Something can clear your CDN and cause a brief period where the CDN is reloading all the assets. A good principle is to try to avoid having any way someone could clog up your site on purpose, and varnish addresses that.
Some people are moving towards not using varnish / apache / mod_php but instead using nginx with caching / php-fgci.
A reverse proxy, whether it is nginx or varnish, can perform well enough that you may not need to pay extra for a CDN, depending on how much bandwidth you are putting out.
As rgristroph mentioned there
As rgristroph mentioned there is a big move away from apache to nginx..
Irrespective of the web server in my opinion PHP should always be run under PHP-FPM on any server that is more than a development server or just running a light site.. Both nginx and apache 2.4 can directly connect to PHP-FPM.. You can then tune the PHP pool to your needs.. I don't think mod_php should ever be used on a production server unless you don't mind wasting lots of ram that could be put to far better use..
Perhaps an alternative setup instead of varnish is a use a nginx setup with microcaching?
http://fennb.com/microcaching-speed-your-app-up-250x-with-no-n
Maybe take your 4 servers (2x dedi and 2x cloud) and set them up like this..
1x Dedicated for DB..
1x Dedicated for Apache or Nginx with PHP-FPM (with APC) and Memcached..
1x Cloud server Apache or Nginx with PHP-FPM (with APC) and Memcached..
1x Cloud server with Nginx as load balancing proxy to two web servers weighed to send more traffic to the dedicated web server.. Maybe with microcaching..
Just an alternate idea.. :)