Como posso criar uma réplica de leitura para uma instância de banco de dados MySQL do Amazon Aurora?

7 minuto de leitura
0

Tenho um cluster do Amazon Aurora MySQL. Gostaria de criar uma réplica de leitura dentro da região ou entre regiões ou adicionar regiões para meu cluster de banco de dados do Aurora. Como posso fazer isso?

Breve descrição

As réplicas do Aurora aumentam a capacidade computacional no seu cluster de banco de dados Aurora MySQL. Elas ajudam na distribuição da workload de leitura (escalonamento de leitura) dentro da região e também atuam como destinos de failover. Isso significa que, se a sua instância de banco de dados primária falhar, uma réplica do Aurora será promovida para instância primária.

Uma réplica de leitura entre regiões usa logs binários do MySQL para replicar seus dados em um cluster em outra região. Isso permite escalar operações de leitura para uma região secundária mais próxima dos usuários, além de melhorar recursos de recuperação de desastres. O processo também facilita a migração de uma região da AWS para outra.

Bancos de dados globais do Amazon Aurora podem abranger várias regiões da AWS. Permitem leituras globais de baixa latência e fornecem recuperação da rara interrupção que pode afetar toda uma região da AWS. O Aurora replica dados para as regiões secundárias da AWS usando seu próprio protocolo de replicação e infraestrutura dedicada, resultando em latências normalmente inferiores a um segundo.

Use as etapas a seguir para criar uma réplica de leitura na região ou entre regiões ou para adicionar uma nova região ao seu cluster de banco de dados do Aurora MySQL.

Além dos logs binários gerenciados pelo Aurora, você pode configurar e gerenciar seu próprio ambiente de replicação de logs binários. Nesse ambiente, o Aurora pode ser a origem ou o destino.

Observação: essas etapas não se aplicam aos clusters multimaster do Aurora ou Aurora Sem Servidor.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Criar uma réplica de leitura na região para um cluster do Aurora MySQL

Usar o console do Amazon RDS

1.    Abra o console do Amazon RDS** ** e escolha Bancos de dados no painel de navegação.

2.    Escolha o cluster de banco de dados ao qual você deseja adicionar a nova instância de banco de dados.

3.    Na seção Ações, escolha Adicionar leitor.

4.    Na página Adicionar leitor, personalize as opções da sua réplica do Aurora.

5.    Escolha Adicionar leitor para criar a réplica.

Usar a AWS CLI

Para criar uma réplica do Aurora no seu cluster de banco de dados usando a AWS CLI, execute o comando create-db-instance. Inclua o nome do cluster de banco de dados usando a opção --db-cluster-identifier. Você também pode especificar uma zona de disponibilidade (AZ) para a réplica do Aurora usando o parâmetro availability-zone.

Esse exemplo de comando cria uma réplica de leitura para o Aurora MySQL (mesma região e compatível com o Aurora MySQL 5.7 e o Aurora MySQL 8.0).

Linux, macOS ou Unix:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a \
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large \
    --availability-zone us-west-2a

Windows:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a ^
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r6g.large ^
    --availability-zone us-west-2a

Observação: se quiser criar uma réplica de leitura para um cluster compatível com o Aurora MySQL 5.6, modifique o parâmetro --engine para --engine aurora neste comando.

Criar uma réplica de leitura entre regiões para um cluster do Aurora MySQL

Antes de criar uma réplica de leitura entre regiões, você deve ativar logs binários para seu cluster de banco de dados do Aurora MySQL de origem. A replicação entre regiões usa a replicação de binários do MySQL para reproduzir alterações no cluster de réplica de leitura entre regiões. Em seguida, crie um cluster entre regiões usando o console do Amazon RDS ou a AWS CLI. 

Observação: Você não pode criar uma réplica criptografada do Aurora para um cluster de banco de dados do Aurora não criptografado. Você não pode criar uma réplica do Aurora não criptografada para um cluster de banco de dados do Aurora criptografado.

Ativar logs binários para seu cluster de banco de dados

1.    Atualize o parâmetro binlog_format para seu cluster de banco de dados de origem. Esse é um parâmetro em nível de cluster que se encontra no parameter group de cluster padrão.

2.    Se seu cluster de banco de dados usar o grupo de parâmetros do cluster de banco de dados padrão, crie um novo grupo de parâmetro do cluster de banco de dados para modificar as configurações de binlog_format. A prática recomendada é definir binlog_format como MIXED. Você também pode definir binlog_format como ROW ou STATEMENT se precisar de um formato de binlog específico.

3.    Reinicie seu cluster de banco de dados Aurora para que as alterações entrem em vigor.

Criar um cluster entre regiões usando o console do Amazon RDS

1.    Abra o console do Amazon RDS e escolha a região da AWS que hospeda seu cluster de banco de dados de origem.

2.    No painel de navegação, escolha Instâncias.

3.    Marque a caixa de seleção da instância de banco de dados para a qual você deseja criar uma réplica de leitura entre regiões.

4.    Em Ações, escolha Criar réplica de leitura entre regiões.

5.    Na página Criar réplica de leitura entre regiões, selecione as configurações das opções de seu cluster de banco de dados da réplica de leitura entre regiões.

Criar um cluster entre regiões usando a AWS CLI

Para criar um cluster entre regiões usando a AWS CLI, primeiro crie o cluster propriamente dito na região de destino usando a chamada create-db-cluster. Em seguida, use a chamada create-db-instance para criar a instância do leitor.

Esse exemplo cria uma réplica entre regiões usando Linux, macOS ou Unix e é compatível com o Aurora MySQL 5.7 e o Aurora MySQL 8.0.

1.    Crie o cluster executando um comando semelhante ao seguinte:

aws rds create-db-cluster \
  --db-cluster-identifier sample-replica-cluster \
  --engine aurora-mysql \
  --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-source-cluster

2.    Verifique se o cluster está disponível:

aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster

3.    Crie uma instância no cluster:

aws rds create-db-instance \
  --db-cluster-identifier sample-replica-cluster \
  --db-instance-class db.r6g.large \
  --db-instance-identifier sample-replica-instance \
  --engine aurora-mysql

Para criar o mesmo usando a CLI no Windows, siga as mesmas etapas, mas use o símbolo ^ como delimitador de linha em vez de ****.

Adicione uma região da AWS a um cluster provisionado do Aurora para criar um Banco de dados global do Aurora

Usar o console do Amazon RDS

  1. Abra o console do Amazon RDS.

  2. No painel de navegação, escolha Bancos de dados.

  3. Escolha o banco de dados Aurora global que precisa de um cluster de banco de dados do Aurora secundário. Certifique-se de que o cluster de banco de dados principal do Aurora tenha um status Disponível.

  4. Em Ações, escolha Adicionar região.

  5. Escolha a região da AWS que você deseja adicionar. 

**Observação:**não é possível escolher uma região da AWS que já tenha um cluster de banco de dados secundário do Aurora para o mesmo banco de dados global do Aurora. Além disso, você não pode escolher a mesma região da AWS que a região do cluster de banco de dados primário do Aurora. 

  1. Preencha os campos restantes para o cluster secundário do Aurora na nova região da AWS. Em seguida, escolha Adicionar região

Usar a AWS CLI

Execute o seguinte script na AWS CLI.

Observação: Se estiver usando o Windows, substitua o delimitador de linha \ pelo símbolo ^.

aws rds --region us-east-2 \
  create-db-cluster \
    --db-cluster-identifier secondary_cluster_id \
    --global-cluster-identifier global_database_id \
    --engine aurora-mysql \
    --engine-version version

aws rds --region us-east-2 \
  create-db-instance \
    --db-instance-class db.r6g.large \
    --db-cluster-identifier secondary_cluster_id \
    --db-instance-identifier db_instance_id \
    --engine aurora-mysql

Informações relacionadas

Adicionar réplicas do Aurora a um cluster de banco de dados

Replicar clusters de banco de dados do Amazon Aurora MySQL entre regiões da AWS

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos