Sopa de Letrinhas: AWS é Amazon Web Services. A propósito, penso que a web não existe mais, já que os serviços da Amazon atingiram níveis muito mais altos. RDS é um acrônimo para Relational Database Services, e EC2 Elastic Compute Cloud.
Se você reproduzir tudo isso, é um liquidificador Kaminoano, então será um serviço em nuvem, ideal para hospedar servidores de banco de dados.
Uma pergunta que sempre me fazem é: Devo hospedar meu banco de dados MySQL no RDS ou EC2?
Minha resposta padrão sempre prevaleceu: “Depende, jovem Padawan.”
Vamos entender em geral quem é quem, RDS ou EC2:
RDS: Uma instância RDS é uma abstração de um servidor de banco de dados. Além de não ter uma figura de hardware, não ter um sistema operacional ou instalação de um banco de dados. Pode ser entendido grosseiramente como um banco de dados virtualizado. É um banco de dados fornecido como serviço (DBaaS). Atualmente, os seguintes bancos podem ser contratados como RDS: MySQL, MariaDB, Aurora, Oracle, SQL Server e PostgreSQL.
EC2: EC2 é o mesmo, é uma boa e velha máquina virtual (VM) que virtualiza o hardware, instala e configura seu sistema operacional preferido, sistema de arquivos e banco de dados. Tudo pode ser feito sob medida e ao gosto. Qualquer banco de dados pode ser instalado no ambiente EC2.
Existem muitos bons artigos sobre RDS e EC2, e eu já digo que há defensores fervorosos de ambos os lados. A melhor pessoa para dizer qual é o melhor caminho: RDS ou EC2, é você mesmo. Então, aqui está um guia básico de perguntas que você deve fazer para tomar a melhor decisão.
Facilidade de implementação e gerenciamento do ambiente
O RDS economizará um bom tempo implementando um novo ambiente, lembre-se, você não precisa criar a VM, instalar o SO, configurar o sistema de arquivos, instalar o banco de dados. Um clique e Shazam! Pronto para uso. No entanto, você está carregando um pacote de alegria com algumas customizações, e é isso.
EC2 é mais bruto. Você precisará criar a VM, instalar e configurar seu sistema operacional preferido, configurar o sistema de arquivos que melhor se adequa à sua aplicação, instalar e configurar o banco de dados.
RDS é clicar e ser feliz. Deixe a AWS se preocupar com atualizações e patches.
EC2 é o Lado Negro da Força. É controle. Quão bom são os Sith, prefiro eles.
Desempenho
Realmente não tenho uma fórmula mágica para você. Tenho clientes em que o RDS tem um desempenho melhor que o EC2. Fato. Dos testes que fiz, 78% dos casos bem configurados de EC2 funcionam melhor e mais rápido que o RDS. Mas em 22% dos casos, na verdade, o RDS funcionou melhor.
Travamentos inexplicáveis
O que me incomoda nos ambientes RDS são os travamentos que ocorrem aleatoriamente sem lógica alguma. “Ah, é um problema de configuração ou aplicativo seu.” Hein? A AWS não diz que cuida dessa parte? Em todas as nossas instâncias, de diferentes clientes, de diferentes nichos, configurações e instâncias de tamanhos diferentes, esse comportamento é observado em maior ou menor grau.
Custo
Alguns gênios postaram que o RDS é mais barato. O que observei é que o RDS é de 20% a 38% mais caro que o EC2. No entanto, temos que considerar aqui as horas que deixaremos de usar com instalação, atualização, correção, etc. Outro fator de custo que não atinge o MySQL, mas deve ser considerado no caso de Oracle e SQL Server, é o modelo Bring Your Own License (BYOL), no qual você leva sua licença para o RDS, o que pode influenciar positiva ou negativamente no custo.
Gerenciamento
Você não terá um usuário MySQL SUPER. Então, esqueça alguns comandos. Mas a AWS forneceu uma série de procedimentos que tentam mitigar essa ausência do usuário SUPER. Isso é particularmente ruim, pois tira algumas das habilidades do DBA de agir em situações de emergência.
Criptografia de Dados
O RDS não permite criptografia de dados. Então, dependendo da criticidade e sensibilidade de seus dados, vá direto para o EC2.
Plugins MySQL
Se para você plugins para autenticação, auditoria, replicação semi-síncrona, entre outros, são uma necessidade, o RDS não é para você. Estritamente falando, o RDS não permite nenhum tipo de plugin. Ah, e sem GTID (Global Transaction ID) também. Para usar estes plugins, somente no EC2.
E agora?
Use o melhor dos dois mundos. Faça a si mesmo as perguntas e veja qual aplicativo deve ir para o RDS e qual deve ir para o EC2. Use a técnica de balanceamento de portfólio de investidores e economistas para mitigar o risco.
Para o que for apropriado ao RDS, use o RDS para diminuir suas horas com gerenciamento de mudanças e atualizações do sistema operacional e do banco de dados.
O que for importante, sensível, crítico coloque no EC2, onde você tem mais controle do ambiente. E, ok, invista um pouco mais de tempo.
Leia mais artigos como esse em nosso blog.
Teste agora por 14 dias, sem burocracia, sem cartão de crédito
Saiba mais sobre o Flightdeck!