Comment créer un réplica en lecture pour une base de données Amazon Aurora MySQL ?

Date de la dernière mise à jour : 09/12/2020

J'ai un cluster Amazon Aurora MySQL. Je souhaite créer un réplica de lecture en région ou entre régions pour mon cluster de bases de données Aurora. Comment dois-je procéder ?

Brève description

Vous pouvez utiliser les réplicas Amazon Aurora comme cibles de basculement. Cela signifie que si votre instance de base de données principale échoue, un réplica Aurora est ensuite promu en instance principale. La création d'un réplica en lecture entre régions améliore votre disponibilité en cas d'échec rare d'une région Amazon RDS.

Les réplicas Aurora fonctionnent également bien pour le dimensionnement en lecture car ils sont entièrement dédiés aux opérations de lecture sur votre volume de cluster. L'instance principale gère les opérations d'écriture. Étant donné que toutes les instances de base de données de votre cluster partagent le volume du cluster, la copie des données de chaque réplica Aurora nécessite un minimum de travail.

Remarque : les réplicas Aurora n'utilisent pas la réplication de journal binaire (qui est utilisée par les réplicas en lecture de RDS MySQL). Pour cette raison, la latence est généralement inférieure à 100 millisecondes après que l'instance principale a écrit une mise à jour. C'est un avantage d'utiliser Amazon Aurora, car le retard de réplication est généralement faible et prévisible par rapport à la réplication basée sur MySQL. Si vous disposez d'un trafic de lecture diversifié entre régions, la fonctionnalité de répliquer entre régions est utile.

Suivez la procédure décrite dans cet article pour créer un réplica de lecture en région ou entre régions pour votre cluster de bases de données Aurora MySQL.

Remarque : Ces étapes ne s'appliquent pas aux clusters Aurora sans serveur ou aux clusters Aurora multi-master.

Résolution

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Créer un réplica de lecture en région pour un cluster Aurora MySQL à l'aide de la console Amazon RDS

Remarque : Vous ne pouvez pas créer de réplica Aurora chiffré pour un cluster de bases de données Aurora non chiffré. Vous ne pouvez pas créer de réplica Aurora non chiffré pour un cluster de bases de données Aurora chiffré.

1.    Ouvrez la console Amazon RDS et sélectionnez Bases de données dans le panneau de navigation.

2.    Choisissez le cluster de bases de données auquel vous souhaitez ajouter la nouvelle instance de base de données.

3.    Dans la section Actions , choisissez Ajouter un lecteur.

4.    Sur la page Ajouter un lecteur, personnalisez les options de votre réplica Aurora.

5.    Choisissez Ajouter un lecteur pour créer le réplica.

Créer un réplica en lecture en région pour un cluster Aurora MySQL à l'aide de l'interface de ligne de commande AWS

Pour créer un réplica Aurora dans votre cluster de bases de données à l'aide de l'interface de ligne de commande AWS, exécutez la commande create-db-instance. Incluez le nom du cluster de bases de données à l'aide de l'option --db-cluster-identifier. Vous pouvez également spécifier une zone de disponibilité (AZ) pour le réplica Aurora à l'aide du paramètre availability-zone.

Cet exemple de commande crée un réplica en lecture pour Aurora MySQL (même région et compatible Aurora MySQL 5.7).

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.r4.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.r4.large ^
    --availability-zone us-west-2a

Remarque : Si vous souhaitez créer un réplica en lecture pour un cluster compatible Aurora MySQL 5.6, modifiez le paramètre --engine par --engine aurora dans cette commande.

Créer un réplica de lecture entre régions pour un cluster Aurora MySQL

La création d'un réplica en lecture dans une région AWS différente du cluster de bases de données source présente certains avantages. Cela peut améliorer vos capacités de reprise après sinistre et vous permettre d'étendre les opérations de lecture à une région plus proche de vos utilisateurs. Cela peut également vous faciliter la migration d'une région AWS vers une autre.

Remarque : Avant de pouvoir créer un réplica de lecture entre régions, activez la journalisation binaire sur votre cluster de bases de données Aurora MySQL source. La réplication inter-régions utilise la réplication binaire MySQL pour relire les modifications sur le cluster de réplica en lecture entre régions.

Activer la journalisation binaire sur votre cluster de bases de données

1.    Pour activer la journalisation binaire sur votre cluster de bases de données,

2.    Mettez à jour le paramètre binlog_format pour votre cluster de bases de données source. Il s'agit d'un paramètre de niveau cluster qui se trouve dans le groupe de paramètres de cluster par défaut.

3.    Si votre cluster de bases de données utilise le groupe de paramètres de cluster de bases de données par défaut, créez un nouveau groupe de paramètres de cluster de bases de données pour modifier les paramètres binlog_format .

4.    Il est recommandé de définir le paramètre binlog_format sur MIXED. Vous pouvez également définir binlog_format sur ROW ou STATEMENT si vous avez besoin d'un format de journal binaire spécifique.

5.    Redémarrez votre cluster de bases de données Aurora pour que les modifications prennent effet.

Créer un cluster entre régions à l'aide de la console Amazon RDS

1.    Ouvrez la console Amazon RDS, puis choisissez la région AWS qui héberge votre cluster de bases de données source.

2.    Dans le volet de navigation, choisissez Instances.

3.    Activez la case à cocher de l'instance de base de données pour laquelle vous souhaitez créer un réplica en lecture entre régions.

4.    Pour Actions, choisissez Créer un réplica en lecture entre régions.

5.    Sur la page Créer un réplica en lecture entre régions, choisissez les paramètres d'option pour votre cluster de bases de données de réplica en lecture entre régions.

Créer un cluster entre régions à l'aide de l'interface de ligne de commande AWS

La création d'un cluster entre régions à l'aide de l'interface de ligne de commande AWS est un processus en deux étapes. Tout d'abord, créez le cluster lui-même dans la région cible à l'aide de l'appel create-db-cluster. Ensuite, utilisez l'appel create-db-instance pour créer l'instance de lecteur.

Cet exemple crée un réplica entre régions à l'aide de Linux, macOS ou Unix et est compatible avec Aurora MySQL 5.6.

1.    Créez le cluster en exécutant une commande similaire à la suivante :

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

2.    Vérifiez si le cluster est disponible :

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

3.    Créez le lecteur :

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

Pour créer la même chose à l'aide de la CLI sous Windows, suivez les mêmes étapes, mais utilisez le symbole ^ comme séparateur de ligne au lieu de \.