Sistemas de arquivos compartilhados entre várias instâncias do AWS EC2

7

Eu tenho algumas instâncias do servidor do Windows em execução no Amazon EC2 e gostaria de torná-las um pouco mais tolerantes a falhas executando uma instância duplicada com balanceadores de carga.

O problema são os dados específicos, como exemplo, não adianta fazer failover de um servidor da Web para outro servidor da Web se o conteúdo da raiz do documento, por exemplo, C: / htdocs / (Apache) ou C: / Repositories ( VisualSvn Server) não são idênticos.

Existe uma maneira de compartilhar um volume em duas ou mais instâncias?

Minha ideia é compartilhar pasta entre as instâncias do EC2:

leia, não é possível anexar o mesmo volume de EBS a várias instâncias. Acredito também que a AWS também não é compatível com NFS, caso eu queira montá-los no NFS.

E finalmente, também verifiquei o bucket do S3 montado com s3fs, mas descobri que também não é uma boa opção.

Alguém pode me ajudar na direção certa?

    
por Simone Nigro 22.11.2014 / 12:38

4 respostas

5

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:

  1. servidor da web e
  2. 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.

    
por 22.11.2014 / 19:24
10

Este é um caso de uso que foi procurado por um bom tempo na AWS. Como descrito em este tópico , duas formas comuns de realizar isso foram usar o S3 ou NFS para compartilhar o acesso a dados entre instâncias.

Em 9 de abril de 2015 , a Amazon anunciou o Amazon Elastic File System (Amazon EFS) , que fornece o que você está solicitando no diagrama. p>     

por 03.06.2015 / 20:43
2

Acredito que a abordagem padrão do Windows Server ao seu problema de arquitetura seria implementar o bloco "Shared File Systems" em seu diagrama com um Espaço de Armazenamento Compartilhado do Windows agrupado, distribuindo os nós em pelo menos duas zonas de disponibilidade.

Teoricamente, você obtém algo que olha para os aplicativos como um compartilhamento de arquivos padrão, mas que não possui um único ponto de falha. Isso pode ser um exagero para sua situação, mas se você estiver indo para tolerância a falhas, isso ajudará a proteger contra cenários de falha adicionais.

Embora não seja específico para o seu problema, este artigo sobre o Cluster de Failover do Windows Server pode ajudar a dar uma idéia do escopo do esforço:

    
por 02.02.2015 / 22:14
0

isso é possível com o Amazon EFS, pls passam pelo link. link

    
por 27.09.2016 / 07:34