aws-black-white

MySQL na Amazon AWS: RDS ou EC2?

Caras, estamos há dois dias da estréia do Star Wars no cinema. Nível de ansiedade nas alturas 🙂

Mas, voces não vieram aqui para falar de Star Wars. Então, vamos ao que interessa, e, deixemos que lado negro da força para iluminar sua mente.

Sopa de letrinhas: AWS é Amazon Web Services. Aliás, acho que “web”nem caberia mais, visto que os serviços da Amazon alcançou patamares muito mais elevados. RDS é a sigla para Relational Database Services, e, EC2 Elastic Compute Cloud.

Se voce jogar tudo isso é um liquidificador Kaminoano, teremos então um serviço de cloud, ideal para hospedagem de servidores de banco de dados.

A pergunta que sempre me fazem é: Devo hospedar meu banco de dados MySQL em RDS ou EC2?

Minha resposta padrão sempre prevalece: “Depende, pequeno Padawan”.

Vamos entender, em linhas gerais, quem é quem:

RDS: Uma instância RDS é uma abstração de um servidor de banco de dados. Além de não a figura do hardware, não tem sistema operacional, e, nem a instalação do banco de dados. Pode ser entendido, de maneira crua, 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: O EC2 é mais do mesmo, é a boa e velha VM (máquina virtual) que vc virtualiza o hardware, instala e configura o sistema operacional de sua preferência, o sistema de arquivos, e, então o banco de dados. Tudo podendo ser configurado sob medida e gosto. Qualquer banco de dados pode ser instalado num ambiente EC2.

Há muitos bons artigos sobre RDS e EC2, e já adianto que há defensores, fervorosos, dos dois lados. A melhor pessoa para te dizer qual o melhor caminho a seguir: RDS ou EC2, é voce mesmo. Portanto, vai um guia básico de perguntas que voce mesmo deve se fazer para tomar a melhor decisão.

Facilidade na implementação e gestão do ambiente

RDS irá te poupar boas horas implementação de um novo ambiente, lembre-se, vc 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. Contudo, voce está levando um pacotão da alegria com algumas personalizações, e, é isso.

EC2 é mais bruto. Voce terá que criar a VM, instalar e configurar o SO de sua preferência, configurar o sistema de arquivos mais adequado à sua aplicação, instalar e configurar o banco de dados.

RDS é clique e seja feliz. Deixe a AWS se preocupar com atualizações e patches.

EC2 é Lado Negro da Força. É controle. Como bom Sith eu prefiro.

Performance

De verdade, não tenho uma fórmula mágica para voces. Tenho clientes que RDS performa melhor do que o EC2. Fato. Dos testes que fiz, 78% dos casos EC2 bem configurado roda melhor e mais rápido do que RDS. Mas, em 22% dos casos, de fato, o RDS rodou melhor.

Locks Inexplicáveis

O que me incomoda em ambientes RDS são locks que acontecem, pontualmente, sem nenhuma lógica. “Ah, é problema da sua configuração ou aplicação”. Oi? A AWS não diz que assume essa parte? Em todas as nossas instâncias, de clientes diferentes, de nichos diferentes, configurações e instâncias de tamanhos diferentes, esse comportamento é observado, em maior ou menor grau.

Custo

Alguns gênios tem postado que RDS é mais barato. O que tenho observado é 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, aplicação de patches, etc. Outro fator de custo que não atinge o MySQL, mas, deve ser considerado nos casos de Oracle e SQL Server é o modelo BYOL (Bring Your Own License), no qual voce leva sua licença para o RDS, podendo influenciar positiva ou negativamente no custo.

Gerenciamento

Voce não terá usuário SUPER do MySQL. Então, esqueça alguns comandos. Mas, a AWS providenciou uma série de procedures que tentam mitigar essa ausência do usuário SUPER. Isso é particularmente ruim, pois tira uma parte da capacidade de atuação em situações emergenciais do DBA.

Criptografia dos Dados

O RDS não permite criptografia dos dados. Então, dependendo da criticidade e sensibilidade dos seus dados, vá direto para o EC2.

Plugins do MySQL

Se para voce plugins de autenticação, auditoria, replicação semi-síncrona, entre outros, é uma necessidade, RDS não é para voce. A rigor, o RDS não permite nenhum tipo de plugin. Ah, nada de GTID (Global Transaction ID). Para usar esses plugins, só no EC2.

E agora?

Use o melhor dos dois mundos. Faça as perguntas a si mesmo, e, veja qual aplicação deve ir para o RDS, e, qual deve ir para o EC2. Use a técnica de balanceamento de carteira feita pelos investidores e economistas, afim de mitigar riscos.

O que couber no RDS, use o RDS para diminuir suas horas com gestão de mudança e atualização de Sistema Operacional e Banco de Dados.

O que for importante, sensível, crítico coloque no EC2, aonde, voce tem maior controle do ambiente. E, tudo bem, investir um pouco mais de tempo.

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.