Pourquoi ne puis-je pas créer de réplica en lecture Aurora pour mon instance RDS pour PostgreSQL ?

Date de la dernière mise à jour : 08/06/2022

J'essaie de créer un réplica en lecture Amazon Aurora pour mon instance Amazon Relational Database Service (Amazon RDS) pour PostgreSQL à partir de la console RDS. Cependant, l'option permettant de le faire est grisée dans la console Amazon RDS.

Brève description

Vous pouvez utiliser une instance de base de données Amazon RDS for PostgreSQL pour créer un nouveau cluster de bases de données Amazon Aurora PostgreSQL Compatible Edition à l'aide d'un réplica en lecture Aurora pour le processus de migration. Dans ce cas, un cluster Aurora est créé avec une instance de lecteur. Ce cluster, appelé cluster de réplica, agit comme un réplica en lecture pour l'instance RDS pour PostgreSQL. Après avoir créé le cluster de réplica et migré les données vers Aurora avec un retard de réplication nul, vous pouvez effectuer un basculement en promouvant le réplica en lecture Aurora.

Pour créer un réplica en lecture Aurora pour le processus de migration, voir Création d'un réplica en lecture Aurora.

Si l'option permettant de créer un réplica en lecture Aurora à l'aide de la console Amazon RDS n'est pas disponible, assurez-vous que votre version Aurora PostgreSQL est compatible avec la version RDS pour PostgreSQL.

Résolution

L'option de réplica en lecture Aurora n'est disponible que pour la migration au sein de la même région AWS et du même compte. L'option n'est disponible que si la région propose une version compatible d'Aurora PostgreSQL pour votre instance de base de données RDS pour PostgreSQL. La version d'Aurora PostgreSQL doit être identique à la version RDS pour PostgreSQL ou à une version mineure supérieure dans la même famille de versions majeures.

Par exemple, pour utiliser cette technique afin de migrer une instance de base de données RDS pour PostgreSQL 11.14, la région doit proposer l'une des options suivantes :

  • Aurora PostgreSQL version 11.14
  • Une version mineure supérieure dans la famille PostgreSQL version 11

Pour voir la liste des versions disponibles et les valeurs par défaut des instances de base de données nouvellement créées, exécutez la commande describe-db-engine-versions de l'interface de la ligne de commande AWS (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

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Vous pouvez comparer les résultats des deux commandes pour vérifier si la version du moteur d'Aurora PostgreSQL est compatible avec celle de RDS pour PostgreSQL.

Utilisez l'interface de ligne de commande AWS pour créer un réplica en lecture Aurora lorsque l'option de création d'un réplica en lecture avec la console RDS n'est pas disponible pour vous.

Pour créer un réplica en lecture Aurora à partir d'une instance de base de données RDS pour PostgreSQL source à l'aide de l'interface de ligne de commande AWS, exécutez la commande create-db-cluster. Assurez-vous de définir le paramètre replication-source-identifier sur l'ARN de l'instance source. L'exécution de cette commande crée un cluster de base de données Aurora headless. Un cluster headless est un stockage en cluster sans aucune instance.

Une fois le cluster créé, utilisez la commande create-db-instance pour créer l'instance principale pour votre cluster de bases de données.

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