Amazon EC2 - muitas micro-instâncias versus única instância pequena / média

5

Eu tenho um aplicativo de bate-papo usando a pilha do Openfire, Tomcat6 e MySQL.

Atualmente, instalei todos esses servidores em uma única microinstância do Linux (613 MB de memória). Mesmo em baixa base de usuários 10-20 estou encontrando sobrecarga de CPU que é bastante óbvia aqui.

Como, eu sou novo no Amazon EC2, alguém pode me sugerir como escalar minha arquitetura de acordo com o uso do tráfego?

  • devo usar microinstâncias separadas para cada servidor de aplicativos (openfire, mysql, tomcat6)
  • devo usar uma única instância pequena ou média para toda a pilha de servidores.

    Alguns fatores no contexto:

  • alta confiança no MYSQL
  • alto uso de memória devido à transferência de arquivos
  • aplicativo da web interagindo com outros serviços da Amazon, como S3, SES
por shashankaholic 07.06.2012 / 11:04

3 respostas

4

Eu usaria pelo menos uma instância m1.small ou better m1.large. A micro instância realmente é apenas para desenvolvimento, porque os 613MB podem não ser suficientes em breve, mesmo com zero usuários. Além disso, você provavelmente verá muito tempo de roubo da CPU e seu servidor não reagirá algum tempo depois que você tiver um pico de cpu pequeno. Isso é muito chato.

Eu tentaria colocar toda a pilha em execução em cada instância, exceto no mysql-db. Dê uma olhada no RDS! Você não precisa configurar uma infra-estrutura mysql master-slave de alta disponibilidade!

    
por 07.06.2012 / 12:24
2

Não use microinstâncias para produção devido ao seu acelerador de CPU imprevisível. É mais econômico executar tudo em uma única instância, mas se você planeja crescer e dimensionar, é melhor projetar e desenvolver seu aplicativo em várias instâncias.

    
por 08.06.2012 / 10:49
0

A longo prazo, será preferível separar o servidor de aplicativos do banco de dados para permitir o máximo de flexibilidade e escalabilidade de cada camada. O RDS é uma boa opção por enquanto, mas lembre-se de que ele é limitado a uma única instância. Se você tiver um surto inesperado de tráfego além da capacidade da maior instância, poderá ter um tempo de inatividade e precisará configurar clustering com instâncias adicionais, que é complexo. Outra opção no EC2 é o serviço de banco de dados em nuvem do Xeround , ele é diferente do RDS, pois pode ser dimensionado automaticamente para instâncias adicionais para acomodar taxa de transferência adicional e lida com o agrupando automaticamente. Quanto ao servidor de aplicativos, você pode dimensioná-lo automaticamente com o recurso CloudWatch da Amazon.

    
por 29.08.2012 / 17:06