Prós do Amazon RDS / Contras de vários bancos de dados por instância

4

Eu corro dois sites completamente independentes. Estou movendo seus bancos de dados MySQL para o Amazon RDS.

Eu não vou fazer a implantação Multi A / Z - vamos remover essa variável desta questão.

Não tenho certeza se devo criar uma única instância do RDS com dois bancos de dados ou duas instâncias do Amazon RDS com um único banco de dados. Ignore o custo por causa desta questão. Eu não vou atingir o limite de dados de 1 TB, então vamos ignorar isso. No entanto, é extremamente importante que a queda de um dos sites não afete o outro.

Baseado neste documento - link

Estou assumindo que, se eu escrever um código terrível que trava um dos bancos de dados em uma determinada instância do RDS, ele poderia derrubar toda a instância do RDS (e assim afetar inadvertidamente o outro banco de dados). Isso está correto?

Em resposta ao comentário, estamos definitivamente entretendo a ideia de duas instâncias do RDS, cada uma com seu próprio banco de dados. Eu só quero ter certeza de que há realmente um benefício em fazer isso - suponho que o benefício é que esses bancos de dados possivelmente não afetarão um ao outro quando estiverem em instâncias separadas. Eu pensei que havia um tiro que, mesmo na mesma instância, eles não poderiam impactar um ao outro, mas parece que não é o caso.

- EDIT Hop3less - obrigado pela resposta - no entanto, quando eu disse duas instâncias do RDS com um único banco de dados, eu quis dizer que cada um tinha um único banco de dados. Só quero ter certeza de que você não percebe duas instâncias do EC2. Eu suponho que uma única instância do RDS ainda é um único ponto de falha?

    
por Joe Flowers 05.09.2012 / 05:22

3 respostas

1

Concordo com a sugestão do @ HopelessN00b de que, para que cada um dos seus sites seja completamente independente, você deve executar cada banco de dados em sua própria instância. No entanto, mesmo isso não é uma configuração totalmente independente, mas o uso de bancos de dados na nuvem pode minimizar certos riscos. Como você está preocupado com a alta disponibilidade de seus bancos de dados e planeja movê-los para o RDS, sugerimos que você analise a opção de banco de dados na nuvem do Xeround como alternativa ao RDS. Se bem entendi o Xeround oferece um banco de dados que é distribuído em vários servidores e também tem replicação, ambos são recursos que podem lidar com o failover (aqui estão algumas informações do wiki sobre sistemas distribuídos e replicação .:)

    
por 09.10.2012 / 21:11
0

Certo, se você tem duas instâncias com um banco de dados, seu único ponto de falha é o banco de dados único - qualquer coisa que cause impacto no banco de dados (como excesso de carga, exclusão acidental ou o que você tem) impacto nos dois sites que o utilizam.

Se você tiver uma instância com dois bancos de dados, seu ponto único de falha é a instância, e qualquer coisa que afete a instância (como a falta de espaço em disco do sistema operacional, por exemplo) causará impacto em ambos sites que o usam.

A única configuração que permite que seus sites sejam completamente independentes um do outro é executar cada um em sua própria instância, com seu próprio banco de dados. (E mesmo isso não é "completamente" independente, tão completamente independente quanto você pode controlar - se algo acontecer ao hardware ou à infraestrutura que as duas instâncias compartilham, ambos serão impactados.)

    
por 05.09.2012 / 19:55
0

A CPU e a memória serão o único ponto de contenção, independentemente dos perfis de E / S de cada aplicativo. Se um aplicativo se tornar repentinamente mais popular que o outro, o algoritmo LRU do buffer pool estará paginando dados de linha e índice de um aplicativo em favor do outro, resultando na degradação do desempenho do aplicativo paginado, pois suas leituras devem ir para o disco. / p>

mysql> SHOW ENGINE INNODB STATUS;

Vai fornecer métricas do buffer pool para o seu aplicativo monitorar se esse tipo de contenção estiver ocorrendo. ( link )

De uma perspectiva de DR, qualquer restauração de instantâneo ou PITR desativará os dois aplicativos e forçará uma reversão para ambos os aplicativos. Com instâncias separadas, você não tem essa dependência.

    
por 21.08.2013 / 06:53