Colocated. Own the hardware.
Apache and MySQL are VERY finely tuned. Apache is running a FCGI socket that punts to FPM based PHP. This allows for pooled caching within PHP itself and removes virtually all apache overhead. Most of the apache box resources are chugging away at php-fpm. In fact apache is SO LOW in resource use I haven't even considered nginx. MySQL is using HugeTLB support and enormous InnoDB caches. We wouldn't be up now if stuff even occasionally hit disk. There is varnish running in front of Apache so I can now easily spin up cloud based apache nodes if it comes to it. I really don't want to cluster yet if I don't have to. I want to feel like I've really done everything possible to prevent that so that when I do scale I do as efficiently as possible. I've got a few options left ... nginx (doubt it will make much if any difference), delving into the slow areas of MyBB in PHP crunching (potentially VERY productive), and improving MyBB's ability to varnish cache for guests (potentially productive).
The next MyBB release has full 5.4 support, and I'm told the upgrade and switch PHP 5.4 will bring some more speed improvements as well.
Hardware is a 1U twin with each side having dual QC Xeons that are getting to be on the older side now ... Penryn (Core 2 Duo) era Harpertown 5400 series Xeons. Both have more RAM than they use. Both have RAID 1 Raptors.
The bottleneck right now is PHP's cpu demands.
There is an update coming out for the board software any day now that supports PHP 5.4 and purportedly should deliver some performance oomph.
The max load you just got was me turning on a profiler/debugger to examine how PHP is performing after I made some tweaks. It generated 120 MB of debug dumps in 20 seconds.
It is looking like I'll be upgrading the hardware before this coming football season. Hellooooooo $2-5K. And that's why we have Google ads. :)