Como os bancos de dados relacionais da AWS se comparam

Um banco de dados relacional foi, por muito tempo, uma solução bastante padrão para vários (e quase todos) casos de uso de software que grandes ou pequenas empresas tiveram que resolver.

Hoje, a variabilidade é muito maior com a disponibilidade mais ampla de bancos de dados NoSQL, in-memory ou data lake. Mas, apesar disso, sempre que for tomada a decisão de migrar os bancos de dados locais atuais para a nuvem, o banco de dados relacional como destino ainda é a opção mais direta para essa transição.

Vamos dar uma olhada nas seguintes bases de dados que podem fazer parte de tal iniciativa:

  • Oráculo
  • aurora
  • Servidor Microsoft SQL
  • MySQL e PostgreSQL
  • MariaDB

Serei claro em como eles diferem do resto e o que os diferencia, incluindo suas desvantagens. Em seguida, vou trazê-los para o contexto, demonstrando um exemplo de uso típico do mundo real. Por fim, compartilharei minha opinião sobre como decidir entre os diferentes bancos de dados para o seu caso.

Banco de dados Oracle da AWS

Fonte: aws.amazon.com

O Oracle DB foi, sem dúvida, o banco de dados comercial mais utilizado nas últimas décadas. Sempre que uma empresa precisava de uma solução de banco de dados robusta e de alto desempenho, o Oracle DB era a primeira escolha. E por muitas boas razões.

Como isso difere

O Oracle é uma plataforma robusta e rica em funcionalidades que pode atender a uma enorme quantidade de configurações e requisitos totalmente diferentes. Com o tempo, esse banco de dados tornou-se a solução definitiva caso você precise de confiabilidade, escalabilidade e capacidade de manutenção de última geração na infraestrutura de hardware local.

Vantagens principais

Aqui estão algumas das principais vantagens que você obtém ao escolher um sistema de banco de dados maduro como o Oracle:

✅ Ótimo suporte e opções para atividades eficazes de backup e restauração.

✅ Ampla área de possibilidades de como ajustar o desempenho da solução de BD dentro do sistema. Mesmo muito tempo depois, a solução já está em produção. As atividades de suporte e manutenção dentro desta plataforma são realmente fáceis de configurar e são muito eficazes.

✅ Alta customização da solução DB. Como o Oracle DB oferece suporte a uma ampla quantidade de funcionalidades para escolher, você, como integrador de sistemas, tem muitas opções para criar um sistema robusto que consiste exatamente nas funcionalidades de que sua plataforma precisa (pense em gatilhos, partições, subpartições, sequências de chaves primárias automatizadas, exibições , instantâneos, restrições de dados, chaves exclusivas, chaves combinadas, chaves estrangeiras, índices compostos, etc.). Ele suporta tudo.

✅ Fácil administração das atividades e processos do banco de dados. Consoles e painéis de administração dedicados e muitas ferramentas criadas pela Oracle e dedicadas exclusivamente aos administradores para uso imediato.

✅Suporte de ambientes multiusuário. Se o requisito é oferecer suporte a milhares de usuários ativos distintos ao mesmo tempo, a Oracle é a resposta.

Principais Desvantagens

O Oracle DB é muito flexível em relação ao dimensionamento vertical do desempenho. Mas nem tanto quando você precisa de um dimensionamento horizontal forte. Isso significa que é fácil atualizar para uma CPU mais forte, mais memória e espaço de armazenamento em um banco de dados de cluster.

Mas se seus dados crescerem muito em pouco tempo – que é o que costuma acontecer com dados na nuvem – os gargalos de desempenho ficarão mais visíveis e mais difíceis de resolver. Espalhar os dados em vários clusters e esperar que eles cresçam dinamicamente se tornará um requisito principal daqui para frente. Nesse caso, você pode achar que o Oracle DB está começando a ser mais limitante do que atender às suas necessidades futuras.

Outra possível desvantagem pode ser o custo. O Oracle DB oferece suporte a muitos recursos, mas muitos deles também têm um custo. Ainda mais se vários clusters estiverem em vigor e atualizações de desempenho físico forem necessárias. Isso significa que o ajuste de software do modelo de dados não é mais suficiente. Para que mais ferramentas e recursos administrativos estejam disponíveis, você precisará adquirir uma licença empresarial. Isso aumentará ainda mais os custos já elevados.

  Prática com chamadas de voz e vídeo do Skype para Outlook.com

Por fim, o Oracle DB não é um serviço de banco de dados nativo da AWS, o que significa que você não deve esperar suporte total da AWS. Em vez disso, oriente para o suporte da Oracle. Mas, em seguida, lide com os pontos problemáticos da Oracle e da AWS em paralelo e com dois conjuntos diferentes de equipes de suporte.

Quando Escolher

Escolher a contraparte em nuvem do Oracle DB é a decisão mais natural a ser tomada sempre que sua solução local atual já estiver usando o Oracle DB. Ele também tornará a migração e a mudança para a solução baseada em nuvem o mais fácil possível.

Portanto, escolha o AWS Oracle DB no caso:

  • Você espera que o banco de dados em nuvem ofereça suporte aos mesmos processos e funcionalidades da variante local no futuro previsível.
  • Você não planeja integrar o banco de dados com muitos serviços nativos da AWS muito rapidamente.
  • Você não espera que o volume de dados atual cresça significativamente em um curto período de tempo.
  • Você precisa do suporte de uma grande quantidade de funcionalidades instaladas. Ou seja, seria difícil perder alguns deles atualmente no local ao mudar para a nuvem.
  • Seu sistema deve suportar centenas de usuários ativos ao mesmo tempo (ou mais).

Exemplo de uso

  • Grandes sistemas de telecomunicações para faturamento, CRM e dados de middleware.
  • Implementações de banco de dados personalizadas para sistemas de banco de dados automotivos, integradas a várias ferramentas personalizadas ou de terceiros.
  • Soluções de sistemas empacotados para o setor bancário, onde a Oracle já é uma parte fixa da solução empacotada dos fornecedores e eventualmente integra componentes de banco de dados personalizados adicionais em uma implementação complexa.

banco de dados AWS Aurora

Fonte: aws.amazon.com

De muitas maneiras, o Aurora é o oposto direto do Oracle, mesmo que ainda seja um banco de dados relacional.

Como isso difere

Autora DB é um serviço de banco de dados nativo da AWS. A AWS oferece suporte total e desenvolvimento contínuo e a integra profundamente com o restante do ecossistema de serviços da AWS.

O banco de dados Aurora não atinge esse nível de diversificação de funcionalidades que o Oracle já possui. Mas nasceu na nuvem (ao contrário da Oracle). Como a AWS desenvolve ainda mais o Aurora, a lacuna de funcionalidade pode eventualmente ser menor no futuro do que é hoje.

Em muitos aspectos, a Aurora já está à frente da Oracle, principalmente no que diz respeito à integração com outros serviços de nuvem da AWS. E como a Amazon criou o Aurora com um ecossistema de nuvem em mente, o Aurora está pronto para gerar uma receita massiva de dados e aumentar com o tempo, portanto, o dimensionamento horizontal é uma propriedade forte.

Vantagens principais

Eu diria que as principais vantagens do Aurora DB são:

✅ Expansibilidade muito flexível de instâncias de cópia de banco de dados somente leitura. Aqueles que você pode criar apenas em segundos. As instâncias somente leitura compartilham os mesmos logs de banco de dados do banco de dados principal do qual são originárias. Isso significa que a criação de um novo banco de dados somente leitura não requer a sincronização de todos os dados; ele faz automaticamente compartilhando os existentes.

✅ Pronto para grande crescimento de dados – o dimensionamento horizontal é um grande recurso do Aurora DB. Adicionar novos clusters e expandir a escalabilidade em diferentes zonas de disponibilidade é o mais simples possível. Aurora é então muito eficaz na seleção de grandes quantidades de dados muito rapidamente.

✅ Você pode escolher se deseja usar o modo server ou serverless do Aurora DB. Alguns dos recursos estarão ausentes no modo sem servidor. Mas você obtém muita flexibilidade e otimizações de custo ao escolher o modo sem servidor.

✅ Backups automatizados e reversão pontual fácil. Outro destaque é que o Aurora DB pode fazer backups diários fáceis e restaurar o banco de dados completo a qualquer momento é muito mais simples. Você pode combinar todas as vantagens do ambiente de nuvem aqui, como espaço livre sempre disponível, operações internas rápidas da AWS e um recurso Aurora DB dedicado que visa tempos de recuperação rápidos e tempo de inatividade curto.

  9 melhores jogos da máfia com as melhores missões e missões secundárias

✅ Suporte para o mecanismo de banco de dados MySQL ou PostgreSQL, para que você possa escolher o que mais lhe convier.

Principais Desvantagens

  • Embora o Aurora seja indiscutivelmente o banco de dados relacional nativo com mais recursos que você pode escolher na AWS, ele ainda está atrás do Oracle nesse aspecto. É compreensível; A Oracle teve muito mais tempo para desenvolver esses recursos no passado. O fato é que o Aurora DB está, a cada lançamento, mais forte e mais próximo.
  • Não há equivalente ao Aurora DB no espaço local. Você pode argumentar que bancos de dados antigos construídos dentro de bancos de dados MySQL ou PostgreSQL são uma correspondência próxima – e, do ponto de vista da compatibilidade, certamente são. Mas eles não são o equivalente estrito. Isso significa que a migração não será tão direta. Você precisará personalizar e implementar processos de migração para garantir que eles transfiram dados do local e os armazenem no Aurora DB, tudo no formato de modelo de dados correto.
  • Vários limites da AWS, especialmente os rígidos, são um fator que pode, em alguns casos, prejudicar a escolha desse banco de dados como destino a seguir. É muito provável que você consiga contornar todos eles, mas, para alguns, você precisará de um investimento mais sério em refatoração, o que pode aumentar os custos gerais de migração em comparação com outro destino de banco de dados.

Quando Escolher

Resumindo, escolher Aurora DB como o banco de dados relacional goto na plataforma AWS nunca é uma decisão ruim, mas faça isso, especialmente se:

  • Você construirá um sistema de nuvem do zero em torno de um banco de dados relacional.
  • Você espera o mais alto nível de compatibilidade e integralidade com o máximo possível de diferentes serviços nativos da AWS.
  • Você espera que seu volume de dados cresça significativamente em um curto período de tempo.
  • Você planeja iniciar vários projetos derivados de provas de conceito (POC) onde poderá aproveitar todas as vantagens da versão sem servidor de um banco de dados relacional.

Exemplo de uso

  • Uma plataforma sem servidor para analisar grandes quantidades de dados de imagem de infraestrutura.
  • Utilização de modelos de aprendizado de máquina para processar suas informações de data lake e gerar previsões de negócios para seus negócios.
  • A Netflix usa o Aurora DB para execuções rápidas de consultas paralelas sobre seus dados de catálogo.

banco de dados AWS Microsoft SQL

Fonte: aws.amazon.com

Esse banco de dados é, de certa forma, comparável ao Oracle. Ele também foi criado muito antes de a nuvem se tornar uma coisa, e há muitos usuários locais atuais que planejam migrar para a nuvem, usando o banco de dados MS SQL como fonte.

Como isso difere

Apesar dessas semelhanças, o MS SQL DB ainda é o que teve muito menos uso no passado em comparação com o Oracle DB.

Pelo menos a julgar pela minha perspectiva de experiência pessoal. Estive envolvido em vários projetos Oracle nas últimas duas décadas, mas apenas em alguns casos em que o MS SQL DB estava envolvido. E, francamente, não gostei de lidar com isso tanto quanto com o Oracle DB.

De qualquer forma, ainda reconheço um grande segmento de empresas que usam o banco de dados MS SQL como o banco de dados principal que é o único ponto de verdade para todos os dados.

Vantagens principais

Principais vantagens que o MS SQL DB tem:

✅ Boa integração com outros serviços e softwares da Microsoft, caso essa seja uma funcionalidade que você reconheça como valiosa para o seu caso.

✅ Fácil personalização com extensões de código personalizadas, principalmente na forma de módulos de código Javascript. Isso pode ser útil ao lidar com processos de negócios e trabalhos mais complexos a serem agendados no banco de dados.

✅ Bastante simples do ponto de vista administrativo (pelo menos em comparação com o Oracle DB).

✅ Provavelmente faz muito mais sentido no ecossistema de nuvem do Azure, pois lá é considerado um sistema de banco de dados relacional nativo, muito mais compatível com outros serviços de nuvem de lá.

Principais Desvantagens

  • Da mesma forma que no caso do Oracle DB, como um banco de dados não nativo no espaço da nuvem AWS, todo o suporte e a resolução de problemas devem ser conduzidos por equipes de suporte MS SQL dedicadas separadas.
  • Menos diversificação do suporte de funcionalidade em geral sempre que comparado ao Oracle DB ou Aurora DB.
  • Não é adequado para um grande número de usuários ativos.
  • A escalabilidade horizontal é um problema ainda maior do que no caso do Oracle DB.
  Os hackers realmente lutam em tempo real?

Quando Escolher

O banco de dados MS SQL é mais adequado se você deseja migrar o banco de dados MS SQL existente no local para a nuvem com o mínimo de distrações possível. Além disso, você não espera essa integração com outros serviços de nuvem da AWS em grande medida.

Em seguida, o banco de dados MS SQL viverá dentro da nuvem AWS como um banco de dados totalmente gerenciado com armazenamento ilimitado e opções estendidas para escalabilidade horizontal e alta disponibilidade em comparação com a alternativa local.

Exemplo de Uso

  • Atuando como uma plataforma intermediária para integração personalizada de vários sistemas de banco de dados (podendo ser até de um tipo diferente, por exemplo, Oracle DB).
  • Vários projetos de menor escala em que o custo da solução de banco de dados é algo a ser considerado e o orçamento é mais limitado (e não permite optar por uma solução de banco de dados Oracle completa).

Banco de dados AWS MySQL e PostgreSQL

Fonte: aws.amazon.com

Esses bancos de dados são de código aberto por origem (embora agora já tenham sido comprados por empresas maiores), em última análise, oferecendo benefícios e desvantagens.

Eles também não são tão ricos em recursos quanto outras alternativas, especialmente em sua forma nativa. E embora você ainda possa usá-los na infraestrutura da AWS desta forma, duvido que isso ainda faça muito sentido prático.

Como isso difere

Ao migrar o banco de dados no local (seja MySQL ou PostgreSQL) para a nuvem AWS, você pode usar diretamente o Aurora com o mecanismo MySQL ou PostgreSQL como destino e obter todos os benefícios adicionais que o banco de dados Aurora tem a oferecer.

Claro, isso significará algum esforço adicional para a fase de migração em comparação com o caso em que uma alternativa nativa seria escolhida. Mas esse esforço adicional será apenas marginal.

Seu principal benefício reside nos custos e são mais adequados para iniciativas de pequenos projetos, onde a robustez não é realmente um tópico.

Principais Desvantagens

  • Ambos são bastante limitados em funcionalidade suportada e você precisa estar preparado para opções limitadas de manutenção e administração.
  • Não é adequado para projetos de grande escala com muitos usuários ativos.
  • Não é o melhor para soluções de alto desempenho e onde o ajuste de desempenho constante é um requisito forte.

Quando Escolher

  • Se o custo é o tema principal e o orçamento é muito limitado.
  • Se a iniciativa do projeto for bastante pequena.
  • Se o volume de dados for pequeno e não houver planos de crescimento significativo.

Exemplo de Uso

  • Iniciativas de projetos pessoais onde o custo da infraestrutura deve ser o mínimo possível.
  • Pequenos POCs que provariam que o conceito proposto pode ser realizado.
  • Projetos de pequenas empresas com pequenas quantidades de dados.
  • Para pequenos projetos SaaS, que não exigem uma quantidade extensa de cargas de banco de dados, apenas o armazenamento de dados em uma forma de modelo de dados relacional é tudo o que é realmente necessário.

AWS MariaDB

Fonte: aws.amazon.com

O MariaDB ainda é um banco de dados totalmente de código aberto criado por ex-desenvolvedores do MySQL (após a aquisição do MySQL pela Oracle).

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

Como isso difere

Em termos de função, não há muitas diferenças em relação ao MySQL, mas a propriedade de código aberto é o destaque.

Tecnicamente, há um grande número de recursos úteis disponíveis no MariaDB, mas não no MySQL.

Principais Desvantagens

Bastante semelhante ao caso do MySQL.

Quando Escolher

  • Se você adora sua implementação local atual do MariaDB e não deseja migrar para o Aurora DB, por qualquer motivo.
  • Se você deseja permanecer verdadeiramente de código aberto com sua solução de banco de dados dentro do ecossistema de nuvem AWS.

Exemplo de uso

Bastante semelhante ao caso do MySQL.

Palavras Finais

Da mesma forma, como o Oracle DB era a solução no mundo local, parece que o Aurora DB está ocupando esse lugar no mundo da nuvem AWS. Pelo menos da perspectiva dos conjuntos de recursos, isso é o mais próximo que você pode chegar.

E mesmo que você não esteja realmente atrás das principais partes interessadas, é bom saber que ainda existem opções bastante simples sobre como migrar seu banco de dados existente para a nuvem AWS.

Melhor ainda – com essa opção, você obterá automaticamente os recursos que provavelmente estavam faltando até então. Mais importante ainda, melhor capacidade de expansão de armazenamento, alta disponibilidade e escalabilidade horizontal são recursos nativos do ambiente de nuvem.