Por que não consigo criar uma réplica de leitura para minha instância do RDS para PostgreSQL?

Data da última atualização: 08/06/2022

Estou tentando criar uma réplica de leitura do Amazon Aurora para minha instância do Amazon Relational Database Service (Amazon RDS) para PostgreSQL a partir do console do RDS. No entanto, a opção para fazer isso está esmaecida no console do Amazon RDS.

Breve descrição

É possível usar uma instância de banco de dados do Amazon RDS for PostgreSQL para criar um novo cluster de banco de dados Amazon Aurora PostgreSQL compatível com o Amazon Aurora usando uma réplica de leitura do Aurora para o processo de migração. Nesse caso, um cluster do Aurora é criado com uma instância de leitor. Esse cluster, chamado de cluster de réplica, atua como uma réplica de leitura para a instância do RDS para PostgreSQL. Depois de criar o cluster de réplica e migrar os dados para o Aurora com um atraso de replicação de zero, é possível realizar uma substituição promovendo a réplica de leitura do Aurora.

Para criar uma réplica de leitura do Aurora para o processo de migração, consulte criação de uma réplica de leitura do Aurora.

Se a opção para criar uma réplica de leitura do Aurora com o console do Amazon RDS não estiver disponível, verifique e confirme se a sua versão do Aurora PostgreSQL é compatível com a versão do RDS para PostgreSQL.

Resolução

A opção de réplica de leitura do Aurora está disponível somente para migração dentro da mesma região e conta da AWS. A opção estará disponível somente se a região oferecer uma versão compatível do Aurora PostgreSQL para sua instância de banco de dados do RDS para PostgreSQL. A versão do Aurora PostgreSQL deve ser a mesma que a versão do RDS para PostgreSQL ou uma versão secundária superior na mesma família de versões principais.

Por exemplo, para usar essa técnica para migrar uma instância de banco de dados do RDS para banco de dados PostgreSQL 11.14, a região deve oferecer uma das seguintes opções:

  • Aurora PostgreSQL versão 11.14
  • Uma versão secundária superior na família PostgreSQL versão 11

Para ver uma lista de versões disponíveis e os padrões para instâncias de banco de dados recém-criadas, execute o comando describe-db-engine-versions na AWS Command Line Interface (AWS CLI):

aws rds describe-db-engine-versions --engine postgres --query DBEngineVersions[*].EngineVersion
aws rds describe-db-engine-versions --engine aurora-postgresql --query DBEngineVersions[*].EngineVersion

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

É possível comparar os resultados de ambos os comandos para verificar se a versão do mecanismo do Aurora PostgreSQL é compatível com a do RDS for PostgreSQL.

Use a AWS CLI para criar uma réplica de leitura do Aurora quando a opção de criar uma réplica de leitura com o console do RDS não estiver disponível para você.

Para criar uma réplica de leitura do Aurora a partir de uma instância de banco de dados de origem do RDS para PostgreSQL usando a AWS CLI, execute o comando create-db-cluster. Verifique e confirme a definição do parâmetro replication-source-identifier para o ARN da instância de origem. A execução desse comando cria um cluster de banco de dados Aurora sem cabeçalho. Um cluster sem cabeçalho é o armazenamento em cluster sem nenhuma instância.

Depois que o cluster for criado, use o comando create-db-instance para criar a instância primária para seu cluster de banco de dados.

aws rds create-db-cluster --db-cluster-identifier example-aurora-cluster --db-subnet-group-name example-db-subnet --vpc-security-group-ids example-security-group --engine aurora-postgresql --engine-version <same-as-your-rds-instance-version> --replication-source-identifier example-rds-source-instance-arn 
aws rds create-db-instance --db-cluster-identifier example-aurora-cluster --db-instance-class example-instance-class --db-instance-identifier example-instance identifier --engine aurora-postgresql