Supondo que você não esteja preocupado com a alta disponibilidade, se uma instância puder manipular a carga, coloque-as todas em uma única instância. Dito isso, eu colocaria algum monitoramento em torno desses serviços específicos para que você saiba quando é hora de eles terem seus próprios hosts. Você pode achar que serviços diferentes precisarão ser expandidos em taxas diferentes. A única boa maneira de ficar de olho é com bom monitoramento e instrumentação.
Você pode poupar muita dor de cabeça mais tarde, introduzindo alguma abstração entre os serviços. Por exemplo, certifique-se de que quando um serviço está chamando a API, ele o chama por algum nome (o DNS é ótimo para isso). Algo como api.myapp.com vai ficar bem. Talvez inicialmente, todos os nomes apontem para o mesmo host. Mas, no futuro, quando você precisar escalonar, poderá apontar esse nome para um Elastic Load Balancer com várias instâncias por trás dele e nada em seu aplicativo precisará ser alterado para falar com as novas instâncias.
Se você está preocupado com a alta disponibilidade, precisa de mais de uma caixa. ponto final.