Eu tenho um banco de dados atualmente em execução no EC2. Como tenho que movê-lo para uma máquina maior, surgiu a questão de usar o RDS.
Preço:
Posso obter uma instância do EC2 c3.large
com dois SSDs (16 GB cada), dois vCPUs e 4 GB de memória sob demanda por US$ 0,132 por hora [1] .
A máquina RDS mais próxima (considerando o preço) seria db.m3.medium
de US$ 0,125 por hora (Single-AZ) [2] . Esta máquina tem a mesma quantidade de memória, mas apenas uma vCPU [3] . Além disso, eu teria que pagar pelo armazenamento e io [2] .
Portanto, os preços seriam muito semelhantes para esses dois.
As vantagens para EC2:
- Como já mencionado, mais uma vCPU.
- Posso colocar o Write-Ahead-Log no segundo disco ao usar o EC2 (grande melhoria de desempenho ao gravar muito no banco de dados).
- Posso executar o pgbouncer na minha instância do EC2 (mais desempenho porque posso manter as conexões abertas).
- Posso editar o arquivo de configuração (eventualmente melhorará o desempenho)
As vantagens para RDS:
- Automaticamente faz backups diários.
O RDS pode cobrir as vantagens que o EC2 tem (especialmente 2.)? Existe alguma outra vantagem?
Como a maioria das coisas, é uma relação custo x esforço/complexidade.
O RDS é mais fácil, mas menos flexível e custa mais para o mesmo nível de desempenho.
(Em particular, observe que não há como replicar para dentro ou fora do RDS )
Para uma comparação de instância única, não muito, mas o RDS tem muitas vantagens, a manutenção de uma configuração multi-AZ com réplicas de leitura em diferentes regiões etc. é mais do que eu preferiria lidar no EC2. O RDS faz uma quantidade enorme de ferramentas que você mesmo teria que fazer; isso é sempre uma vantagem. O RDS também apresenta uma interface uniforme para seus bancos de dados, a meu ver uma vantagem considerável, além de ajudar a reforçar a consistência na implantação de bancos de dados. Ainda usamos o pgbouncer em uma instância, é claro.
Francamente, prefiro executar bancos de dados em hardware coloc do que em EC2. Eu odeio executar bancos de dados no EC2. Movimentá-los, fazer despejos e backups é um pesadelo, pois o desempenho de i/o do ec2 é simplesmente miserável e comprar muitos iops é terrivelmente caro e ainda não aborda o desempenho do hardware de forma alguma. Se eu puder viver com os limites do RDS, sempre vou usá-lo.