Rápida recuperação de desastres entre regiões e leituras globais de baixa latência

com o Amazon Aurora Global Database

Neste tutorial, saiba como criar uma implantação do Amazon Aurora Global Database que se estende por várias regiões da AWS e replica dados sem impacto na performance. O Aurora Global Database oferece recuperação de desastres após interrupções por toda a região e permite leituras globais de baixa latência.

O Amazon Aurora é um banco de dados relacional compatível com MySQL e PostgreSQL que combina a performance e a disponibilidade de bancos de dados comerciais tradicionais com a simplicidade e a economia de bancos de dados de código aberto.

Um Aurora Global Database consiste em uma região principal da AWS, em que os dados são absorvidos, e várias regiões da AWS secundárias somente leitura em que os dados são replicados. Suas gravações vão para o banco de dados primário, mas você pode ler de qualquer região e aproveitar a baixa latência.

Este tutorial usará o Amazon Aurora com compatibilidade com MySQL. O tutorial não está no nível gratuito e custará menos de 1 USD desde que você siga as etapas no tutorial e encerre seus recursos ao fim do tutorial.

Pré-requisitos

Um cluster de banco de dados do Amazon Aurora consiste em uma ou mais instâncias do banco de dados e um volume de cluster que gerencia os dados para essas instâncias de banco de dados. Um volume de cluster do Aurora é um volume de armazenamento de banco de dados virtual que se expande por várias zonas de disponibilidade, em que cada zona de disponibilidade tem uma cópia dos dados do cluster de banco de dados. Dois tipos de instâncias de banco de dados constituem um cluster do banco de dados Aurora: uma instância de banco de dados principal, que dá suporte a operações de leitura e gravação, e uma réplica do Aurora, que se conecta ao mesmo volume de armazenamento que a instância de banco de dados principal e dá suporte apenas a operações de leitura. Cada cluster de banco de dados Aurora pode ter até 15 réplicas do Aurora localizadas em zonas de disponibilidade separadas. O Aurora falhará automaticamente em uma réplica do Aurora caso a instância principal de banco de dados fique indisponível.

Neste tutorial, você criará um Aurora Global Database com um cluster principal em uma região um cluster secundário em outra região. Cabe a você decidir quais regiões serão usadas. É recomendável ter um aplicativo em cada região utilizada. Por exemplo, se o Aurora Global Database tiver um cluster principal em us-east-1 e um cluster secundário em eu-west-3, você deverá ter uma instância em us-east-1 e outra em eu-west-3.

Além disso, se desejar economizar tempo, para cada uma dessas regiões, você poderá criar um grupo de segurança que permita a entrada de conexões de suas instâncias. Por exemplo, você pode criar um grupo de segurança com uma regra interna do tipo MYSQL/Aurora, permitindo conexões TCP na porta 3306 a partir do grupo secundário de suas instâncias.

Finalmente, para testar o Aurora Global Database (ver a Etapa 8), você precisará de um cliente MySQL. Se instâncias do seu aplicativo estiverem executando o Amazon Linux, instalar o cliente MySQL poderá ser tão simples quando executar sudo yum install mysql, mas o comando exato depende do sistema operacional utilizado. Se estiver executando o Windows, você poderá fazer download do workbench MySQL.

Sobre este tutorial
Tempo 10 minutos                                           
Custo Menos de 1 USD
Caso de uso Bancos de dados
Produtos Amazon Aurora, Amazon RDS
Público Administradores de banco de dados, Desenvolvedores
Nível Intermediário
Data da última atualização 3 de junho de 2019

Etapa 1: Acesso ao console do Amazon RDS

1.1 – Abra um navegador e acesse o console do Amazon RDS. Se você já tiver uma conta da AWS, faça login no console. Caso contrário, crie uma nova conta da AWS para começar.

1.2 – No canto superior direito, selecione a região em que você deseja iniciar o cluster principal do banco de dados do Aurora. Para fins deste tutorial, usaremos us-east-1 como a região principal e eu-west-1 como a região secundária.

1.3 – Clique em “Create database” (Criar banco de dados) na janela do Amazon Aurora.

1.4 – Role para baixo e clique em “Try it now” (Teste agora) na janela Aurora Global Database. Se você não vir a opção “Try it now” (Teste agora), clique aqui.

Etapa 2: Opções de mecanismo

2.1 – Em tipo de mecanismo, selecione “Amazon Aurora”.

2.2 – Em Edition (Edição), selecione “Amazon Aurora with MySQL compatibility” (Amazon Aurora com compatibilidade com MySQL).

2.3 – Em Version (Versão), selecione a versão mais recente do MySQL.

2.4 – Em Database Location (Local do banco de dados), selecione “Global”.

2.5 – Selecione o modelo “Production” (Produção).

Etapa 3: Configurações de banco de dados global

3.1 – Para o Identificador de banco de dados global, digite “banco de dados global-1”.

Etapa 4: Configurações de região principal

4.1 – Para o tamanho de instância de banco de dados, selecione uma instância grande (que termine com .large).

4.2 – Para Availability & durability (Disponibilidade e durabilidade), escolha “Don't create an Aurora Replica” (Não criar uma réplica do Aurora).

Note que é recomendável ter uma réplica do Aurora para ambientes de produção, pois ela permite que você escale leituras e fornece failovers automáticos na mesma região que o seu banco de dados principal. Neste tutorial, não estamos adicionando uma réplica do Aurora para tornar o exercício simples.

Etapa 5: Conectividade

5.1 – Selecione a VPC na qual deseja criar o banco de dados.

Lembre-se de que, após a criação, não será possível migrar o banco de dados para uma VPC diferente.

5.2 – Clique em “Additional connectivity configuration” (Configuração de conectividade adicional).

5.3 – Selecione o valor padrão do grupo de sub-redes.

5.4 – Em Publicly accessible (Acessível publicamente), selecione “No” (Não).

Isso significa que você precisará se conectar ao banco de dados a partir de uma instância do EC2 na mesma VPC.

5.5 – Em VPC security group (Grupo de segurança VPC), selecione “Create new” (Criar novo). Se você tiver um grupo de segurança que permita conexões TCP de entrada na porta 3306, poderá escolhê-lo em vez de criar um novo.

5.6 – Em New VPC security group name (Novo nome do grupo de segurança VPC), digite “banco-de-dados-global”.

5.7 – Deixe o valor padrão para a porta de banco de dados.

Etapa 6: Configuração adicional

6.1 – Deixe os valores padrão para Opções de banco de dados, Backup, Monitoramento, Exportações de log, Manutenção e Proteção contra exclusão.

6.2 – Clique em “Create database” (Criar banco de dados).

Durante a criação das instâncias, você verá uma faixa explicando como obter credenciais. É uma boa oportunidade de salvar as credenciais, pois é a única vez que você visualizará esta senha.

6.3 – Clique em “View credential details” (“Visualizar detalhes da credencial”).

6.4 – Salve o nome de usuário e a senha.

Etapa 7: Adicione uma região secundária

7.1 – Selecione “banco-de-dados-global-1”.

7.2 – Clique em “Actions > Add a region” (Ações > Adicionar uma região).

7.3 – No menu suspenso, selecione uma região.

7.4 – Repita as etapas 4.1 a 5.7.

7.5 – Clique em “Add region” (Adicionar região).

Quando os bancos de dados estiverem disponíveis, prossiga para a etapa 8.

Etapa 8: Teste o Aurora Global Database

8.1 – Clique no banco de dados principal.

8.2 – Copie o endpoint do gravador.

Abra duas janelas de terminal, registre suas instâncias nas regiões principal e secundário e use o cliente de linha de comando mysql para se conectar aos bancos de dados.

Agora é possível criar um banco de dados, criar uma tabela e gravar alguns registros. Tudo o que for gravado no cluster principal será replicado no secundário.

8.3 – Conecte-se ao banco de dados principal:

$ mysql -h endpoint -P 3306 -u admin -p

Quando a senha for solicitada, insira a senha que você salvou na etapa 6.6.

8.4 – Crie um banco de dados e grave alguns dados.

mysql> CREATE database tutorial;
Query OK, 1 row affected (0.01 sec)

Agora você pode usar o banco de dados do tutorial, criar tabelas e adicionar alguns registros.

8.5 – Vá para a região secundária.

8.6 – Clique no banco de dados secundário.

8.7 – Copie o endpoint de leitor.

8.8 – Conecte-se ao banco de dados secundário:

$ mysql -h endpoint -P 3306 -u admin -p

Quando a senha for solicitada, insira a senha que você salvou na etapa 6.6.

8.9 – Leia alguns dados:

mysql> USE tutorial;
Banco de dados alterado

Agora você pode verificar se o banco de dados foi replicado no banco de dados secundário. Se você criou uma tabela, poderá gravar no cluster principal e ler os dados do cluster secundário.

Etapa 9: Failover para uma região secundária

Enquanto o cluster padrão do Aurora oferece a você recursos de failover na região, o Aurora Global Database permite realizar failover no cluster secundário em uma região diferente. Isso significa que o banco de dados sobreviverá mesmo que uma região inteira fique indisponível.

A execução de um failover para um Aurora Global Database envolve a remoção do cluster secundário do banco de dados global original, retornando-o para um cluster regional com total capacidades de leitura e gravação, utilizando-o como o cluster principal em um novo Aurora Global Database.

É possível fazer o failover manual seguindo as instruções abaixo.

9.1 – Pare de gravar no banco de dados principal.

9.2 – Selecione o cluster secundário.

9.3 – Clique em “Actions > Remove from Global” (Ações > Remover de global).

9.4 – Confirme clicando em “Remove and promote” (Remover e promover).

9.5 – Configure o aplicativo para gravar no cluster recém-promovido.

9.6 – Ainda na região secundária, selecione o cluster regional.

9.7 – Clique em “Actions > Create global database” (Ações > Criar banco de dados global).

9.8 – No menu suspenso, selecione uma região.

9.9 – Repita as etapas 4.1 a 5.7.

Etapa 10: Limpeza

Para concluir este tutorial, exclua o Aurora Global Database. Você pode mantê-lo, mas incorrerá em cobranças.

Para excluir o Aurora Global Database, acesse o Painel de RDS e siga estas instruções:

10.1 – Selecione “Databases” (Bancos de dados) no painel esquerdo.

Será mostrada uma lista de todos os clusters de banco de dados do Aurora.

10.2 – Selecione uma instância de banco de dados global.

10.3 – Clique em “Actions > Delete” (Ações > Excluir).

10.4 – Você será solicitado a informar se deseja criar um backup final. Isso costuma ser uma boa ideia, mas não é necessário para este tutorial. Selecione “No” (Não) e clique em “Delete” (Excluir).

10.5 – Selecione um cluster de banco de dados global.

10.6 – Clique em “Actions > Remove from Global” (Ações > Remover de global).

10.7 – Confirme clicando em “Remove from global” (Remover de global).

10.8 – Selecione o cluster de banco de dados regional.

10.9 – Clique em “Actions > Delete” (Ações > Excluir).

10.10 – Você será solicitado a informar se deseja criar um snapshot final. Isso costuma ser uma boa ideia, mas não é necessário para este tutorial. Selecione “No” (Não) e clique em “Delete DB cluster” (Excluir cluster de banco de dados).

10.11 – Alterne para a região secundária e execute as tarefas 10.1 a 10.9.

10.12 – Selecione o banco de dados global.

10.13 – Clique em “Actions > Delete” (Ações > Excluir).

10.14 – Confirme digitando “delete me” (exclua-me) e clicando em “Delete” (Excluir).

O status do cluster mudará para “Deleting” (Excluindo).

Parabéns

Você criou um Aurora Global Database com replicação em regiões. Você aprendeu como escalar leituras para outras regiões para aproveitar a latência baixa e executou um failover para uma região secundária.

Este tutorial foi útil para você?