Os sistemas de bases de dados convencionais frequentemente enfrentam dificuldades em relação à eficiência, disponibilidade e capacidade de expansão. O Amazon Aurora surge como uma solução inovadora para estes desafios.
As bases de dados são fundamentais para suportar as aplicações que impulsionam os negócios. É crucial que sejam robustas, fiáveis e rápidas para oferecer serviços de qualidade superior. A Amazon Web Services simplifica a gestão de dados para as empresas, resultando numa maior satisfação do cliente.
O serviço web AWS Aurora, da Amazon, exemplifica este tipo de solução. Utiliza o volume do cluster para organizar os dados e alocá-los para backups de emergência.
O que é o Amazon Aurora?
O Amazon Aurora, uma base de dados nativa da nuvem, apresenta compatibilidade total com as versões open-source do MySQL e PostgreSQL. O Aurora suporta todas as funcionalidades do MySQL open-source, permitindo também uma integração perfeita com aplicações desenvolvidas para estas plataformas.
O Aurora foi projetado para atender clientes que buscam um serviço de base de dados totalmente gerido, com a economia e a simplicidade de sistemas open-source, mas com um desempenho comparável a soluções comerciais.
O Aurora oferece um desempenho até cinco vezes superior ao MySQL tradicional e três vezes superior ao PostgreSQL. O Amazon RDS cuida de tarefas como provisionamento, backup e recuperação, sem custos iniciais e com uma taxa mensal acessível.
A singularidade do Aurora reside na sua reconhecida excelência operacional e nos recursos de nível empresarial, a um custo significativamente inferior ao das bases de dados comerciais.
O Aurora proporciona um desempenho, disponibilidade, segurança e fiabilidade sem paralelo em escala global. Desde a sua criação em 2014, o Aurora tem sido o serviço de maior crescimento dentro do portfólio da AWS.
Qual a finalidade do Amazon Aurora?
O notável crescimento do Aurora é resultado do grande interesse por diversas indústrias. Tem-se verificado um forte interesse em setores como Serviços Financeiros, Software e Internet, bem como nas áreas de Entretenimento, Jogos e Varejo nos últimos meses.
Muitos clientes estão a migrar para o Aurora MySQL e Aurora PostgreSQL com o intuito de consolidar as suas bases de dados MySQL e PostgreSQL. Paralelamente, observa-se um número crescente de clientes a migrar de bases de dados legadas como Oracle ou Microsoft SQL Server para o Aurora PostgreSQL.
Estes clientes, que buscam “liberdade de restrições”, pretendem evitar custos elevados de licenciamento e a dependência de bases de dados legadas. Empresas com elevado potencial de crescimento ambicionam escalar de forma rápida e eficiente em todas as regiões, bem como integrar os serviços da AWS.
Vantagens do Amazon Aurora
Apresentamos abaixo as vantagens da utilização do Amazon Aurora:
Escalabilidade
Pode ativar a funcionalidade de escalonamento automático, que aumenta a capacidade de armazenamento quando necessário e a reduz em caso de diminuição do espaço utilizado.
Relação custo-benefício
Apenas paga pela capacidade de processamento e espaço de armazenamento que utiliza. Não existem taxas iniciais ou outros encargos. Os pagamentos mensais são simples e transparentes.
Segurança
O Amazon VPC permite isolar a rede onde a sua base de dados está a ser executada.
Utilize o AWS Key Management Service para criar chaves de encriptação que protegem os seus dados.
Elevada disponibilidade e durabilidade
Pode criar réplicas do Aurora em múltiplas zonas de disponibilidade.
Trata-se de uma base de dados global que pode ser facilmente distribuída em várias regiões da AWS, reduzindo a velocidade de leitura/escrita local.
Suporte para Migração
Para migrar a sua base de dados local para o Aurora, pode utilizar os comandos pg-dump ou MySQL dump.
Totalmente gerenciado
O Aurora é extremamente fácil de usar. A configuração de uma instância é simples, utilizando a consola AWS RDS. O Aurora oferece monitorização através do Amazon Cloudwatch, sem custos adicionais.
Não necessita de se preocupar com provisionamento, atualização ou upgrades. A Amazon assume o controlo total sobre todos os aspetos do seu software, implementando as correções necessárias.
Principais funcionalidades do Amazon Aurora
Apresentamos abaixo as principais funcionalidades do Amazon Aurora:
Escalabilidade: Esta é a funcionalidade mais notável do Amazon Aurora. A base de dados aumenta automaticamente de tamanho, de acordo com as necessidades de armazenamento. O volume pode crescer em incrementos de até 10 GB, atingindo um máximo de 128 TB, o que possibilita um armazenamento contínuo.
Alto rendimento: Os benchmarks SysBench revelaram um aumento de 5x no rendimento. O Amazon Aurora utiliza diversas técnicas de software e hardware para otimizar a memória, a capacidade de computação e a rede disponíveis. Operações de entrada e saída são melhoradas através de técnicas de sistema distribuído, como quorums, para aumentar a consistência do desempenho.
Monitorização e reparação de instâncias: O Amazon RDS monitoriza continuamente a integridade e o desempenho da base de dados Amazon Aurora, bem como das instâncias EC2 subjacentes. O Amazon RDS reinicia automaticamente a base de dados em caso de falha e de todos os processos associados.
Encriptação: O Amazon Aurora garante alta segurança, permitindo encriptar a base de dados utilizando chaves que controla e cria através do AWS Key Management Service. O Amazon Aurora recorre a encriptação SSL para proteger os dados durante a transmissão.
Fácil de usar: A utilização do Amazon Aurora é bastante simples. A consola de gestão do Amazon RDS é utilizada para criar a nova instância da base de dados Amazon Aurora, num processo que requer apenas uma chamada de API. As instâncias da base de dados Amazon Aurora são pré-configuradas com os parâmetros e definições adequadas a cada tipo de instância.
Relação custo-benefício: Pague apenas pelo que usa. Não existem custos iniciais ou outras taxas. Os pagamentos mensais são simples.
Suporte à migração: Para migrar a sua base de dados local para o Aurora, pode usar os comandos pg-dump ou MySQL dump.
O Aurora é totalmente gerenciado: Pode começar a utilizá-lo imediatamente. Apenas necessita criar uma instância através da consola AWS RDS ou fazendo uma chamada API do seu código. Não precisa de se preocupar com provisionamento, atualização ou upgrades.
Arquitetura do Amazon Aurora
Toda a arquitetura da base de dados Aurora assenta num SGBD (Sistema de Gestão de Bases de Dados) tradicional. Reaproveita a maioria dos componentes do SGBD, como o gestor de transações, o motor de execução de consultas e o gestor de recuperação.
O Amazon Aurora é um novo SGBD que ultrapassa as limitações das soluções tradicionais. Implementa diversas melhorias nos SGBDs existentes, com o objetivo de aumentar a sua disponibilidade, fiabilidade e capacidade de expansão.
Estas alterações incluem:
- Utilização de uma configuração de réplica primária
- Replicação remota do armazenamento de dados
- Apenas os registos de alterações são guardados no disco remoto
A arquitetura do Amazon Aurora permite expandir as camadas de armazenamento das bases de dados relacionais tradicionais.
A instância primária da base de dados do Amazon Aurora envia o redo log para a camada de armazenamento para processamento. Os logs são processados pela camada de armazenamento, que cria e armazena novas versões de página e faz backup de tudo no S3.
Crédito da imagem: AWS
O Amazon Aurora necessita apenas de criar instâncias adicionais do motor de base de dados e conectá-las à camada de armazenamento existente durante uma expansão, eliminando o gargalo na replicação de dados ao delegar estas tarefas de processamento paralelo à camada de armazenamento.
Isto permite a criação de diversas novas funcionalidades, como:
- Recuperação instantânea de falhas: não é necessário repetir os logs a partir do último ponto de verificação.
- Failovers rápidos: não há necessidade de se preocupar com qual base de dados réplica tem o registo redo log mais recente. A camada de armazenamento trata desse aspeto.
- Backtracking: uma vez que a camada de armazenamento transmitiu os redo logs, pode “retroceder” os dados para pontos específicos no passado, sem necessitar restaurar um ponto de verificação a partir do backup do S3
Configurando o Amazon Aurora
Apresentamos abaixo os passos para configurar o Amazon Aurora com sucesso.
#1. Inicie sessão na consola de gestão da AWS e abra o RDS.
#2. Clique em criar base de dados.
#3. Selecione a opção Motor como Amazon Aurora.
#4. Selecione a versão do Aurora MySQL que necessita.
#5. Crie um identificador de cluster de base de dados e defina o nome de utilizador e a palavra-passe nas definições de credenciais.
#6. Selecione a configuração da instância na opção suspensa e escolha criar ou não uma réplica.
#7. Selecione as opções de conectividade conforme mostrado abaixo.
#8. Escolha um grupo de segurança de VPC existente ou crie um novo.
#9. Ative a monitorização aprimorada, selecione a granularidade e a opção de função de monitorização.
#10. Por fim, clique em criar base de dados.
#11. Criou com sucesso a base de dados Amazon Aurora.
Modelo de preços: Amazon Aurora
As ACUs (Unidades de Capacidade Aurora) sem servidor Aurora v2 custam US$ 0,12 por hora, o dobro do preço das ACUs Aurora provisionadas, o que significa que:
- O custo operacional mínimo atual é de: 4 ACUs, US$ 0,48 por hora ou US$ 350 por mês
- Para cargas de trabalho que acionam repetidamente a função de dimensionamento automático, existe um aumento mínimo de escalabilidade de 30 segundos ou US$ 0,0005 por meia ACU.
O custo mensal do Aurora Serverless V2 é de US$ 350. Cada evento de dimensionamento automático será cobrado pelo menos US$ 0,0005. Embora a capacidade equivalente do Aurora seja de US$ 175 por mês, não terá dimensionamento automático responsivo sem servidor.
Casos de utilização: Amazon Aurora
#1. Software como Serviço (SaaS)
Utiliza arquiteturas com capacidade multi-inquilino, flexíveis em termos de armazenamento e dimensionamento de instâncias. Consequentemente, o Amazon Aurora permite às empresas focarem-se no desenvolvimento de aplicações de alta qualidade, sem se preocuparem com a base de dados.
#2. Finalidade de jogos
O AWS Aurora funciona de forma semelhante a uma base de dados relacional. Oferece alto rendimento, capacidade de armazenamento massiva, elevada disponibilidade e alta fiabilidade.
#3. Aplicações empresariais
O Amazon Aurora é compatível com qualquer empresa que procure maior transparência em relação à base de dados relacional. O Aurora oferece uma excelente relação custo-benefício, reduzindo os custos em até 90%, quando comparado com outras opções.
Compatibilidade do Aurora com MySQL e PostgreSQL
O Amazon Aurora foi desenvolvido para garantir um alto desempenho, disponibilidade global e total compatibilidade com MySQL/PostgreSQL. As ferramentas padrão facilitam a migração de bases de dados MySQL e PostgreSQL para o Aurora. Pode também executar aplicações legadas do SQL Server com Babelfish para Aurora PostgreSQL, com modificações de código mínimas.
O Amazon Aurora é compatível com as ferramentas padrão de importação/exportação do PostgreSQL, como pg_dump ou pg_restore. Pode também criar uma nova tabela Amazon Aurora utilizando um Snapshot de base de dados Amazon RDS ou MySQL.
A criação de snapshots de bases de dados é geralmente um processo rápido, dependendo da quantidade e do formato dos dados a migrar.
Amazon Aurora vs Amazon RDS
Design da arquitetura
A arquitetura do RDS é semelhante, permitindo instalar um motor de base de dados no Amazon EC2 manualmente, mas delegando o provisionamento e a manutenção à AWS. O RDS oferece várias funcionalidades, como failover automático, backups, etc. O RDS utiliza volumes do Amazon EBS para armazenar dados de registo e da base de dados.
O sistema de armazenamento de base de dados Aurora é fiável e tolerante a falhas. O armazenamento da base de dados do Aurora é independente das instâncias. O Aurora armazena os dados em seis cópias, cada uma com blocos de 10 GB. Estas cópias são distribuídas por três Zonas de Disponibilidade. Mesmo que tenha apenas uma instância do Aurora, existirão sempre seis cópias dos seus dados.
Desempenho
O RDS utiliza armazenamento SSDs para melhorar o desempenho do débito de E/S. Existem duas opções de armazenamento com suporte SSD disponíveis. Uma para aplicações OLTP de alto desempenho e outra para uso geral e económico.
O Aurora oferece o dobro do desempenho do PostgreSQL e cinco vezes o desempenho do MySQL padrão, em hardware comparável. O desempenho do Aurora tem sido consistentemente superior e mais estável.
Suporte do motor de base de dados
O RDS suporta MySQL, PostgreSQL e MariaDB, bem como Microsoft SQL Server e Oracle.
O Aurora suporta PostgreSQL e MySQL, o que significa que pode utilizar as ferramentas e aplicações de base de dados existentes no PostgreSQL e no MySQL sem efetuar quaisquer alterações.
Durabilidade e Disponibilidade
O Aurora possui um modelo de armazenamento único que permite backups e restaurações contínuas com um RPO (Objetivo de Ponto de Recuperação) muito baixo, tornando-o mais fiável e durável do que o RDS.
Os dados são duráveis por design no Aurora. Existe sempre um número de cópias dos seus dados. Cada cluster do Aurora tem seis nós de armazenamento distribuídos por três AZs. Mesmo que tenha apenas um nó de computação, haverá sempre diversas cópias dos seus dados.
Resiliência
Devido ao seu design arquitetónico, o Aurora é mais resiliente do que o RDS. Recupera rapidamente de falhas. Se um nó de computação falhar, o Aurora consegue recuperar rapidamente.
Armazenamento
O escalonamento automático do armazenamento RDS aumenta a capacidade de armazenamento até 64 TiB (exceto 16 TiB do SQL Server) para acomodar cargas de trabalho de base de dados crescentes. Não há interrupções.
O Aurora aumenta automaticamente o armazenamento, escalonando-o de um mínimo de 10 GB até um máximo de 128 TiB, em incrementos de 10 GB, sem qualquer efeito no desempenho da base de dados.
Escalabilidade
Escalonamento vertical: RDS e Aurora permitem escalar recursos de memória e computação até um máximo de 244 GiB de RAM e 32 CPUs virtuais. Em questão de segundos, pode escalar as operações.
Aurora Auto Scaling dinâmico: O Aurora Auto Scaling ajusta dinamicamente o número de réplicas do Aurora disponíveis para um cluster de base de dados do Aurora, através da replicação de mestre único. O RDS NÃO suporta esta funcionalidade de Auto Scaling.
Replicação
O RDS pode ser usado para disponibilizar até cinco réplicas. O processo de replicação é também mais lento do que o do Aurora.
O Aurora pode provisionar até 15 réplicas e a replicação leva apenas alguns segundos. O Aurora escala mais rapidamente, pois pode adicionar novas réplicas de leitura rapidamente.
Failover
No RDS, o failover para ler a réplica ocorre manualmente, podendo provocar perda de dados. O Multi-AZ (Instância Standby) pode ser utilizado para automatizar o failover e evitar a perda de dados.
Para evitar a perda de dados, o Aurora utiliza o failover para ler réplicas automaticamente. O Aurora tem um tempo de failover mais rápido.
Pontos finais de cluster
O RDS possui um ponto final de cluster que pode usar para executar as suas consultas de escrita. Trata-se do ponteiro DNS para a sua instância mestre de base de dados atual. O RDS redireciona o ponto final para o novo mestre através de uma simples alteração de DNS durante um failover.
O ponto final do cluster também está disponível no Aurora para escrever consultas. Este ponto final também funciona como um balanceador de carga para as suas réplicas de leitura. Este ponto final pode ser utilizado para responder às suas consultas de leitura.
Backup
O RDS cria e guarda automaticamente backups das suas instâncias de base de dados durante a janela de backup da sua instância. O RDS faz um snapshot da sua instância de base de dados como um volume de armazenamento, fazendo backup de todas as bases de dados e não apenas daquelas que selecionou.
O Aurora faz backup automático dos volumes de cluster e continua a restaurar os dados durante o período de retenção do backup. Os backups do Aurora são contínuos e incrementais, o que lhe permite restaurar rapidamente qualquer ponto dentro do período de retenção do backup.
Apresentamos abaixo uma tabela comparativa entre Amazon Aurora vs. Amazon RDS:
Amazon Aurora | Amazon RDS |
Pode expandir o armazenamento de 10 GB para 64 GB | O RDS permite 64 GB para todos os motores, mas apenas 16 GB para o SQL Server |
Pode escalar a memória e computação para um máximo de 32 vCPUs e 244 GiB de RAM | Semelhante ao Aurora |
Suporta MySQL e PostgreSQL | Suporta Microsoft SQL Server, MariaDB, Oracle Database, MySQL, PostgreSQL e Amazon Aurora |
Suporta quinze réplicas | Suporta cinco réplicas |
O preço depende das operações de E/S | Pode experimentar gratuitamente sem uma taxa mínima de utilização |
Amazon Aurora vs DynamoDB
Durabilidade e Disponibilidade
Cada parte dos dados do DynamoDB é replicada em vários nós físicos. A Amazon colocou estes nós físicos em várias zonas (também conhecidas como zonas de disponibilidade) para garantir elevada durabilidade e disponibilidade no caso de um desastre, como um incêndio ou uma grande queda de energia. A operação continuará mesmo que uma cópia caia. Os SSDs são também altamente fiáveis e duráveis.
Backups e restauração
O DynamoDB oferece backup sob demanda, bem como PITR (backups pontuais), o que permite aceder a qualquer estado da base de dados. O DynamoDB é capaz de fazer backup de qualquer quantidade de dados. O desempenho e a disponibilidade não serão afetados. O backup leva muito pouco tempo e os utilizadores não necessitam de se preocupar com agendamentos de backup ou processos em segundo plano. A AWS permite a recuperação de backups com apenas uma chamada de API.
O processo de backup do Amazon Aurora é semelhante ao do DynamoDB. Foi criado sem interrupções de desempenho ou interrupções no serviço de base de dados. Os backups da Amazon são guardados num bucket S3. O Aurora irá criar automaticamente um backup de 30 minutos caso não especifique uma janela de backup.
Controlo de acesso
O DynamoDB suporta utilizadores e funções do IAM com políticas refinadas que limitam a criação de bases de dados e os privilégios de consulta. O Amazon Aurora também possui um esquema de permissões semelhante.
No entanto, o Aurora também disponibiliza interfaces de conexão compatíveis com MySQL e PostgreSQL para ligar à base de dados.
O DynamoDB, um serviço regional, não está sujeito ao limite da VPC. No entanto, os clusters de base de dados do Aurora precisam ser estabelecidos numa VPC que define claramente o seu limite de rede. Pode também utilizar os grupos de segurança da VPC para controlar quais dispositivos ou instâncias do Amazon EC2 têm permissão para ligar à instância da base de dados.
Apresentamos abaixo uma tabela comparativa entre Amazon Aurora vs. DynamoDB:
Amazon Aurora | DynamoDB |
Base de dados relacional compatível com MySQL e PostgreSQL | Base de dados sem SQL |
Multiregião, mestre único | Multiregião, multi-mestre |
A réplica pode ser promovida a primária em um minuto | Alta disponibilidade |
A latência da replicação é inferior a 1 segundo | A latência da replicação é inferior a milissegundos |
Conclusão
Chegamos ao fim da análise. Estamos a entrar numa nova era das bases de dados relacionais e o Aurora é apenas o ponto de partida. A resposta dos clientes tem sido extremamente positiva. Líderes em todos os setores, como a Capital One, Dow Jones, Netflix e Verizon, estão a migrar as suas cargas de trabalho de base de dados relacional para o Aurora, incluindo edições compatíveis com MySQL e PostgreSQL.