Qual a melhor Cloud para o meu Banco de Dados – Parte 2

Continuando com o assunto da semana passada (link aqui), vamos agora falar sobre as vantagens dos principais players de Cloud Database para o nosso mercado: Amazon Web Services, Microsoft Azure, Google Cloud Platform. Geralmente, consideraria apenas estes 3 Players, porém, cada dia mais clientes tem me questionado sobre o OCI (Oracle Cloud Infrastructure), então, vamos compará-la também.


Já soltando todos os spoilers, basicamente, esta é uma tabela básica de comparação, de acordo com o que cada um dos fornecedores, disponibilizam em seus sites:


(Tabela de comparação entre diferentes players)


Agora, vamos aos detalhes:


AWS – Amazon Web Services


É a pioneira em cloud pública e, em partes por este motivo, também é a líder isolada a anos na oferta de serviços em Nuvem. Seu produto de Banco de Dados Relacional é conhecido como RDS (Relational Database Services) que, em conjunto com o S3 e o EC2, são os produtos mais populares ofertados em cloud atualmente.


O RDS oferece suporte à várias Engines, como Oracle Database (Standard e Enterprise), SQLServer (Standard, Web e Enterprise), MySQL, MariaDB e PostgreSQL. Ao longo dos anos o RDS foi evoluindo e hoje ele permite suporte para métricas que podem ser monitoradas tanto usando o serviço dela (Usando os gráficos na console ou via Cloud Watch), quando permite que estes dados de monitoramento sejam lidos por APIs de terceiros para serem visualizadas em outras ferramentas como InfluxDB, Prometheus ou Grafana. No quesito segurança existem várias formas de implementar um ambiente seguro para acesso dos usuários e, além disso, também é possível implementar alta disponibilidade em diferentes zonas ou regiões que a AWS oferece seus serviços.


Como facilidade é possível escalar com apenas alguns cliques o serviço, porém, as configurações são pré-determinadas. Enfim, será necessário escolher alguma solução que seja próxima à quantidade de CPU’s e Memória que seu ambiente necessita. Em termos de Leitura e Escrita existem várias formas de liberar recursos. Podendo desde escolher quantos IOPS máximo o ambiente pode ter independente do tamanho (opção mais cara) ou configurar um tamanho pré-determinado com um número máximo limitado de IOPS. O backup é muito simples, sendo feito na base de um Snapshot completo dos discos envolvidos.

Todo o processo de criação da instance é muito simples e intuitivo, pois, com apenas alguns cliques, e em poucos minutos, temos um banco completo rodando da mesma forma que configuramos uma instance com Linux ou Windows.


Em 2014, a AWS lançou um novo produto chamado Aurora. Basicamente, é um RDS, porém, com apenas duas opções de compatibilidade: PostgreSQL OU MySQL, no entanto, ambas as engines são otimizadas pela AWS para oferecer os melhores recursos no ambiente Cloud. O Aurora, além de oferecer vantagens em termos de alta-disponibilidade (é possível um MySQL com vários nós de ESCRITA cada um em uma região para redução de latência), também oferece vantagens em termos de performance: é até 5 vezes mais rápido comparando com MySQL e 3 vezes mais rápido comparando com PostgreSQL. A configuração dele é feita do mesmo modo que os outros servidores RDS, é necessário apenas escolher a Engine Aurora apropriada.



Google Cloud Plataform


Como uma das líderes web do mundo em serviços online, o google também tem o seu próprio serviço de cloud computing conhecido como GCP. Da mesma forma que a AWS, ela também oferece um nível de escalabilidade a partir de uma infraestrutura distribuída em vários países.

No Google, a oferta de Banco de dados relacional é chamada de Cloud SQL. Ele é muito semelhante ao RDS, altamente disponível, escalonável e muito seguro. Também tem a opção de backups automatizados, porém, oferece menos opções de engine. E a pergunta principal para quem observou o planilha acima é: cadê o Oracle Database ? Segundo a Oracle, apenas dois serviços de Cloud podem rodar Oracle Database (além dela): AWS e Azure (https://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf).


Uma das vantagens do Cloud SQL é que ele permite configuração independe de CPU e memória. Ou seja: meu serviço precisa de muitas CPU’s e pouca memória? OU preciso de poucas CPUs e muita memória? Ambas as configurações são possíveis. Também possui maior flexibilidade em relação à IOPS vs espaço disponível. Basta escolher o tamanho máximo do volume de disco e escolher o nível de IOPS que posso receber por ele.

Por outro lado, as configurações de alta-disponibilidade, cluster, replicação se não forem bem configuradas e ajustadas, podem ser insuficientes para alguns ambientes. O sistema de coleta de logs também precisa de melhorias, pois, em ambientes com alta performance, muitas vezes consultar os logs de erro do banco, ou logs de querys acaba virando uma tarefa bem complicada devido à forma como o GCP disponibiliza os dados para leitura.


Assim como a AWS o GCP tem um outro serviço chamado Cloud Spanner. Mas, diferente do Aurora que adota compatibilidade com MySQL ou com PostgreSQL o Cloud Spanner é um engine totalmente diferente. Foi projetado para substituir bancos relacionais (OLTP) e adota algumas estratégias bem diferentes dos concorrentes, como possibilidade de escalonamento tanto vertical quanto horizontal sem indisponibilidade do ambiente. No Aurora, é possível escalonamento horizontal, porém, as réplicas são sempre leitura (agora já é possível ter um cluster com nós de multiplica escrita, porém, para um número limitado de versões de Banco). O Cloud Spanner por outro lado, já nasceu com possibilidade de escalonamento horizontal, sem necessidade de parada dos ambientes. Além disso, é o único que promete uma SLA de disponibilidade de 99.999% (se configurado como instance multi-regional).


No próximo artigo falaremos sobre Azure e Oracle. Até lá!


Ricardo Silvério - DBA Especialista em Big Data.

CEO Siltech Consult & Responsável pela Divisão de DBA Services na Cymeon Technology

Posts Em Destaque
Posts Recentes