Prós:
Você pode acessar seu ambiente de desenvolvimento em qualquer lugar onde possa instalar as ferramentas de área de trabalho remota necessárias.
Você tem uma boa redundância se estiver fazendo o backup da imagem corretamente.
Contras:
Você está bloqueado para o tipo de instância. Você teria que reconstruir a instância do zero se quisesse migrar para tipos de instância mais novos e mais poderosos.
Seus tipos de instâncias não são ilimitados. Portanto, você precisa ter certeza de que as ofertas de instância da AWS cobrirão todas as suas necessidades de desenvolvimento.
Você não pode (facilmente) tirar sua instância do AWS da AWS e executá-la em outro lugar. Então você está bloqueado para a AWS. (Sim, eu sei que a Eggplant deve permitir que você liberte suas instâncias da AWS, mas ela fica na última tecnologia da AWS e só cumpre sua promessa)
Você está comprometido em ter uma conexão com a Internet para se desenvolver.
Você está sempre pagando pela sua máquina. Se a sua instância estiver sempre nos custos de hospedagem na AWS, poderá ultrapassar os custos de possuir e manter o hardware físico.
Você está sempre pagando pelo armazenamento. Supondo que você esteja mantendo as coisas em um volume do EBS que pode aumentar com o tempo.
Ocasionalmente, as instâncias da AWS morrem. Evidentemente, o mesmo acontece com o hardware físico, mas pelo menos você pode chutá-lo quando está sob sua mesa e morto. Com uma instância da AWS, você perdeu sua saída para o estresse. :)
Resumo:
Apesar de uma lista de cons mais longa que uma lista de pros, eu faço isso. É preciso um pouco de precaução para garantir que suas instâncias estejam seguras em caso de falha. Mas no geral é uma boa maneira de rolar.
Agora, se eu pudesse obter instâncias do OS X no AWS ...