Как собрать конфиг сервера под заданные требования?
Вы же понимаете, что 5-10 виртуалок означает разницу примерно в два раза?
Посчитайте требования одной виртуалки. Если вы знаете, какая там будет ОС, какого объема будет занимать место ваш сайт и почта - бывает же, что у юзеров 100 мегабайт почтового ящика хватает на полгода, а бывает 10 гигабайт засрут аттачами за месяц.
Считать должен тот, кто может подсчитать нагрузку. Если у вас нет данных, вы не посчитаете. И тогда проще заказывать облачные vps, которые можно в случае чего легко модифицировать без переустановки.
Тут нет четкого ответа, могут быть только рекомендации.
Все сильно зависит от того, насколько плотно будут использоваться  виртуальные машины/контейнеры.
В вашем варианте, я бы использовал контейнеры, так как плотность контейнеров и нагрузка на машину минимально. Можно рассматривать разные варианты от openvz/lxd/docker , до коммерческих продуктов типа proxmox/virtuozzo и наверно kubernetes , но он больше для разработчиков. 
Файловую систему лучше использовать ZFS , если речь не идет о коммерческих продуктах (исключение proxmox).
Это даст возможности Raid, кеш дисковый подсистемы L2. Те можно будет использовать часть памяти как кеш, далее идет как кеш SSD и уже обычные HDD. Надо понимать, что лучше купить много памяти и это все имеет смысл, если будут частые обращение к файловой подсистеме. Но это будет лучший вариант, чем под каждую виртуальную машину SSD (в экономических целях) 
По поводу 1000 подключений одновременно, они бывают разные и могут вызывать разную нагрузку. Как видите тут нет четкого ответа, можно только провести тесты.