Я отдаю предпочтение физическим серверам, это неизмеримо удобнее, чем неуправляемые хостинги типа хероку и нодеджицу, и значительно лучше, чем виртуалки, которые теряют производительность и лейтенси на слое виртуализации. Если нужно добиться действительно хорошего latency (отклик или отзывчивость) то другого решения нет, но прошу не путать это с производительностью т.е. rps (request per second) на виртуалках можно даже дешевле поднять, а вот отзывчивость системы на железе выше. Но это не всегда так критично. Кроме того, советую сделать таблицу и рассчитать стоимость одного ядра или даже 1Ghz для всех вариантов. Из-за ограничений ноды в памяти одного процесса, имеет смысл делать расчеты исходя из пропорции 2гб на 1cpu.
Я использую вот что:
1. Для маленьких проектов ($5 в месяц это очень хорошо)
https://www.digitalocean.com/
2. Для проектов среднего уровня (кое-кто на них ругается, но у меня лично никогда проблем не было с ними)
https://www.hetzner.de/
3. Для крупных проектов (есть замечательные 40-ядерные сервера MG-256)
www.ovh.ie