1. Вам никто не назовёт этой цифры, без предварительного нагрузочного тестирования вашего конкретного приложения, а если назовёт, это будет заведомое враньё.
2. Зависит от того, где находится ваша целевая аудитория, какой у вас бюджет, какая будет нагрузка.
3. Имеет смысл выбирать после того, как будет понятно, что вам нужно по п.1 для начала можно обойтись каким-нибудь munin или cacti.
4. Например JМeter, подготовив тесты, которые будут приближены к предполагаемой нагрузке, но реальное тестирование на самом деле начнётся когда появятся пользователи, т.к. предсказания часто не сбываются.
Как мне кажется, надо не надо сразу строить кластер и расчитывать, что вам этого хватит навсегда, надо продумывать архитектуру приложения, которая позволит максимально бесполезно масштабироваться в дальнейшем, и начинать с минимальный ресурсов. И потом, по мере увеличения нагрузки, будет ясно, где узкое место и что надо добавить. Пользователей сразу не бывает много.