Зависит от многих параметров.
Как минимум нужно знать, сколько вам нужно ресурсов на одного пользователя, сколько ожидается пользователей, с какими пиками и так далее. Сделать поправку на утечки памяти.
У облачных серверов есть одно серьезное преимущество перед железными - вы можете быстро получить буст в производительности (зачастую автоматически) либо необходимое количество машин для создания кластера.
Плюс, инфрастуктура виртуализации поддерживается не вашими силами, а силами провайдера облачного сервиса.
Тем не менее, железные сервера выигрывают в денежном плане - они дешевле.
Подведем итог: если вы ожидаете константное потребление ресурсов и малый прирост пользователей, более-менее ровный график загрузки серверов - смотрите в сторону железных машин.
Если ожидаете большие скачки по загрузке, необходимость кластеризовать решение - облачные сервера будут вам удобнее.
Это наивный подход, но он работает.