O Amazon Aurora é um banco de dados relacional da AWS compatível com MySQL e PostgreSQL. Esse banco de dados foi construído pensando em alta disponibilidade e escalabilidade. Nesse artigo vamos entender os benefícios do Amazon Aurora e como podemos criar nosso primeiro cluster.
Benefícios do Amazon Aurora
Anunciado em 2014, o Amazon Aurora é um banco de dados relacional oferecido como um serviço na AWS. O Amazon Aurora busca entregar um banco de dados com features e performance de soluções comerciais mas com um custo de uso de um banco de dados open source, não requerendo o uso de licenças para seu uso. Você só paga pela infraestrutura ao provisionar o Amazon Aurora.
Apesar de ser oferecido juntamente com o Relational Database Service (RDS), o Aurora tem um funcionamento diferente das outras engines disponíveis no serviço. Além das funcionalidades já oferecidas com as outras engines, como suporte a múltiplas availability zones, réplicas de leitura e backup automático, o Aurora estende esses recursos e adiciona suporte a bancos de dados globais replicados em diferentes regiões da AWS, réplicas que permitem escrita de dados e até mesmo instâncias serveless, o que economiza bastante a conta com bancos de dados que tem grande tempo de ociosidade ou pouco uso.
Curso Terraform - Fundamentos
Conhecer o cursoIsso é possível graças ao funcionamento da camada de storage do Amazon Aurora. Todas as réplicas e a instância principal compartilham de um mesmo storage replicado, reduzindo drasticamente a latência necessária para atividades de replicação entre as instâncias, se comparado com os mecanismos de replicação nativa dos bancos de dados:
Isso permite ao Amazon Aurora alcançar números impressionantes de escalabilidade e performance. Segundo a Amazon, o Aurora chega a ser cinco vezes mais rápido que um banco de dados rodando MySQL tradicional e até três vezes mais rápido que o PostgreSQL. Além disso, o Amazon Aurora suporta de até 15 replicas de leitura, tem um RTO (Recovery time objective) de um minuto e o tempo replicação global entre as regiões da AWS é de aproximadamente um segundo.
Tendo em vista todos esses benefícios, podemos pelo menos cogitar seu uso com aplicações que já usam MySQL ou PostgreSQL, não é mesmo? Para ajudar nesse processo vamos aprender como criar nosso primeiro cluster com Amazon Aurora.
Criando um cluster do Amazon Aurora
Para criar nosso cluster de Amazon Aurora vamos utilizar o AWS CLI. É preciso que você instale essa ferramenta na sua máquina e configure junto a sua conta da AWS. Confira como instalar e configurar o AWS CLI aqui no nosso blog.
Curso Amazon Web Services (AWS) - Fundamentos
Conhecer o cursoA primeira coisa que precisamos fazer é criar o security group que será associado ao nosso cluster:
aws ec2 create-security-group --group-name sg_aurora --description "Allow MySQL Aurora access from internet"
aws ec2 authorize-security-group-ingress --group-name sg_aurora --protocol tcp --port 3306 --cidr 0.0.0.0/0
aws ec2 describe-security-groups --group-names sg_aurora
# salva o id do security group para ser usado a seguir
sg_id=$(aws ec2 describe-security-groups --group-names "sg_aurora" --query "SecurityGroups[0].GroupId" --output text)
O security group vai funcionar como uma camada de segurança extra no nível da rede. Configure a porta de configuração apropriada (3306 para MySQL e 5432 para o PostgreSQL) e o mais importante, o CIDR permitido. Para fins didáticos, esse security group vai aceitar conexões de qualquer lugar da internet, porém é altamente recomendado que você limite para o endereçamento da sua rede, por exemplo.
O próximo passo é criar o cluster do Amazon Aurora. No cluster será possível obter as informações para fazer a conexão com o Amazon Aurora, bem como suas credenciais de acesso e versão do banco de dados compatível:
aws rds create-db-cluster \
--db-cluster-identifier sample-cluster-mysql-aurora \
--engine aurora \
--engine-version 5.6.mysql_aurora.1.22.2 \
--master-username username \
--master-user-password password \
--vpc-security-group-ids $sg_id
Por fim, enquanto nosso cluster é criado, podemos adicionar nossa primeira instância de banco de dados. Utilize o comando abaixo, observando o tamanho de instância desejado:
aws rds create-db-instance \
--db-instance-identifier sample-instance \
--db-cluster-identifier sample-cluster-mysql-aurora \
--engine aurora \
--db-instance-class db.t3.small
Com isso, após aguardar alguns minutos, nosso cluster estará criado e pronto para ser utilizado:
Referências e mais informações
Vimos aqui como podemos criar nosso primeiro cluster com Amazon Aurora, mas existem muitas outras configurações que você pode explorar para criar o seu banco de dados. Abaixo você pode conferir a documentação da AWS que te mostra algumas variações de como você pode criar seu cluster, bem como as referências dos comandos utilizados: