Primeiros passos com o Amazon Aurora

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.

Amazon Web Services (AWS) - Lambda - Fundamentos
Curso de Amazon Web Services (AWS) - Lambda - Fundamentos
CONHEÇA O CURSO

Isso é 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:

Arquitetura de storage do Aurora

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.

Amazon Web Services (AWS) - Fundamentos
Curso de Amazon Web Services (AWS) - Fundamentos
CONHEÇA O CURSO

A 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:

Cluster RDS sendo criado no console

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:

Deixe seu comentário

Autor dos cursos de cloud computing da TreinaWeb. Graduado em Gestão de TI pela FATEC e quase bacharel em Sistemas de Informação pela UFSCar. Tem experiência em desenvolvimento backend com PHP, mas se encontrou trabalhando com DevOps. Microsoft Certified: DevOps Engineer Expert, Azure Solutions Architect Expert e Azure Data Engineer Associate, AWS Certified Solutions Architect - Associate, e Zend Certified Engineer (ZCE). @gmsantos

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200