и насчет облачных хостингов нужно почитать информацию, а потом проанализировать. я вижу это очень бессмысленно. за возможность масштабирования платить значительно бОльшую цену? Как-то не очень.
а по теме есть несколько советов.
1. База данных на другом сервере это медаль о двух сторонах. С одной стороны, это снижение нагрузки на диски и память, но с другой стороны, это и снижение скорости обмена данными.
2. Есть такой язык программирования, который специально создан для твоей задачи. Порог вхождения очень высокий, но оно того стоит, если ты собираешься поднять качественный продукт. А называется он Erlang, и разработан для обработки большого количества соединений.
3. Если нет времени и желания переделывать, тогда есть пару советов по существу:
Сервер 1
- nginx (как веб-сервер, кеширующий сервер, балансер)
- php (FastCGI)
- memcache
Сервер 2
- nginx (как веб-сервер, кеширующий сервер, балансер)
- php (FastCGI)
- memcache
Сервер 3
- mysql-server (maria-db)
Все тюниться для максимальной производительности.
Некоторые задачи по обработке логики можно перенести на C. Но это тоже из области фантастики, если скоро запуск.