Mover um aplicativo para o Amazon EC2 com S3

1

Recentemente, criei um aplicativo da web. O aplicativo tem algumas partes estáticas (bibliotecas, classes etc) e partes dinâmicas (imagens, cache, log, etc) também. No entanto, algumas partes estáticas do aplicativo precisariam de alterações raras. Vamos chamá-los parcialmente estáticos. Como um todo, há partes estáticas , parcialmente estáticas e dinâmicas .

Por isso, estou tentando adaptar meu aplicativo ao Amazon AWS (EC2 e S3). Eu não acho que é uma boa idéia colocar todos os arquivos do aplicativo em uma instância do EC2. Estou pensando em colocar peças estáticas e parcialmente estáticas no EC2 e partes dinâmicas no S3.

  • Assim que eu obtiver o aplicativo estabilizado no EC2, vou criar um AMI e copie-o para novas instâncias.
  • Sempre que eu preciso mudar em partes parcialmente estáticas, então eu encerrar todas as instâncias do EC2, exceto uma, e fazer alterações. Depois de mudanças, eu criaria novas instâncias.
  • Peças dinâmicas, como arquivos enviados por upload, imagens etc., serão compartilhadas por todas as instâncias e não causarão problemas de sincronização.

Esta é uma maneira apropriada de usar o EC2 e o S3?

    
por mert 10.08.2012 / 00:35

1 resposta

1

I am thinking to put static and partially static parts to EC2 and dynamic parts to S3.

Acho que você está usando os termos static e dynamic de maneira diferente do que a maioria de nós entenderia. Dados estáticos seriam imagens enviadas por usuários. Dados dinâmicos seriam coisas geradas pelo código. Eu acho que você está se concentrando na frequência em que esses dados podem mudar. Talvez você queira dizer que as imagens dos usuários são estáticas no sentido de que, uma vez carregadas, elas nunca serão alteradas, ao contrário de um arquivo HTML estático que você pode atualizar de vez em quando. Seguindo em frente, vou me referir a estática e dinâmica em meus próprios termos, respectivamente: arquivos que são servidos como estão e arquivos que são códigos que geram dados.

Arquivos que são estáticos devem ser hospedados no S3. Mesmo que você possa eventualmente alterá-los ou parar de referenciá-los. Pode ser melhor simplesmente fazer com que cada versão de um arquivo tenha um nome exclusivo.

Os dados dinâmicos devem ser hospedados em suas instâncias do EC2. O ideal é que você tenha um método de atualizar esses dados sem encerrar instâncias, possivelmente um meio de um sistema de arquivos compartilhado que permita manter todos os nós síncronos sobre o que eles estão atendendo. Como alternativa, se pequenas diferenças no tempo em que os nós estão sendo veiculados em códigos diferentes pudessem ser aceitáveis, você também poderia usar scripts para enviar arquivos para fora.

    
por 15.08.2012 / 01:31