O que é melhor para implantar um site + DB no EC2: 2 VM pequena ou grande?

3

Estou planejando a implantação de um site de tamanho médio com um banco de dados padrão do SQL Server. Eu escolhi o Amazon EC2 para implantá-lo. Agora tenho que escolher entre essas duas opções:

1) obtenha 2 instâncias pequenas (1 núcleo cada, 1.7 GB de ram cada): uma para o front-end do IIS, uma para executar o banco de dados. Nota: estas "pequenas instâncias" só podem executar a versão de 32 bits do Win2008 Server

2) uma única instância grande (4 núcleos, 7,5 gb de ram) onde eu instalaria o IIS e o SQL Server. Nota: esta grande instância só pode executar a versão de 64 bits do Win2008 Server

O que há de melhor em termos de desempenho, escalabilidade, facilidade de gerenciamento (inicie uma nova instância enquanto faço backup da instância principal), etc.

Todas as sugestões e pontos de vista são bem-vindos!

    
por devguy 16.05.2010 / 18:11

5 respostas

1

As duas imagens provavelmente serão melhores para escalabilidade, administração e gerenciamento geral.

A imagem única provavelmente será mais barata, especialmente se você nunca precisar dimensionar muito esse site.

O desempenho dependerá em grande parte da sua implementação, mas provavelmente será semelhante nas duas configurações. A imagem única tem mais RAM e núcleos de processamento; isso pode ser muito importante para sua implementação (ou talvez não faça diferença nem um pouco).

    
por 16.05.2010 / 21:22
1

Esta parece ser uma pequena decisão orçamentária.

Eu tomaria o grande exemplo porque você tem mais reserva, memória sábia e também cpu. Também li sobre as pequenas instâncias do EC2 se tornando lentas. Um pouco de espaço não pode doer.

Também há núcleos adicionais para que o carregamento da CPU dos backups em execução tenha um impacto ainda menor no desempenho.

Além disso, você salva uma instância do servidor Win2008 2008, que é o custo e a sobrecarga de CPU e memória associada para executar o SO duas vezes. Tenho que admitir que não conheço o modelo de preços do Win2008 Server. (Custo por CPU, thread ou socket ou ...)

Se você passou pela saturação da VM grande, isso teria ocorrido muito antes com as pequenas VMs, já que elas não têm nem metade das especificações da grande VM.

Por último, mas não menos importante, se você realmente tiver que iniciar outra instância para backup, será necessário apenas iniciar uma instância.

Portanto, com o windows como sistema operacional, não vejo realmente o benefício de dividir a carga de trabalho em duas pequenas VMs isoladas.

    
por 16.05.2010 / 21:16
1

Como você acabou de mencionar que Você pode gastar dinheiro com o problema e que Você prevê algum dimensionamento, vá com 2 instâncias. Dessa forma, você pode ganhar experiência com a separação de serviços e ter um melhor ponto de partida para criar perfis e comparar seus serviços.

Você pode até querer migrar seu banco de dados para o OSS posteriormente, o que é mais fácil dessa maneira.

(informativo: é possível clonar e duplicar instâncias no EC2. Este artigo é para linux, mas talvez lhe dê uma dica sobre como fazer uma cópia em execução de suas instalações.)

    
por 18.05.2010 / 07:35
0

As duas respostas anteriores dão alguns bons pontos de decisão, mas uma coisa não mencionada são os requisitos de disponibilidade do seu site - se você usar qualquer uma das arquiteturas sugeridas, você pode tolerar que seu site fique inativo enquanto você relança uma instância do EC2 com falha? (os tempos de inicialização são especialmente longos para instâncias do Windows; já vi isso levar até 30 minutos)

Seja qual for o caminho, recomendo que você armazene seu banco de dados em um volume separado Elastic Block Store para que você possa facilmente reconectá-lo para uma nova instância em caso de falha. Os volumes do EBS também são fáceis de fazer backup usando o recurso de captura instantânea fornecido pela AWS.

    
por 17.05.2010 / 18:04
0

Uma vez eu fui dito por um arquiteto de redes muito inteligente que eu respeito muito, que mantém cada máquina o mais simples possível. Sempre!

Então, eu usaria pequenas instâncias, separadamente - quando elas ficassem muito pequenas, consideraria atualizá-las ou gerar instâncias extras.

Como você os separou desde o início, é mais fácil colocar energia extra onde for necessário, em vez de pagar muito pela configuração errada.

Torna-se um pouco mais difícil manter e fazer backup de mais imagens, mas você também obtém os benefícios de mais escalabilidade.

Já corremos com configuração semelhante há alguns anos, rodando em VMware e o SQL-server é separado das duas máquinas do IIS.

Até temos um SQL secundário agora, e isso é possível porque também podemos vinculá-lo para fins de sincronização.

    
por 19.05.2010 / 07:04