EC2 - Armazenamento Compartilhado - S3FS ou EBS?

9

Construindo meu serviço da Web no EC2 agora e ter uma única instância atrás de um balanceador de carga. É claro que vou atender a várias instâncias.

Minha idéia inicial era executar todas as instâncias como escravas idiotas e usar o S3 como armazenamento local. Para isso, comecei a usar o S3FS, mas, pelo que vi, não está realmente pronto para uso em produção em um ambiente de serviço da web. A gravação dos logs parece parecer muito tarde, se não nunca. Inúmeros problemas com o cache estranho, mesmo sem sinalizadores de cache, etc. Geralmente, é um pesadelo para se desenvolver.

Mas, as alternativas parecem poucas. Um deles é obviamente os volumes EBS, que podem ser anexados a uma única instância. Algumas soluções para compartilhar isso: -

  • Compartilhamento de SMB para outras instâncias. Ter um mestre e os demais escravos - obv precisa de redundância aqui com talvez vários volumes EBS?
  • Rsync compartilhando com outras caixas. Isso parece doloroso, considerando que não é persistente e será atualizado periodicamente. Possivelmente ok, se houver forçando scripts para atualizar quando grandes alterações ocorrerem.

A questão é ... o que as pessoas fazem? Parece um caso de uso totalmente comum, mas a variedade de respostas encontradas nos fóruns e até aqui no SF parece sugerir que não há uma resposta concisa ... é preciso ajuda!

cerâmico
fonte

Respostas:

0

Isso ocorre porque há muitas respostas, dependendo da sua familiaridade com as opções, com o que você se sente confortável, com o que está compartilhando e com que frequência ele será sincronizado, com o "sincronismo" necessário, como eles serão " será utilizado (sobressalente para pulsação? Somente leitura versus uma instância de gravação? Instâncias equilibradas?) e quão complicada você deseja que a configuração seja e qual aplicativo está usando (bancos de dados que podem se sincronizar? Aplicativos criados para armazenamento compartilhado ? ...)

Você pode usar o Rsync para agendar sincronizações, compartilhamentos de um servidor de arquivos, servidor NFS, DRBD "software RAID 1", etc ... depende do seu caso de uso específico e de como você está fazendo backup dos dados.

A resposta curta é que não há resposta para sua pergunta, pois depende do caso de uso.

Bart Silverstrim
fonte
Obrigado Bart. Eu temia esse tipo de resposta, embora fosse de esperar, suponho! O caso de uso é ... Eu tenho um serviço da Web orientado por PHP - ele também hospeda imagens, css e o restante (tudo isso pode ser portado para o padrão s3 / cloudfront), os DBs estão no RDS. As únicas coisas escritas são realmente os arquivos de log anteriores. - Estou indo para usar um EBS com um rsync para mantê-lo atualizado a partir do s3. E um script para enviar atualizações manualmente.
waxical
2

Um volume EBS direcionado para o S3 / CloudFront parece ser a melhor opção aqui, especialmente se você estiver preocupado com imagens, CSS, javascript, esse tipo de coisa.

O EBS será mais fácil de fazer snapshot / backup do que o S3, especialmente para o sistema de arquivos do servidor.

Você também pode designar um servidor como "mestre" e outro como "escravo" e apenas fazer alterações no "mestre", por exemplo.

Quanto ao registro, dê uma olhada em alguns dos serviços de registro em nuvem, como http://loggly.com/ ou https://papertrailapp.com/ .

HTH

Alex W
fonte