Confira Elastic Beanstalk . Isso faz tudo para você. É um serviço bastante novo da AWS.
O Elastic Beanstalk manipula automaticamente os detalhes de implantação de provisionamento de capacidade, balanceamento de carga, ajuste automático de escala e monitoramento de integridade do aplicativo.
Suporta muitas das linguagens de desenvolvimento web comuns: PHP, .NET, Java, Python e Ruby. Não tenho certeza quais são seus idiomas preferidos, mas se for um dos itens acima, você achará mais fácil implantá-lo a partir do seu IDE (Eclipse ou Visual Studio).
Você ainda pode se conectar às suas instâncias, mesmo que elas tenham sido implantadas com o Beanstalk.
A maneira manual de fazer isso é simplesmente ter sua instância instalada com seu aplicativo, anexado ao EBS. A imagem do seu aplicativo pode ser lançada novamente com mais instâncias. Você terá que fazer algumas alterações nas configurações das diferentes instâncias, usando os campos USER_DATA da instância (novamente, se for muito complexo, procure novamente no Beanstalk ...).
Uma maneira mais automatizada é usar CloudFormation , que é basicamente um script que descreve seus diferentes servidores. Usando este script, você pode iniciar várias instâncias com muita facilidade. Você pode iniciá-los através do console da web ou usando as ferramentas CLI. Eu recomendo usar a biblioteca python de código aberto boto .
Você também pode considerar o uso do S3 para armazenar e compartilhar seus arquivos da web. Você não precisa se preocupar em replicar os arquivos entre as instâncias e também pode atendê-los com CloudFront ou outros serviços CDN .
Outra alternativa é usar o Route 53 , que é o serviço de DNS da AWS, mas tem recursos muito bons que permitem roteamento de seus dados para diferentes servidores da web para testes A / B ou com base na latência de seus servidores (LBR).