Bancos de Dados Relacionais na AWS: Qual Escolher em 2024?

Bancos de Dados Relacionais na AWS: Uma Análise Comparativa

Por muito tempo, os bancos de dados relacionais foram a solução padrão para diversas necessidades de software, tanto em grandes quanto em pequenas empresas.

Atualmente, o cenário se diversificou com a crescente disponibilidade de bancos de dados NoSQL, in-memory e data lakes. Contudo, ao decidirem migrar seus bancos de dados locais para a nuvem, as organizações frequentemente encontram nos bancos de dados relacionais a opção mais direta para essa transição.

Analisaremos as seguintes opções de bancos de dados, que podem fazer parte dessa jornada:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL e PostgreSQL
  • MariaDB

Este artigo detalhará as diferenças entre eles, seus pontos fortes e fracos, além de apresentar exemplos práticos de uso. Por fim, compartilharei minhas recomendações sobre como escolher o banco de dados ideal para cada situação.

Banco de Dados Oracle na AWS

Fonte: aws.amazon.com

O Oracle DB foi, indiscutivelmente, o banco de dados comercial mais utilizado nas últimas décadas. Empresas que buscavam soluções robustas e de alto desempenho costumavam escolher o Oracle DB como primeira opção, e por boas razões.

Diferenciais do Oracle DB

O Oracle é uma plataforma robusta e com diversas funcionalidades, capaz de atender a uma ampla gama de configurações e requisitos. Ao longo do tempo, tornou-se a solução definitiva para empresas que necessitavam de confiabilidade, escalabilidade e manutenção de ponta em infraestruturas de hardware locais.

Principais Vantagens

Ao optar por um sistema de banco de dados maduro como o Oracle, você se beneficia de:

✅ Excelente suporte e opções para backups e restaurações eficazes.

✅ Grande variedade de possibilidades para ajustar o desempenho do banco de dados, mesmo após a implementação. As atividades de suporte e manutenção são fáceis de configurar e altamente eficazes.

✅ Alta capacidade de customização. O Oracle DB oferece uma ampla gama de funcionalidades, permitindo aos integradores criar sistemas robustos, com recursos como triggers, partições, subpartições, sequências automatizadas de chaves primárias, views, snapshots, restrições de dados, chaves únicas e compostas, chaves estrangeiras e índices compostos.

✅ Administração simplificada. Consoles e painéis dedicados, juntamente com diversas ferramentas da Oracle, facilitam o gerenciamento do banco de dados.

✅ Suporte a ambientes multiusuário. Se o requisito é atender milhares de usuários simultaneamente, o Oracle é a resposta.

Principais Desvantagens

O Oracle DB é flexível em relação ao escalonamento vertical, facilitando a atualização para CPUs mais potentes, mais memória e espaço de armazenamento. No entanto, o mesmo não se aplica ao escalonamento horizontal. Se o volume de dados crescer rapidamente, os gargalos de desempenho podem se tornar evidentes e difíceis de resolver. Distribuir os dados entre vários clusters e esperar um crescimento dinâmico pode se tornar um desafio, tornando o Oracle DB mais limitante para as necessidades futuras.

Outro fator é o custo, pois muitos recursos têm um preço, especialmente se vários clusters estiverem em uso e forem necessárias atualizações de hardware. A otimização do modelo de dados por software pode não ser suficiente, e licenças empresariais podem ser necessárias para mais ferramentas administrativas, elevando ainda mais os custos. Além disso, o Oracle DB não é um serviço nativo da AWS, o que significa que o suporte será da própria Oracle, exigindo que você lide com dois conjuntos de equipes de suporte e seus pontos problemáticos.

Quando Escolher o Oracle DB

A escolha da contraparte em nuvem do Oracle DB é natural quando sua solução local já utiliza o Oracle DB, facilitando a migração e a transição para a nuvem. Portanto, opte pelo AWS Oracle DB quando:

  • O banco de dados em nuvem precisa suportar os mesmos processos e funcionalidades da versão local.
  • Não há planos de integrar o banco de dados com muitos serviços nativos da AWS rapidamente.
  • Não há expectativa de crescimento significativo do volume de dados em curto prazo.
  • É necessário um grande conjunto de funcionalidades.
  • O sistema deve suportar centenas de usuários ativos simultaneamente.

Exemplos de Uso

  • Grandes sistemas de telecomunicações para faturamento, CRM e dados de middleware.
  • Implementações personalizadas de bancos de dados para sistemas automotivos, integrados a ferramentas customizadas e de terceiros.
  • Soluções de sistemas empacotados para o setor bancário, com o Oracle como parte integrante e integrações adicionais de componentes personalizados.

Banco de Dados AWS Aurora

Fonte: aws.amazon.com

Em muitos aspectos, o Aurora é o oposto do Oracle, mesmo sendo um banco de dados relacional.

Diferenciais do Aurora DB

O Aurora DB é um serviço de banco de dados nativo da AWS, com suporte total e desenvolvimento contínuo, além de profunda integração com o restante do ecossistema da AWS.

O Aurora não possui a mesma diversidade de funcionalidades que o Oracle, mas foi projetado para a nuvem. A AWS continua a desenvolver o Aurora, e a diferença de recursos pode diminuir com o tempo. O Aurora já se destaca em integração com outros serviços de nuvem da AWS. Criado para o ambiente de nuvem, o Aurora é capaz de lidar com grandes volumes de dados e escalabilidade horizontal.

Principais Vantagens

As principais vantagens do Aurora DB são:

✅ Escalabilidade flexível de instâncias de cópia de leitura, criadas em segundos, que compartilham os mesmos logs do banco de dados principal, sem necessidade de sincronização de dados.

✅ Pronto para crescimento de dados, com escalabilidade horizontal facilitada em diferentes zonas de disponibilidade.

✅ Opção de modo server ou serverless, com otimizações de custo no modo serverless.

✅ Backups automatizados e reversão pontual simplificada, com tempos de recuperação rápidos e curto tempo de inatividade.

✅ Suporte aos mecanismos de banco de dados MySQL ou PostgreSQL.

Principais Desvantagens

  • Embora seja o banco de dados relacional nativo mais completo da AWS, ainda não tem a mesma diversidade de recursos do Oracle.
  • Não há um equivalente do Aurora DB no ambiente local, o que pode complicar a migração.
  • Alguns limites da AWS podem dificultar a escolha do Aurora, exigindo investimentos em refatoração para contorná-los.

Quando Escolher o Aurora DB

Escolher o Aurora DB como seu banco de dados relacional na AWS é sempre uma boa decisão, especialmente se:

  • Você está construindo um sistema de nuvem do zero, utilizando um banco de dados relacional.
  • Você busca alta compatibilidade com serviços nativos da AWS.
  • Você espera um crescimento significativo do volume de dados em pouco tempo.
  • Você planeja iniciar projetos derivados de provas de conceito, aproveitando a versão serverless.

Exemplos de Uso

  • Plataformas serverless para análise de grandes volumes de dados de imagem de infraestrutura.
  • Utilização de modelos de machine learning para processar dados de data lake e gerar previsões de negócios.
  • A Netflix usa o Aurora DB para consultas rápidas e paralelas em seus dados de catálogo.

Banco de Dados AWS Microsoft SQL

Fonte: aws.amazon.com

O MS SQL DB é comparável ao Oracle, criado antes da popularização da nuvem e amplamente utilizado em ambientes locais, com empresas buscando migração para a nuvem.

Diferenciais do MS SQL DB

Apesar das similaridades, o MS SQL DB foi menos utilizado em comparação com o Oracle. No entanto, é reconhecido como o principal banco de dados para diversas empresas.

Principais Vantagens

As principais vantagens do MS SQL DB são:

✅ Integração com outros serviços e softwares da Microsoft.

✅ Personalização com extensões de código customizadas, principalmente em Javascript, útil para processos de negócios e tarefas agendadas.

✅ Administração mais simples comparada ao Oracle DB.

✅ Faz mais sentido no ecossistema de nuvem do Azure, por ser considerado um sistema de banco de dados relacional nativo.

Principais Desvantagens

  • Suporte e resolução de problemas devem ser conduzidos por equipes de suporte MS SQL dedicadas separadas, por não ser nativo da AWS.
  • Menos diversidade de recursos comparado ao Oracle DB ou Aurora DB.
  • Não é adequado para um grande número de usuários ativos.
  • A escalabilidade horizontal é um problema maior do que no caso do Oracle DB.

Quando Escolher o MS SQL DB

O MS SQL DB é adequado para migrar bancos de dados MS SQL locais para a nuvem, com o mínimo de interrupções, e para projetos que não demandam muita integração com outros serviços da AWS.

Na nuvem AWS, o MS SQL DB terá armazenamento ilimitado e opções de escalabilidade e alta disponibilidade.

Exemplos de Uso

  • Plataforma intermediária para integração personalizada de diferentes sistemas de banco de dados.
  • Projetos de menor escala com orçamento limitado.

Bancos de Dados AWS MySQL e PostgreSQL

Fonte: aws.amazon.com

Esses bancos de dados são de código aberto, oferecendo vantagens e desvantagens.

Não são tão ricos em recursos quanto outras alternativas, e embora possam ser usados na AWS dessa forma, não é a opção mais prática.

Diferenciais do MySQL e PostgreSQL

Ao migrar bancos de dados MySQL ou PostgreSQL locais para a nuvem AWS, é possível utilizar o Aurora com o mecanismo MySQL ou PostgreSQL, aproveitando todos os benefícios do Aurora.

Isso exige esforço adicional na fase de migração, mas compensa pelos benefícios do Aurora. Sua principal vantagem reside nos custos, sendo adequados para projetos menores.

Principais Desvantagens

  • Funcionalidades limitadas e opções reduzidas de manutenção e administração.
  • Não são adequados para projetos de grande escala com muitos usuários ativos.
  • Não são a melhor opção para soluções de alto desempenho com ajustes constantes.

Quando Escolher o MySQL e PostgreSQL

  • Quando o custo é o principal fator e o orçamento é limitado.
  • Projetos pequenos.
  • Volume de dados reduzido, sem planos de crescimento significativo.

Exemplos de Uso

  • Projetos pessoais com custo mínimo de infraestrutura.
  • Pequenas provas de conceito.
  • Projetos de pequenas empresas com pouco volume de dados.
  • Pequenos projetos SaaS, onde o armazenamento de dados relacionais é o principal requisito.

AWS MariaDB

Fonte: aws.amazon.com

O MariaDB é um banco de dados totalmente de código aberto, criado por ex-desenvolvedores do MySQL.

Em termos de compatibilidade, qualquer banco de dados MySQL funciona perfeitamente dentro do MariaDB.

Diferenciais do MariaDB

As diferenças em relação ao MySQL são mínimas, mas o destaque é a propriedade de código aberto.

Tecnicamente, há diversos recursos úteis no MariaDB, mas não no MySQL.

Principais Desvantagens

Semelhante ao caso do MySQL.

Quando Escolher o MariaDB

  • Quando você prefere manter sua implementação local atual do MariaDB.
  • Se você busca manter sua solução de banco de dados verdadeiramente de código aberto na AWS.

Exemplos de Uso

Semelhante ao caso do MySQL.

Considerações Finais

Assim como o Oracle DB era a solução padrão no mundo local, o Aurora DB parece estar ocupando esse lugar na nuvem AWS. Pelo menos em termos de recursos, é a opção mais completa.

Mesmo que você não busque os recursos mais avançados, há opções simples para migrar seu banco de dados para a nuvem AWS, obtendo automaticamente recursos importantes, como expansão de armazenamento, alta disponibilidade e escalabilidade horizontal.