-
Uma técnica que estou pensando em usar é criar AMIs personalizadas que, após o início, farão o download dos dados necessários para auto-inicialização. No seu caso, você pode manter seus sites no S3 e baixar os arquivos na inicialização. Se você usar o CloudInit para o Ubuntu ou algo semelhante para outras distros, então você pode criar scripts do seu site facilmente. Eu acredito que ele só é executado na primeira inicialização, portanto, a terminação contínua dos nós deve ativar a versão atualizada do site. Nesse caso, você não precisará atualizar continuamente as AMIs.
-
Se você não tiver uma configuração do sistema de gerenciamento de configuração, será fácil manter um arquivo no S3 com a configuração necessária. Conforme você cultiva o Chef ou o Puppet, pode ser melhor, mas eles levam algum tempo para aprender. Este arquivo pode ser carregado da mesma maneira ou acionado com uma ferramenta como Fabric ou Capistrano.
Fabric e Capistrano podem ajudar você a acionar atualizações menores. Se você reutilizar o script CloudInit, não precisará codificá-lo duas vezes. Tanto o Fabric quanto o Capistrano podem se integrar à API da AWS com bastante facilidade para permitir a consulta dinâmica dos nós em execução, para que você não precise manter as listas de servidores em constante mudança.
Uma ferramenta para fazer AMIs lançadas recentemente chamada Packer também pode ser útil para você. Na minha primeira tentativa, consegui criar uma nova AMI em 30 minutos após o início do tutorial. Também pode ajudar a fazer AMIs para várias regiões.