Não é possível compartilhar um único volume do EBS entre várias instâncias do EC2.
Seu diagrama está descarregando os dados para um servidor compartilhado. No entanto, esse servidor compartilhado é simplesmente outro ponto único de falha. Então você não está salvando nada: se o AZ desse servidor ficar inativo, você perdeu os dados, mesmo que o servidor web / servidor VisualSVN em outro AZ ainda esteja em execução.
Você deve dividir seu servidor entre suas duas funções separadas em dois servidores / clusters separados para que possam ser gerenciados independentemente um do outro:
- servidor da web e
- servidor VisualSVN
Para o servidor da Web, você realmente precisa espelhar o volume em um cenário de várias instâncias ou pode manter suas instâncias a qualquer momento, sem perda de dados? Idealmente, você não salvaria os dados localmente na instância. Em vez disso, você salvaria todos os dados fora do servidor em um banco de dados ou no Amazon S3. Dessa forma, os dados estão disponíveis para todas as instâncias, o tempo todo. Se o servidor for perdido, nenhum dos dados será. Faça sua AMI "master" e crie todas as instâncias em um grupo de escalonamento automático a partir dessa AMI principal. Quando o código do servidor da web for alterado, implemente uma nova AMI, termine as instâncias antigas e crie novas a partir da nova AMI.
Para o servidor VisualSVN, a pergunta a ser feita é se o VisualSVN pode manipular os dados de volume alterando-o sem que o processo em execução se importe com isso. Por exemplo, se o processo em execução armazena em cache alguns dados na RAM, o que acontece se algum processo de sincronização do disco rígido aparecer por trás dele e alterar o disco rígido? Pode ser que o servidor VisualSVN simplesmente não consiga lidar com um cenário de várias instâncias. Dependendo da resposta para isso, você não poderá agrupar o servidor VisualSVN. É possível que o servidor VisualSVN tenha seu próprio recurso de cluster. Se assim for, então você deve investigar isso.