Eu sugeriria evitar os compartilhamentos do NFS, pois eles criam um único ponto de falha para o seu sistema, e os clientes do NFS podem, às vezes, ter problemas para recuperar-se do tempo de inatividade do servidor NFS. O NFS não é realmente o "modo de nuvem" de fazer as coisas. A maneira da AWS de fazer o compartilhamento de dados entre máquinas virtuais envolve o uso de vários serviços descentralizados da AWS.
Para esse propósito específico, sugiro usar o serviço do AWS S3. Crie um bucket do S3 para suas versões de software, faça o upload de seus lançamentos e dê acesso às máquinas virtuais para que possam fazer o download dos lançamentos consultando o bucket. Também sugeriria usar funções do IAM para fornecer aos servidores virtuais de produção acesso somente leitura ao bucket do S3 sem nenhuma credencial de API codificada. Este esquema protege seus lançamentos e baldes caso um invasor consiga acessar seus servidores. Como não há credenciais de API codificadas, elas não podem sofrer engenharia reversa nem sofrer abuso em outro lugar.
Os ambientes de desenvolvimento e criação podem ser configurados de maneira semelhante - o servidor de criação ou o servidor de IC pode ter uma função de acesso de leitura / gravação ao bloco se ele residir na infraestrutura da AWS. Se o seu servidor de criação / CI estiver em outro local, você poderá configurar um grupo IAM com direitos de acesso apropriados ao S3 e criar um usuário do IAM com credenciais de API para uso em um site externo.
Você ainda precisa preparar uma AMI para que baixe e configure o release como deseja e inicie o aplicativo, mas pelo menos não precisará repetir esse processo toda vez que fizer uma nova versão. Usar alguma ferramenta de gerenciamento de configuração, como Chef, Puppet ou Ansible, provavelmente pode fazer tudo o que você deseja, mas é preciso alocar algum tempo para se familiarizar com as ferramentas e modelar seu ambiente com elas.
A infraestrutura (balanceadores de carga, asgs, securitygroups, funções, etc.) pode ser modelada, criada e mantida com o AWS CloudFormation. Se o seu ambiente se tornar mais complexo do que um único ELB e um único ASG, recomendo dar uma olhada nisso. Ao modelar sua infraestrutura com o CloudFormation, você pode criar e manter facilmente cópias exatas de todo o seu ambiente - uma para testar / qa e uma para produção, por exemplo. A descrição da infra-estrutura é um documento json que pode ser mantido em seu repositório VCS.
Espero que isso ajude.