Если в двух словах, то намного важнее решения архитектурные, чем софтовые. Т.е. плохую архитектуру не спасет использование nginx'a, может только отложить проблемы. Да и касательно использования количества технологий, я бы советовал использовать минимум, но с умом. Лучше иметь 3 хорошо отлаженых узла, чем 10. Каждая новая технология будет только усложнять инфраструктуру.
Касательно доступа к базам, есть целый ряд решений, например шардинг и репликация. Некоторые базы данных поддерживают репликацию в пакете.
Также советую прочитать
Что такое highload.