Trabalhar com réplicas de leitura de cluster de banco de dados multi-AZ - Amazon Relational Database Service

Trabalhar com réplicas de leitura de cluster de banco de dados multi-AZ

Uma réplica de leitura de cluster de banco de dados é um tipo especial de cluster que você cria de uma instância de banco de dados de origem. Depois de criar uma réplica de leitura, todas as atualizações feitas na instância de banco de dados primária são copiadas de forma assíncrona na réplica de leitura do cluster de banco de dados multi-AZ. É possível reduzir a carga na instância de banco de dados primária roteando as consultas de leitura dos aplicativos para a réplica de leitura. Com o uso de réplicas de leitura, é possível expandir de maneira elástica para além das limitações de capacidade de uma única instância de banco de dados para workloads de banco de dados com muita leitura.

Também é possível criar uma ou mais réplicas de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ. As réplicas de leitura de instâncias de banco de dados permitem que você escale além da capacidade de computação ou de E/S do cluster de banco de dados multi-AZ de origem, direcionando o excesso de tráfego de leitura para as réplicas de leitura. Atualmente, não é possível criar uma réplica de leitura de cluster de banco de dados multi-AZ por meio de um cluster de banco de dados multi-AZ existente.

Migrar para um cluster de banco de dados multi-AZ utilizando uma réplica de leitura

Para migrar uma implantação single-AZ ou uma implantação de instância de banco de dados multi-AZ para uma implantação de cluster de banco de dados multi-AZ com tempo de inatividade reduzido, você pode criar uma réplica de leitura de cluster de banco de dados multi-AZ. Para a origem, especifique a instância de banco de dados na implantação single-AZ ou a instância de banco de dados primária na implantação da instância de banco de dados multi-AZ. A instância de banco de dados pode processar transações de gravação durante a migração para um cluster de banco de dados multi-AZ.

Considere o seguinte antes de criar uma réplica de leitura do cluster de banco de dados multi-AZ:

  • A instância de banco de dados de origem deve estar em uma versão que seja compatível com clusters de banco de dados multi-AZ. Para ter mais informações, consulte Clusters de banco de dados multi-AZ.

  • A réplica de leitura do cluster de banco de dados multi-AZ deve estar na mesma versão principal da origem e na mesma versão secundária ou superior.

  • Você deve ativar backups automáticos na instância de banco de dados de origem, definindo o período de retenção de backup como um valor diferente de 0.

  • O armazenamento alocado da instância de banco de dados de origem deve ser de 100 GiB ou mais.

  • Para o RDS para MySQL, os parâmetros gtid-mode e enforce_gtid_consistency devem ser definidos como ON para a instância de banco de dados de origem. Você deve usar um grupo de parâmetros personalizado, não o grupo de parâmetros padrão. Para ter mais informações, consulte Como trabalhar com grupos de parâmetros de banco de dados em uma instância de banco de dados.

  • Uma transação ativa e de longa duração pode atrasar o processo de criação da réplica de leitura. Recomendamos que você aguarde até que as transações de longa duração sejam concluídas antes de criar uma réplica de leitura.

  • Se você excluir a instância de banco de dados de origem para uma réplica de leitura de cluster de banco de dados multi-AZ, a réplica de leitura será promovida para um cluster de banco de dados multi-AZ autônomo.

Criar e promover a réplica de leitura do cluster de banco de dados multi-AZ

Você pode criar e promover um cluster de banco de dados multi-AZ usando o AWS Management Console, a AWS CLI ou a API do RDS.

nota

É altamente recomendável criar todas as réplicas de leitura na mesma nuvem privada virtual (VPC) com base na mesma Amazon VPC da instância de banco de dados de origem.

Se você criar uma réplica de leitura em uma VPC diferente da instância de banco de dados de origem, os intervalos de Encaminhamento Entre Domínios Sem Classificação (CIDR) podem se sobrepor entre a réplica e o sistema do Amazon RDS. A sobreposição de CIDR torna a réplica instável, o que pode afetar negativamente as aplicações que se conectam a ela. Se você receber um erro ao criar a réplica de leitura, escolha um grupo de sub-redes de banco de dados de destino diferente. Para ter mais informações, consulte Trabalhar com uma instância de banco de dados em uma VPC.

Para migrar uma implantação single-AZ ou uma implantação de instância de banco de dados multi-AZ para um cluster de banco de dados multi-AZ usando uma réplica de leitura, realize as etapas a seguir utilizando o AWS Management Console.

  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. Crie a réplica de leitura do cluster de banco de dados multi-AZ.

    1. No painel de navegação, escolha Databases (Bancos de dados).

    2. Escolha a instância de banco de dados que você deseja usar como a origem da réplica de leitura.

    3. Em Actions (Ações), escolha Create read replica (Criar réplica de leitura).

    4. Em Availability and durability (Disponibilidade e durabilidade), escolha Multi-AZ DB cluster (Cluster de banco de dados multi-AZ).

    5. Em DB instance identifier (Identificador da instância de banco de dados), insira um nome para a réplica de leitura.

    6. Nas seções restantes, especifique suas configurações de cluster de banco de dados. Para obter informações sobre a configuração, consulte Configurações para criar clusters de banco de dados multi-AZ.

    7. Escolha Create read replica (Criar réplica de leitura).

  3. Quando estiver com tudo pronto, promova a réplica de leitura para que se torne um cluster de banco de dados multi-AZ autônomo:

    1. Interrompa a gravação de todas as transações na instância de banco de dados de origem e aguarde até que todas as atualizações sejam feitas na réplica de leitura.

      As atualizações do banco de dados serão feitas nas réplicas de leitura depois que forem feitas na instância de banco de dados primária. Esse atraso na replicação pode variar significativamente. Use a métrica ReplicaLag para determinar quando todas as atualizações foram feitas na réplica de leitura. Para ter mais informações sobre o atraso na replicação, consulte Monitoramento da replicação de leitura.

    2. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

    3. No console do Amazon RDS, escolha Databases (Bancos de dados).

      O painel Databases (Bancos de dados) é exibido. Todas as réplicas de leitura exibem Replica (Réplica) na coluna Role (Função).

    4. Escolha a réplica de leitura do cluster de banco de dados multi-AZ que você deseja promover.

    5. Em Actions (Ações), selecione Promote (Promover).

    6. Na página Promote read replica (Promover réplica de leitura), insira o período de retenção de backup e a janela de backup para o cluster de banco de dados multi-AZ recém-promovido.

    7. Quando estiver satisfeito com as configurações, escolha Promote read replica (Promover réplica de leitura).

    8. Aguarde o status do cluster de banco de dados multi-AZ promovido ficar Available.

    9. Direcione suas aplicações para que usem o cluster de banco de dados multi-AZ promovido.

    Opcionalmente, exclua a implantação single-AZ ou a implantação da instância de banco de dados multi-AZ se não for mais necessária. Para obter instruções, consulte Excluir uma instância de banco de dados.

Para migrar uma implantação single-AZ ou uma implantação de instância de banco de dados multi-AZ para um cluster de banco de dados multi-AZ usando uma réplica de leitura, realize as etapas a seguir utilizando o AWS CLI.

  1. Crie a réplica de leitura do cluster de banco de dados multi-AZ.

    Para criar uma réplica de leitura da instância de banco de dados de origem, use o comando create-db-cluster da AWS CLI. Para --replication-source-identifier, especifique o nome do recurso da Amazon (ARN) da instância de banco de dados de origem.

    Para Linux, macOS ou Unix:

    aws rds create-db-cluster \ --db-cluster-identifier mymultiazdbcluster \ --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance --engine postgres \ --db-cluster-instance-class db.m5d.large \ --storage-type io1 \ --iops 1000 \ --db-subnet-group-name defaultvpc \ --backup-retention-period 1

    Para Windows:

    aws rds create-db-cluster ^ --db-cluster-identifier mymultiazdbcluster ^ --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance --engine postgres ^ --db-cluster-instance-class db.m5d.large ^ --storage-type io1 ^ --iops 1000 ^ --db-subnet-group-name defaultvpc ^ --backup-retention-period 1
  2. Interrompa a gravação de todas as transações na instância de banco de dados de origem e aguarde até que todas as atualizações sejam feitas na réplica de leitura.

    As atualizações do banco de dados serão feitas nas réplicas de leitura depois que forem feitas na instância de banco de dados primária. Esse atraso na replicação pode variar significativamente. Use a métrica Replica Lag para determinar quando todas as atualizações foram feitas na réplica de leitura. Para ter mais informações sobre o atraso na replicação, consulte Monitoramento da replicação de leitura.

  3. Quando estiver com tudo pronto, promova a réplica de leitura para que se torne um cluster de banco de dados multi-AZ autônomo.

    Para promover uma réplica de leitura de cluster de banco de dados multi-AZ, use o comando promote-read-replica-db-cluster da AWS CLI. Para --db-cluster-identifier, especifique o identificador da réplica de leitura do cluster de banco de dados multi-AZ.

    aws rds promote-read-replica-db-cluster --db-cluster-identifier mymultiazdbcluster
  4. Aguarde o status do cluster de banco de dados multi-AZ promovido ficar Available.

  5. Direcione suas aplicações para que usem o cluster de banco de dados multi-AZ promovido.

Opcionalmente, exclua a implantação single-AZ ou a implantação da instância de banco de dados multi-AZ se não for mais necessária. Para obter instruções, consulte Excluir uma instância de banco de dados.

Para migrar uma implantação single-AZ ou implantação de instância de banco de dados multi-AZ para um cluster de banco de dados multi-AZ usando uma réplica de leitura, realize as etapas a seguir utilizando a API do RDS.

  1. Crie a réplica de leitura do cluster de banco de dados multi-AZ.

    Para criar uma réplica de leitura de cluster de banco de dados multi-AZ, use a operação CreateDBCluster com o parâmetro necessário DBClusterIdentifier. Para ReplicationSourceIdentifier, especifique o nome do recurso da Amazon (ARN) da instância de banco de dados de origem.

  2. Interrompa a gravação de todas as transações na instância de banco de dados de origem e aguarde até que todas as atualizações sejam feitas na réplica de leitura.

    As atualizações do banco de dados serão feitas nas réplicas de leitura depois que forem feitas na instância de banco de dados primária. Esse atraso na replicação pode variar significativamente. Use a métrica Replica Lag para determinar quando todas as atualizações foram feitas na réplica de leitura. Para ter mais informações sobre o atraso na replicação, consulte Monitoramento da replicação de leitura.

  3. Quando estiver com tudo pronto, promova a réplica de leitura para que se torne um cluster de banco de dados multi-AZ autônomo.

    Para promover uma réplica de leitura de cluster de banco de dados multi-AZ, use a operação PromoteReadReplicaDBCluster com o parâmetro necessário DBClusterIdentifier. Especifique o identificador da réplica de leitura do cluster de banco de dados multi-AZ.

  4. Aguarde o status do cluster de banco de dados multi-AZ promovido ficar Available.

  5. Direcione suas aplicações para que usem o cluster de banco de dados multi-AZ promovido.

Opcionalmente, exclua a implantação single-AZ ou a implantação da instância de banco de dados multi-AZ se não for mais necessária. Para obter instruções, consulte Excluir uma instância de banco de dados.

Limitações para a criação de uma réplica de leitura de cluster de banco de dados multi-AZ

As limitações a seguir se aplicam à criação de uma réplica de leitura de cluster de banco de dados multi-AZ de uma implantação single-AZ ou uma implantação de instância de banco de dados multi-AZ.

  • Não é possível criar uma réplica de leitura de cluster de banco de dados multi-AZ em uma Conta da AWS diferente da Conta da AWS que tem a instância de banco de dados de origem.

  • Não é possível criar uma réplica de leitura de cluster de banco de dados multi-AZ em uma Região da AWS diferente da região da instância de banco de dados de origem.

  • Não é possível recuperar uma réplica de leitura de cluster de banco de dados multi-AZ para um ponto anterior no tempo.

  • A criptografia de armazenamento deve ter as mesmas configurações na instância de banco de dados de origem e no cluster de banco de dados multi-AZ.

  • Se a instância de banco de dados de origem estiver criptografada, a réplica de leitura do cluster de banco de dados multi-AZ deverá ser criptografada usando a mesma chave do KMS.

  • Se a instância de banco de dados de origem usar o armazenamento SSD de uso geral (gp3) e tiver menos de 400 GiB de armazenamento alocado, você não poderá modificar as IOPS provisionadas para a réplica de leitura do cluster de banco de dados multi-AZ.

  • Para realizar uma atualização de versão secundária na instância de banco de dados de origem, primeiro você deve realizar a atualização da versão secundária na réplica de leitura do cluster de banco de dados multi-AZ.

  • Ao realizar uma atualização de versão secundária em uma réplica de leitura do cluster de banco de dados multi-AZ do RDS para PostgreSQL, a instância de banco de dados de leitor não muda para a instância de banco de dados de gravador após a atualização. Portanto, o cluster de banco de dados pode passar por um tempo de inatividade enquanto o Amazon RDS atualiza a instância de gravador.

  • Não é possível fazer upgrade da versão principal em uma réplica de leitura do cluster de banco de dados multi-AZ.

  • Você pode realizar uma atualização da versão principal na instância de banco de dados de origem de uma réplica de leitura de cluster de banco de dados multi-AZ, mas a replicação para a réplica de leitura será interrompida e não poderá ser reiniciada.

  • A réplica de leitura do cluster de banco de dados multi-AZ não comporta réplicas de leitura em cascata.

  • Para o RDS para PostgreSQL, as réplicas de leitura de cluster de banco de dados multi-AZ não oferecem recurso de failover.

Criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ

Você pode criar uma réplica de leitura de instância de banco de dados por meio de um cluster de banco de dados multi-AZ para escalar além da capacidade computacional ou de E/S do cluster para workloads de banco de dados de uso intenso de leitura. Você pode direcionar esse tráfego de leitura excessivo a uma ou mais réplicas de leitura de instância de banco de dados. Também é possível usar réplicas de leitura para migrar de um cluster de banco de dados multi-AZ para uma instância de banco de dados.

Para criar uma réplica de leitura, especifique um cluster de banco de dados multi-AZ como origem de replicação. Uma das instâncias de leitor do cluster de banco de dados multi-AZ é sempre a origem da replicação, não a instância do gravador. Essa condição garante que a réplica esteja sempre sincronizada com o cluster de origem, mesmo em casos de failover.

Comparar instâncias de banco de dados de leitor e réplicas de leitura de instância de banco de dados

Uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ é diferente das instâncias de banco de dados de leitor do cluster de banco de dados multi-AZ das seguintes formas:

  • As instâncias de banco de dados do leitor atuam como destinos de failover automático, enquanto as réplicas de leitura de instância de banco de dados não.

  • As instâncias de banco de dados do leitor devem reconhecer uma alteração da instância de banco de dados de gravador para poder confirmar a alteração. No entanto, para réplicas de leitura de instância de banco de dados, as atualizações são copiadas de forma assíncrona na réplica de leitura sem exigir confirmação.

  • As instâncias de banco de dados do leitor sempre compartilham a mesma classe de instância, tipo de armazenamento e versão do mecanismo da instância de banco de dados do gravador do cluster de banco de dados multi-AZ. No entanto, as réplicas de leitura de instância de banco de dados não precisam necessariamente compartilhar as mesmas configurações do cluster de origem.

  • Você pode promover uma réplica de leitura de banco de dados para uma instância de banco de dados autônoma. Não é possível promover uma instância de banco de dados do leitor de um cluster de banco de dados multi-AZ para uma instância autônoma.

  • O endpoint do leitor somente encaminha as solicitações para as instâncias de banco de dados do leitor do cluster de banco de dados multi-AZ. Ele nunca encaminha solicitações para uma réplica de leitura de instância de banco de dados.

Para ter mais informações sobre instâncias de banco de dados do leitor e do gravador, consulte Visão geral de clusters de banco de dados multi-AZ.

Considerações

Considere o seguinte antes de criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ:

  • Ao criar a réplica de leitura de instância de banco de dados, ela deve estar na mesma versão principal do cluster de origem e na mesma versão secundária ou superior. Depois de criá-la, você pode atualizar a réplica de leitura para uma versão secundária superior à do cluster de origem.

  • Quando você cria a réplica de leitura da instância de banco de dados, o armazenamento alocado deve ser igual ao armazenamento alocado do cluster de banco de dados multi-AZ de origem. Você pode alterar o armazenamento alocado após a criação da réplica de leitura.

  • Para o RDS para MySQL, o parâmetro gtid-mode deve ser definido como ON para o cluster de banco de dados multi-AZ de origem. Para ter mais informações, consulte Trabalhar com grupos de parâmetros de clusters de banco de dados multi-AZ.

  • Uma transação ativa e de longa duração pode atrasar o processo de criação da réplica de leitura. Recomendamos que você aguarde até que as transações de longa duração sejam concluídas antes de criar uma réplica de leitura.

  • Se você excluir o cluster de banco de dados multi-AZ de uma réplica de leitura de instância de banco de dados, todas as réplicas de leitura nas quais ela estiver sendo gravada serão promovidas para instâncias de banco de dados autônomas.

Criar uma réplica de leitura de instância de banco de dados

Você pode criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ usando o AWS Management Console, a AWS CLI ou a API do RDS.

nota

É altamente recomendável criar todas as réplicas de leitura na mesma nuvem privada virtual (VPC) com base na mesma Amazon VPC do cluster de banco de dados multi-AZ de origem.

Se você criar uma réplica de leitura em uma VPC diferente do cluster de banco de dados multi-AZ de origem, os intervalos de Encaminhamento Entre Domínios Sem Classificação (CIDR) podem se sobrepor entre a réplica e o sistema do RDS. A sobreposição de CIDR torna a réplica instável, o que pode afetar negativamente as aplicações que se conectam a ela. Se você receber um erro ao criar a réplica de leitura, escolha um grupo de sub-redes de banco de dados de destino diferente. Para ter mais informações, consulte Trabalhar com uma instância de banco de dados em uma VPC.

Para criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ, execute as etapas a seguir usando o AWS Management Console.

  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

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

  3. Selecione o cluster de banco de dados multi-AZ que você deseja usar como a origem da réplica de leitura.

  4. Em Actions (Ações), escolha Create read replica (Criar réplica de leitura).

  5. Para Origem de réplica, o cluster de banco de dados multi-AZ correto deve estar selecionado.

  6. Em Identificador de banco de dados, insira um nome para a réplica de leitura.

  7. Nas seções restantes, especifique suas configurações de instância de banco de dados. Para obter informações sobre a configuração, consulte Configurações para instâncias de banco de dados.

    nota

    O armazenamento alocado para a réplica de leitura de instância de banco de dados deve ser igual ao armazenamento alocado do cluster de banco de dados multi-AZ de origem.

  8. Escolha Create read replica (Criar réplica de leitura).

Para criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ, use o comando create-db-instance-read-replica da AWS CLI. Para --source-db-cluster-identifier, especifique o identificador do cluster de banco de dados multi-AZ.

Para Linux, macOS ou Unix:

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-cluster-identifier mymultiazdbcluster

Para Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-cluster-identifier mymultiazdbcluster

Para criar uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ, use a operação CreateDBInstanceReadReplica.

Promover a réplica de leitura de instância de banco de dados

Se você não precisar mais da réplica de leitura de instância de banco de dados, poderá promovê-la para uma instância de banco de dados autônoma. Ao promover uma réplica de leitura, a instância de banco de dados é reiniciada antes que ela fique disponível. Para obter instruções, consulte Promoção de uma réplica de leitura a uma instância de banco de dados autônoma.

Se você estiver usando a réplica de leitura para migrar uma implantação de cluster de banco de dados multi-AZ para uma implantação single-AZ ou implantação de instância de banco de dados multi-AZ, interrompa todas as transações que estejam sendo gravadas no cluster de banco de dados de origem. Depois, aguarde até que todas as atualizações sejam realizadas na réplica de leitura. As atualizações do banco de dados serão realizadas na réplica de leitura depois que forem feitas em uma das instâncias de banco de dados do leitor do cluster de banco de dados multi-AZ. Esse atraso na replicação pode variar significativamente. Use a métrica ReplicaLag para determinar quando todas as atualizações foram feitas na réplica de leitura. Para ter mais informações sobre o atraso na replicação, consulte Monitoramento da replicação de leitura.

Depois de promover a réplica de leitura, aguarde o status da instância de banco de dados promovida ser Available antes de direcionar suas aplicações a usarem a instância de banco de dados promovida. Opcionalmente, exclua a implantação de cluster de banco de dados multi-AZ se não precisar mais dela. Para obter instruções, consulte Excluir um cluster de banco de dados multi-AZ.

Limitações à criação de uma réplica de leitura de instância de banco de dados de um cluster de banco de dados multi-AZ

As limitações a seguir se aplicam à criação de uma réplica de leitura de instância de banco de dados de uma implantação de cluster de banco de dados multi-AZ.

  • Não é possível criar uma réplica de leitura de instância de banco de dados em uma Conta da AWS diferente da Conta da AWS que tem o cluster de banco de dados multi-AZ de origem.

  • Não é possível criar uma réplica de leitura de instância de banco de dados em uma Região da AWS diferente da do cluster de banco de dados multi-AZ de origem.

  • Não é possível recuperar uma réplica de leitura de instância de banco de dados para um ponto no tempo.

  • A criptografia de armazenamento deve ter as mesmas configurações no cluster de banco de dados multi-AZ de origem e na réplica de leitura de instância de dados.

  • Se o cluster de banco de dados multi-AZ de origem estiver criptografado, a réplica de leitura de instância de banco de dados deverá ser criptografada usando a mesma chave do KMS.

  • Para realizar uma atualização de versão secundária no cluster de banco de dados multi-AZ de origem, primeiro você deve realizar a atualização da versão secundária na réplica de leitura de instância de banco de dados.

  • A réplica de leitura de instância de banco de dados não comporta réplicas de leitura em cascata.

  • Para o RDS para PostgreSQL, o cluster de banco de dados multi-AZ de origem deve estar executando o PostgreSQL versão 13.11, 14.8 ou 15.2.R2 ou posterior para criar uma réplica de leitura da instância de banco de dados.

  • Você pode realizar uma atualização da versão principal no cluster de banco de dados multi-AZ de origem de uma réplica de leitura da instância de banco de dados, mas a replicação para a réplica de leitura será interrompida e não poderá ser reiniciada.