Eu percebo algumas diferenças básicas entre os dois, ou seja,
EC2 vai ser mais barato
RDS eu não precisaria fazer manutenção
Além desses dois, existem vantagens em executar meu banco de dados a partir do RDS, em oposição a um servidor EC2 separado que atua como um servidor MySQL. Supondo tamanhos de instância semelhantes, os dois terão as mesmas limitações em termos de capacidade de lidar com uma carga?
Para fornecer um pouco mais de informações sobre o meu uso, eu tenho um banco de dados, nada muito grande ou nada (tabela maior com 1 milhão de linhas), apenas um volume SELECT alto.
mysql
amazon-ec2
amazon-rds
Macgyver
fonte
fonte
Respostas:
Esta é uma pergunta simples, com uma resposta muito complicada!
Em resumo: o EC2 fornecerá o desempenho máximo se você optar por um RAID0 EBS. Fazer o RAID0 EBS requer uma quantidade significativa de despesas gerais de manutenção, por exemplo:
http://alestic.com/2009/06/ec2-ebs-raid
http://alestic.com/2009/09/ec2-consistent-snapshot
O EC2 sem RAID0 EBS fornecerá um desempenho de E / S de baixa qualidade, portanto, nem é realmente uma opção.
O RDS fornecerá um desempenho muito bom (embora não máximo) pronto para uso. O console de gerenciamento é fantástico e é fácil atualizar instâncias. Escravos de alta disponibilidade e somente leitura estão a um clique de distância. É realmente incrível.
Resposta curta: Vá com o RDS. Ainda em cima do muro? Vá com RDS !!! se você gosta de dores de cabeça e afina todos os detalhes para obter o máximo desempenho, pode considerar o EC2 + EBS RAID 0. O Vanilla EC2 é uma opção terrível para a hospedagem MySQL.
fonte
Em este post , há uma excelente referência entre:
O benchmark é muito bom, pois não é focado apenas nas condições ideais (apenas um thread), mas também em cenários mais realistas, com 50 threads atingindo o banco de dados.
fonte
O RDS não é realmente um sistema de alta disponibilidade. Leia as letras miúdas no FAQ do RDS. Durante um evento de failover, pode levar até 3 minutos para o failover. A Amazon adicional decidirá que precisa "atualizar" sua instância rds e fará um failover nesse ponto, o que reduzirá o banco de dados por "até 3 minutos" (nossa experiência é que pode demorar mais do que isso).
A alta disponibilidade do RDS é muito diferente da replicação mestre - mestre ou mestre - escravo e é muito mais lenta. Eles não usam replicação mysql, mas usam algum tipo de replicação ebs. Portanto, em uma situação de failover, ele montará os ebs na máquina de backup, iniciará o mysql, esperará o mysql recuperar a falha (espero que nada tenha sido corrompido muito ruim) e faça um switch dns.
Espero que isso ajude você na sua avaliação.
fonte
Optamos por usar instâncias do EC2 MySQL porque temos um alto volume de leitura e precisamos de replicação mestre-escravo. Obviamente, você pode ativar várias instâncias do RDS e configurar a replicação do MySQL entre elas, mas usamos o Scalr.net, que gerencia isso para você usando instâncias do EC2.
Basicamente, apenas dizemos ao Scalr quantas instâncias do MySQL queremos, as mantém, automatiza a configuração da replicação, lida com failover automático da promoção de escravos para dominar se o mestre for finalizado etc. Ele faz backups de despejo de SQL e instantâneos de volume EBS de O mestre. Portanto, quando ele precisa criar um novo escravo, ele monta temporariamente automaticamente um volume EBS do último instantâneo mestre para inicializar o banco de dados escravo e inicia a replicação a partir do ponto apropriado. Todos apontam e clicam :) (e não, eu não trabalho para o Scalr ou algo assim. O Scalr está disponível como código aberto se você não quiser usar o serviço deles)
fonte
Em relação à questão da janela de manutenção. Se você usar o Multi-AZ, o RDS criará uma réplica em espera em outra zona de disponibilidade, para que não haja tempo de inatividade para manutenção e você se proteja contra uma falha na zona.
É isso que pretendo fazer na próxima semana. É claro que isso vai te custar mais, mas ainda não resolvi isso.
fonte
MySQL no EC2 vs RDS MySQL
Vantagens do MySQL na replicação entre regiões do EC2 Amazon EC2
Copiar instantâneos nas regiões do Amazon EC2
RAID 0 com distribuição de EBS no MySQL EC2
Mais de 3 TB de espaço em disco (você não precisará disso para o seu tamanho) pode ser anexado no MySQL no EC2.
Desvantagens do MySQL no EC2
Configuração, Monitoramento e Manutenção em comparação com o RDS
Backups pontuais disponíveis no RDS
IOPS menor que o RDS MySQL (mesmo depois do RAID 0) atualmente, 10800 com 6 discos para MySQL no EC2, enquanto 12500 IOPS 16KB no RDS MySQL
fonte
Estou testando o RDS há alguns meses e aqui estão alguns problemas que tenho:
Usar o SQL Profiler é complicado. Como você não pode conectar o criador de perfil diretamente ao servidor, é necessário executar alguns procedimentos armazenados para criar um arquivo de log que possa ser analisado. Enquanto eles oferecem algumas sugestões sobre como isso é feito, está longe de ser fácil de usar. Eu recomendaria apenas que você tenha um profissional SQL certificado para fazer esse tipo de trabalho.
enquanto a Amazon faz backup de sua instância, você não pode restaurar um banco de dados individual. Eu tenho um aplicativo Web com vários bancos de dados específicos do cliente separados e minha solução foi iniciar uma instância do EC2 com o SQL em execução para conectar-se ao banco de dados RDB de produção e importar os dados e fazer backup na instância do EC2. A outra solução foi usar uma ferramenta de terceiros que cria um script SQL massivo (no servidor de aplicativos) que recriará o esquema e preencherá os dados de volta ao ponto de restauração.
fonte
Eu tive a mesma pergunta neste fim de semana. Há uma janela de tempo de inatividade de 4 horas por semana para o RDS, onde eles fazem manutenção. O RDS parecia mais caro se você pudesse se safar de uma micro instância do EC2. (Isso ocorre com instâncias de teste com tráfego mínimo). Também não foi possível alterar o fuso horário da instância do RDS porque não tenho permissão.
Agora, na verdade, estou olhando para http://xeround.com/, que é mysql no EC2 por outra empresa. Eles não usam o InnoDB, mas têm seu próprio mecanismo chamado IDG. Estou apenas começando a investigar isso, mas eles estão em beta e fornecerão 500 MB de espaço.
fonte