Utilisation des réplicas en lecture d'instance de base de données - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des réplicas en lecture d'instance de base de données

Un réplica en lecture est une copie en lecture seule d'une instance de base de données. Vous pouvez réduire la charge sur votre instance de base de données principale en acheminant les requêtes depuis vos applications vers le réplica en lecture. Ainsi, vous pouvez effectuer une montée en puissance élastique au-delà des contraintes de capacité d'une seule instance de base de données dans le cas de charges de travail de base de données à lecture intensive.

Pour créer un réplica en lecture à partir d'une instance de base de données source, Amazon RDS utilise les fonctions de réplication intégrées du moteur de base de données. Pour plus d'informations sur l'utilisation de réplicas en lecture avec un moteur spécifique, veuillez consulter les sections suivantes :

Après que vous avez créé un réplica en lecture à partir d'une instance de base de données source, la source devient l'instance de base de données principale. Lorsque vous apportez des mises à jour à l'instance de base de données principale, Amazon RDS les copie de manière asynchrone vers le réplica en lecture. Le schéma suivant montre une instance de base de données source effectuant la réplication vers un réplica en lecture dans une zone de disponibilité (AZ) différente. Le client dispose d'un accès en lecture/écriture à l'instance de base de données principale et d'un accès en lecture seule au réplica.


            Configuration d'un réplica en lecture

Présentation des réplicas en lecture Amazon RDS

Les sections ci-dessous traitent des réplicas en lecture d'une instance de base de données. Pour plus d'informations sur les réplicas en lecture d'un cluster de bases de données multi-AZ, consultez Utilisation des réplicas en lecture d'un cluster de base de données multi-AZ.

Cas d'utilisation pour les réplicas en lecture

Le déploiement d'un ou de plusieurs réplicas en lecture pour une instance de bases de données source donnée peut être judicieux dans divers scénarios, notamment dans les suivants :

  • Dimensionnement au-delà de la capacité de calcul ou d'I/O d'une instance de bases de données individuelle pour des charges de travail de base de données à lecture intensive. Vous pouvez diriger ce trafic en lecture excessif vers un ou plusieurs réplicas en lecture.

  • Service du trafic en lecture alors que l'instance de bases de données source est indisponible. Dans certains, cas, votre instance de bases de données source ne peut pas prendre en charge les demandes d'I/O, par exemple en raison d'une suspension des I/O pour des sauvegardes ou la maintenance planifiée. Vous pouvez alors diriger le trafic de lecture vers vos réplicas en lecture. Dans ce cas d'utilisation, gardez à l'esprit que les données sur le réplica en lecture peuvent être « périmées » car l'instance de bases de données source est indisponible.

  • Scénarios de création de rapports commerciaux ou d'entreposage de données, dans lesquels vous pouvez souhaiter que les requêtes de rapports commerciaux s'exécutent sur un réplica en lecture, plutôt que sur votre instance de bases de données de production.

  • Mise en œuvre de la reprise après sinistre. Vous pouvez effectuez la promotion d'un réplica en lecture en instance autonome comme plan de reprise après sinistre en cas de défaillance de l'instance de base de données principale.

Fonctionnement des réplicas en lecture

Lorsque vous créez un réplica en lecture, vous commencez par spécifier une instance de base de données existante en tant que source. Ensuite, Amazon RDS prend un instantané de l'instance source et crée une instance en lecture seule à partir de celui-ci. Amazon RDS utilise la méthode de réplication asynchrone pour le moteur de base de données afin de mettre à jour le réplica en lecture chaque fois qu'une modification est apportée à l'instance de base de données principale.

Le réplica en lecture fonctionne comme une instance de bases de données qui autorise uniquement les connexions en lecture seule. Le moteur de base de données RDS for Oracle fait exception, car il prend en charge les bases de données de réplica en mode monté. Un réplica monté n'accepte pas les connexions utilisateur et ne peut donc pas servir de charge de travail en lecture seule. L'utilisation principale des réplicas montés est la reprise après sinistre inter-région. Pour de plus amples informations, veuillez consulter Utilisation de réplicas en lecture pour Amazon RDS for Oracle.

Les applications se connectent à un réplica en lecture de la même façon qu'à toute instance de base de données. Amazon RDS réplique toutes les bases de données à partir de l'instance de base de données source.

Réplicas en lecture dans un déploiement multi-AZ

Vous pouvez configurer un réplica en lecture pour une instance de base de données disposant également d'un réplica de secours configuré pour la haute disponibilité dans un déploiement multi-AZ. La réplication avec le réplica de secours est synchrone. Contrairement à un réplica en lecture, un réplica de secours ne peut pas servir au trafic de lecture.

Dans le scénario suivant, les clients ont un accès en lecture/écriture à une instance de base de données principale dans une zone de disponibilité. L'instance principale copie les mises à jour de manière asynchrone vers un réplica en lecture dans une deuxième zone de disponibilité et les copie également de manière synchrone vers un réplica de secours dans une troisième zone de disponibilité. Les clients possèdent un accès en lecture uniquement au réplica en lecture.


                    Configuration d'un réplica en lecture et d'un réplica de secours

Pour plus d'informations sur les réplicas de secours configurés pour une haute disponibilité, consultez Configuration et gestion d'un déploiement multi-AZ.

Réplicas en lecture entre Régions

Dans certains cas, une réplique en lecture réside dans une instance de base de données Région AWS différente de son instance de base de données principale. Dans ces cas, Amazon RDS configure un canal de communication sécurisé entre l'instance de base de données principale et le réplica en lecture. Amazon RDS établit toutes les configurations AWS de sécurité nécessaires pour activer le canal sécurisé, telles que l'ajout d'entrées de groupe de sécurité. Pour plus d'informations sur les réplicas en lecture entre régions, veuillez consulter Création d'une réplique de lecture dans un autre Région AWS.

Les informations de ce chapitre s'appliquent à la création de répliques de lecture Amazon RDS, soit dans la même Région AWS instance de base de données source, soit dans une instance séparée. Région AWS Les informations suivantes ne s'appliquent pas à la configuration de la réplication avec une instance qui s'exécute sur une instance Amazon EC2 ou sur site.

Différences entre les réplicas en lecture pour les moteurs de base de données

Dans la mesure où les moteurs de bases de données Amazon RDS implémentent la réplication différemment, plusieurs différences importantes sont à noter :

Fonction ou comportement MySQL et MariaDB Oracle PostgreSQL SQL Server

Quelle est la méthode de réplication ?

Réplication logique

Réplication physique

Réplication physique

Réplication physique

Comment les journaux de transactions sont-ils purgés ?

RDS for MySQL et RDS for MariaDB conservent les journaux binaires qui n'ont pas été appliqués.

Si une instance de base de données principale ne possède aucun réplica en lecture entre régions, Amazon RDS for Oracle conserve un minimum de deux heures de journaux de transactions sur l'instance de base de données source. Les journaux sont purgés de l'instance de base de données source au bout de deux heures ou une fois que le paramètre d'heures de conservation du journal d'archive est passé, le plus long des deux. Les journaux sont purgés du réplica en lecture une fois que le paramètre d'heures de conservation du journal d'archive est passé, uniquement s'ils ont été appliqués correctement à la base de données.

Dans certains cas, une instance de base de données principale peut avoir un ou plusieurs réplicas en lecture entre régions. Dans ce cas, Amazon RDS for Oracle conserve les journaux de transaction sur l'instance de base de données source jusqu'à ce qu'ils aient été transmis et appliqués à tous les réplicas en lecture entre régions.

Pour plus d'informations sur la définition des heures de conservation des journaux d'archivage, veuillez consulter Conservation des journaux redo archivés.

PostgreSQL dispose du paramètre wal_keep_segments, qui indique le nombre de fichiers WAL (write-ahead log) à conserver pour fournir les données aux réplicas en lecture. La valeur de ce paramètre spécifie le nombre de journaux à conserver.

Le fichier journal virtuel (VLF) du fichier journal des transactions sur le réplica principal peut être tronqué une fois qu'il n'est plus nécessaire pour les réplicas secondaires.

Le VLF ne peut être marqué comme inactif que lorsque les enregistrements de journaux ont été sécurisés dans les réplicas. Quelle que soit la vitesse à laquelle les sous-systèmes de disque se trouvent dans le réplica principal, le journal des transactions conserve les VLF jusqu'à ce que le réplica le plus lent l'ait sécurisé.

Est-il possible de rendre un réplica accessible en écriture ?

Oui. Vous pouvez permettre au réplica en lecture MySQL ou MariaDB d'être accessible en écriture.

Non. Un réplica en lecture Oracle est une copie physique et Oracle n'autorise pas les écritures dans un réplica en lecture. Vous pouvez promouvoir un réplica en lecture afin de le rendre inscriptible. Le réplica en lecture promu a les données répliquées jusqu'au moment où la demande a été faite pour le promouvoir.

Non. Un réplica en lecture PostgreSQL est une copie physique et PostgreSQL ne permet pas de rendre accessible en écriture un réplica en lecture.

Non. Un réplica en lecture SQL Server est une copie physique et n'autorise pas les écritures. Vous pouvez promouvoir un réplica en lecture afin de le rendre inscriptible. Le réplica en lecture promu a les données répliquées jusqu'au moment où la demande a été faite pour le promouvoir.

Des sauvegardes peuvent-elles être effectuées sur le réplica ?

Oui. Les sauvegardes automatiques et les instantanés manuels sont pris en charge sur les réplicas en lecture RDS for MySQL ou RDS for MariaDB.

Oui. Les sauvegardes automatiques et les instantanés manuels sont pris en charge sur les réplicas en lecture RDS for Oracle.

Oui, vous pouvez créer un instantané manuel de réplicas en lecture RDS for PostgreSQL. Les sauvegardes automatiques pour les réplicas en lecture sont prises en charge pour RDS for PostgreSQL 14.1 et versions ultérieures uniquement. Vous ne pouvez pas activer les sauvegardes automatiques pour les réplicas en lecture PostgreSQL pour les versions de RDS for PostgreSQL antérieures à 14.1. Pour RDS for PostgreSQL 13 et versions antérieures, créez un instantané à partir d'un réplica en lecture si vous souhaitez en obtenir une sauvegarde.

Non. Les sauvegardes automatiques et les instantanés manuels ne sont pas pris en charge sur les réplicas en lecture RDS for SQL Server.

Est-il possible d'utiliser la réplication parallèle ?

Oui. Toutes les versions prises en charge de MariaDB et MySQL autorisent les threads de réplication parallèles.

Oui. Les données des journaux redo sont toujours transmises en parallèle de la base de données principale vers tous ses réplicas en lecture.

Non. PostgreSQL dispose d'un processus unique de réplication.

Oui. Les données des journaux redo sont toujours transmises en parallèle de la base de données principale vers tous ses réplicas en lecture.

Pouvez-vous maintenir un réplica dans un état monté plutôt qu'en lecture seule ?

Non.

Oui. L'utilisation principale des réplicas montés est la reprise après sinistre inter-région. Une licence Active Data Guard n'est pas requise pour les réplicas montés. Pour plus d'informations, consultez Utilisation de réplicas en lecture pour Amazon RDS for Oracle.

Non.

Non.

Types de stockage de réplica en lecture

Par défaut, un réplica en lecture est créé avec le même type de stockage que l'instance de bases de données source. Toutefois, vous pouvez créer un réplica en lecture disposant d'un autre type de stockage que l'instance de bases de données source, en fonction des options répertoriées dans le tableau suivant.

Type de stockage de l'instance de bases de données source Allocation de stockage d'instance de bases de données source Options de type de stockage du réplica en lecture
IOPS provisionnés 100 Gio–64 Tio IOPS provisionnés, usage général, magnétique
Usage général 100 Gio–64 Tio IOPS provisionnés, usage général, magnétique
Usage général <100 Gio Usage général, magnétique
Magnétique 100 Gio - 6 Tio IOPS provisionnés, usage général, magnétique
Magnétique <100 Gio Usage général, magnétique
Note

Lorsque vous augmentez le stockage alloué d'un réplica en lecture, il doit être d'au moins 10 %. Si vous tentez d'augmenter la valeur de moins de 10 %, une erreur s'affiche.

Restrictions relatives à la création d'un réplica à partir d'un réplica

Amazon RDS ne prend pas en charge la réplication circulaire. Vous ne pouvez pas configurer une instance de base de données afin de l'utiliser comme source de réplication pour une instance de base de données existante. Vous pouvez uniquement créer un nouveau réplica en lecture à partir d'une instance de base de données existante. Par exemple, si MySourceDBInstance est répliqué sur ReadReplica1, vous ne pouvez pas configurer ReadReplica1 de façon à ce qu'il soit répliqué sur MySourceDBInstance.

Pour RDS for MariaDB et RDS for MySQL, et pour certaines versions de RDS for PostgreSQL, vous pouvez créer un réplica en lecture à partir d'un réplica en lecture existant. Par exemple, vous pouvez créer un nouveau réplica en lecture ReadReplica2 à partir d'un réplica ReadReplica1 existant. Pour RDS for Oracle et RDS for SQL Server, vous ne pouvez pas créer un réplica en lecture à partir d'un réplica en lecture existant.

Considérations relatives à la suppression de réplicas

Si vous n'avez plus besoin de réplicas en lecture, vous pouvez les supprimer explicitement en utilisant les mêmes mécanismes que pour la suppression d'une instance de base de données. Si vous supprimez une instance de base de données source sans supprimer ses répliques de lecture dans celle-ci Région AWS, chaque réplique de lecture est promue en instance de base de données autonome. Pour plus d'informations sur la création d'une instance de base de données, veuillez consulter Suppression d'une instance DB. Pour plus d'informations sur la promotion d'un réplica en lecture, veuillez consulter Promotion d'un réplica en lecture en instance de bases de données autonome.

Si vous avez des réplicas en lecture entre régions, consultez Considérations liées à la réplication entre régions pour en savoir plus sur la suppression de l'instance de base de données source pour un réplica en lecture entre régions.

Création d'un réplica en lecture

Vous pouvez créer une réplique de lecture à partir d'une instance de base de données existante à l'aide de l'API AWS Management Console AWS CLI, ou RDS. Vous créez un réplica en lecture en spécifiant SourceDBInstanceIdentifier, qui est l'identifiant de l'instance de base de données source à partir de laquelle vous souhaitez répliquer les données.

Lorsque vous créez un réplica en lecture, Amazon RDS prend un instantané de votre instance de base de données source et commence la réplication. En conséquence, vous connaissez une brève suspension des I/O sur votre instance de base de données source pendant la réalisation de l'instantané de base de données.

Note

La suspension d'I/O dure généralement environ une minute. Vous pouvez éviter la suspension d'I/O si l'instance de base de données source est un déploiement multi-AZ, car dans ce cas l'instantané est pris à partir de l'instance de base de données secondaire.

Une transaction de longue durée active peut ralentir le processus de création du réplica en lecture. Nous vous recommandons d'attendre que les transactions de longue durée se terminent pour créer un réplica en lecture. Si vous créez plusieurs réplicas en lecture en parallèle à partir de la même instance de base de données source, Amazon RDS prend un seul instantané au début de la première action de création.

Lors de la création d'un réplica en lecture, il convient de prendre en considération plusieurs éléments. Tout d'abord, vous devez activer les sauvegardes automatiques sur l'instance de bases de données source en affectant à la période de rétention des sauvegardes une valeur différente de 0. Cette exigence s'applique également à un réplica en lecture qui serait l'instance de base de données source d'un autre réplica en lecture. Pour activer les sauvegardes automatiques sur un réplica en lecture RDS for MySQL, commencez par créer le réplica en lecture, puis modifiez-le pour activer les sauvegardes automatiques.

Note

Dans un Région AWS, nous vous recommandons vivement de créer toutes les répliques de lecture dans le même cloud privé virtuel (VPC) basé sur Amazon VPC en tant qu'instance de base de données source. Si vous créez un réplica en lecture dans un VPC différent de l'instance de base de données source, les plages d'adresses CIDR (classless inter-domain routing) peuvent se chevaucher entre le réplica et le système RDS. Le chevauchement CIDR rend le réplica instable, ce qui peut avoir un impact négatif sur les applications qui s'y connectent. Si vous recevez une erreur lors de la création du réplica en lecture, choisissez un autre groupe de sous-réseaux de base de données de destination. Pour de plus amples informations, veuillez consulter Utilisation d'un(e) instance de base de données dans un VPC.

Il n'existe aucun moyen direct de créer une réplique de lecture dans un autre à Compte AWS l'aide de la console ou AWS CLI.

Pour créer un réplica en lecture à partir d'une instance de base de données source
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans la panneau de navigation, choisissez Databases (Bases de données).

  3. Sélectionnez l'instance de base de données que vous voulez utiliser comme source pour votre réplica en lecture.

  4. Sous Actions, choisissez Créer des réplicas en lecture.

  5. Sous Identifiant de l'instance DB, saisissez un nom pour le réplica en lecture.

  6. Choisissez la configuration de votre instance. Nous vous recommandons d'utiliser un type de stockage et une classe d'instances de base de données identiques ou supérieurs à l'instance de base de données source pour le réplica en lecture.

  7. Pour Région AWS, spécifiez la région de destination du réplica en lecture.

  8. Pour Stockage, spécifiez la taille de stockage allouée et si vous souhaitez utiliser la mise à l'échelle automatique du stockage.

    Si votre instance de base de données source n'utilise pas la dernière configuration de stockage, l'option Mettre à niveau la configuration du système de fichiers de stockage est disponible. Vous pouvez activer ce paramètre pour mettre à niveau le système de fichiers de stockage du réplica en lecture vers la configuration préférée. Pour de plus amples informations, veuillez consulter Mise à niveau du système de fichiers de stockage d'une instance de base de données.

  9. Pour Disponibilité, choisissez si vous voulez créer une instance de secours de votre réplica dans une autre zone de disponibilité pour prendre en charge le basculement pour ce réplica.

    Note

    La création de votre réplica en lecture en tant qu'instance de base de données multi-AZ est indépendante du fait que la base de données source soit ou non une instance de base de données multi-AZ.

  10. Spécifiez d'autres paramètres d'instance de base de données. Pour obtenir des informations sur chaque paramètre disponible, consultez Paramètres des instances de base de données.

  11. Pour créer un réplica en lecture chiffré, développez Configuration supplémentaire et spécifiez les paramètres suivants :

    1. Choisissez Activer le chiffrement.

    2. Pour AWS KMS key, choisissez l' AWS KMS key identifiant de la clé KMS.

    Note

    L'instance de base de données source doit être chiffrée. Pour en savoir plus sur le chiffrement de l'instance de bases de données source, consultez Chiffrement des ressources Amazon RDS.

  12. Choisissez Créer un réplica en lecture.

Une fois le réplica en lecture créé, vous pouvez le voir sur la page Bases de données de la console RDS. Il affiche le réplica dans la colonne Rôle .

Pour créer une réplique en lecture à partir d'une instance de base de données source, utilisez la AWS CLI commande create-db-instance-read-replica. Cet exemple définit également la taille de stockage allouée, active la mise à l'échelle automatique du stockage et met à niveau le système de fichiers vers la configuration préférée.

Vous pouvez spécifier d'autres paramètres. Pour obtenir des informations sur chaque paramètre, consultez Paramètres des instances de base de données.

Exemple

Pour LinuxmacOS, ou Unix :

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-instance-identifier mydbinstance \ --allocated-storage 100 \ --max-allocated-storage 1000 \ --upgrade-storage-config

Dans Windows :

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-instance-identifier mydbinstance ^ --allocated-storage 100 ^ --max-allocated-storage 1000 ^ --upgrade-storage-config

Pour créer un réplica en lecture à partir d'une instance de base de données MySQL, MariaDB, Oracle, PostgreSQL ou SQL Server source, appelez l'opération CreateDBInstanceReadReplica de l'API Amazon RDS avec les paramètres requis suivants :

  • DBInstanceIdentifier

  • SourceDBInstanceIdentifier

Promotion d'un réplica en lecture en instance de bases de données autonome

Vous pouvez promouvoir un réplica en lecture an tant qu'une instance de base de données autonome. Si une instance de base de données source possède plusieurs réplicas en lecture, la promotion d'un des réplicas en lecture en instance de base de données n'a aucun effet sur les autres réplicas.

Lorsque vous promouvez une réplique en lecture, RDS redémarre l'instance de base de données avant de la rendre disponible. Le processus de promotion peut prendre plusieurs minutes ou plus longtemps, selon la taille du réplica en lecture.


            Promotion d'un réplica en lecture

Cas d'utilisation pour promouvoir une réplique lue

Vous souhaiterez peut-être promouvoir une réplique en lecture vers une instance de base de données autonome pour l'une des raisons suivantes :

  • Implémentation d'une récupération en cas de défaillance – Vous pouvez utiliser la promotion de réplica en lecture comme plan de récupération de données en cas de défaillance de l'instance de base de données principale. Cette approche complète la réplication synchrone, la détection automatique d'échec et le basculement.

    Si vous êtes conscient des ramifications et des limitations de la réplication asynchrone et que vous souhaitez toujours utiliser la promotion de réplica en lecture pour la récupération des données, vous pouvez le faire. Pour cela, commencez par créer un réplica en lecture, puis surveillez l'instance de base de données principale pour détecter les pannes. En cas de panne, procédez comme suit :

    1. Promouvez le réplica en lecture.

    2. Dirigez le trafic de base de données vers l'instance de bases de données promue.

    3. Créez un réplica en lecture de remplacement avec l'instance de base de données promue comme source.

  • Mise à niveau de la configuration de stockage : si votre instance de base de données source ne correspond pas à la configuration de stockage préférée, vous pouvez créer un réplica en lecture de l'instance et mettre à niveau la configuration du système de fichiers de stockage. Cette option migre le système de fichiers du réplica en lecture vers la configuration préférée. Vous pouvez ensuite promouvoir le réplica en lecture en tant qu'instance autonome.

    Vous pouvez utiliser cette option pour surmonter les limitations de mise à l'échelle en matière de stockage et de taille de fichier pour les anciens systèmes de fichiers 32 bits. Pour de plus amples informations, veuillez consulter Mise à niveau du système de fichiers de stockage d'une instance de base de données.

    Cette option n'est disponible que si votre instance de base de données source ne possède pas la dernière configuration de stockage ou si vous modifiez la classe d'instance de base de données dans la même demande.

  • Partitionnement – Le partitionnement incarne l'architecture « ne rien partager » et implique essentiellement la décomposition d'une grande base de données en plusieurs bases de données plus petites. Pour fractionner une base de données, l'une des méthodes consiste à fractionner les tables qui ne sont pas jointes dans la même requête sur différents hôtes. L'autre méthode consiste à dupliquer une table entre plusieurs hôtes, puis à utiliser un algorithme de hachage pour déterminer l'hôte qui reçoit une mise à jour donnée. Vous pouvez créer des réplicas en lecture correspondant à chacune de vos partitions (bases de données plus petites) et les promouvoir quand vous décidez de les convertir en partitions autonomes. Vous pouvez alors extraire l'espace clé (si vous fractionnez les lignes) ou la distribution des tables pour chaque partitionnement selon vos besoins.

  • Exécution d'opérations DDL (MySQL et MariaDB uniquement) – Les opérations DDL, telles que la création ou la reconstruction d'index, peuvent prendre du temps et imposer une pénalité importante de performances à votre instance de base de données. Vous pouvez exécuter ces opérations sur un réplica en lecture MySQL ou MariaDB une fois que ce réplica en lecture est synchronisé avec son instance de bases de données principale. Ensuite, vous pouvez promouvoir le réplica en lecture et indiquer à vos applications d'utiliser l'instance promue.

Note

Si votre réplique de lecture est une instance de base de données RDS pour Oracle, vous pouvez effectuer un changement au lieu d'une promotion. Lors d'un basculement, l'instance de base de données source devient la nouvelle réplique, et la réplique devient la nouvelle instance de base de données source. Pour de plus amples informations, veuillez consulter Exécution d'un basculement d'Oracle Data Guard.

Caractéristiques d'une réplique de lecture sponsorisée

Une fois que vous avez promu la réplique en lecture, elle cesse de fonctionner en tant que réplique en lecture et devient une instance de base de données autonome. La nouvelle instance de base de données autonome présente les caractéristiques suivantes :

  • L'instance de base de données autonome conserve le groupe d'options et le groupe de paramètres de la réplique de lecture avant la promotion.

  • Vous pouvez créer des répliques de lecture à partir de l'instance de base de données autonome et effectuer des opérations de point-in-time restauration.

  • Vous ne pouvez pas utiliser l'instance de base de données comme cible de réplication car il ne s'agit plus d'une réplique en lecture.

Conditions préalables à la promotion d'une réplique lue

Avant de promouvoir une réplique lue, procédez comme suit :

  • Passez en revue votre stratégie de sauvegarde :

    • Nous vous recommandons d'activer les sauvegardes et d'effectuer au moins une sauvegarde. La durée de la sauvegarde dépend du nombre de modifications apportées à la base de données depuis la dernière sauvegarde.

    • Si vous avez activé des sauvegardes sur votre réplica en lecture, configurez la fenêtre de sauvegarde automatique afin que les sauvegardes quotidiennes n'interfèrent pas avec la promotion du réplica en lecture.

    • Assurez-vous que votre réplique lue n'a pas ce backing-up statut. Vous ne pouvez pas promouvoir une réplique lue lorsqu'elle est dans cet état.

  • Arrêtez l'écriture de transactions sur l'instance de base de données principale, puis attendez que RDS applique toutes les mises à jour à la réplique lue.

    Les mises à jour de la base de données ont lieu sur le réplica en lecture après avoir eu lieu sur l'instance de base de données principale. Le délai de réplication peut varier considérablement. Utilisez la métrique Replica Lag pour déterminer à quel moment toutes les mises à jour ont été effectuées sur le réplica en lecture.

  • (MySQL et MariaDB uniquement) Pour apporter des modifications à une réplique de lecture MySQL ou MariaDB avant de la promouvoir, définissez le paramètre sur dans le groupe de paramètres de base de données 0 pour read_only la réplique en lecture. Vous pouvez alors effectuer toutes les opérations DDL requises, telles que la création d'index, sur le réplica en lecture. Les actions entreprises sur le réplica en lecture n'affectent pas la performance de l'instance de base de données principale.

Promouvoir un réplica de lecture : étapes de base

Les étapes suivantes montrent le processus général de promotion d'un réplica en lecture en instance de base de données :

  1. Promouvez la réplique lue à l'aide de l'option Promote de la console Amazon RDS, de la AWS CLI commande promote-read-replicaou de l'opération d'API PromoteReadReplicaAmazon RDS.

    Note

    Le processus de promotion dure quelques minutes. Lorsque vous promouvez une réplique en lecture, RDS arrête la réplication et redémarre la réplique en lecture. Une fois le redémarrage terminé, le réplica en lecture est disponible en tant que nouvelle instance de base de données.

  2. (Facultatif) Modifiez la nouvelle instance de base de données pour en faire un déploiement multi-AZ. Pour plus d'informations, veuillez consulter Modification d'une instance de base de données Amazon RDS et Configuration et gestion d'un déploiement multi-AZ.

Pour promouvoir un réplica en lecture en tant qu'instance de base de données autonome
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans la console Amazon RDS, choisissez Bases de données.

    Le volet Bases de données s'affiche. Chaque réplica en lecture affiche Réplica dans la colonne Rôle.

  3. Choisissez le réplica en lecture que vous voulez promouvoir.

  4. Pour Actions, choisissez Promote (Promouvoir).

  5. Dans la page Promouvoir le réplica en lecture, saisissez la période de rétention des sauvegardes et la fenêtre de sauvegarde pour l'instance de base de données nouvellement promue.

  6. Lorsque les paramètres vous conviennent, choisissez Continue.

  7. Dans la page de confirmation, choisissez Promouvoir le réplica en lecture.

Pour promouvoir une réplique en lecture vers une instance de base de données autonome, utilisez la AWS CLI promote-read-replicacommande.

Exemple

Pour LinuxmacOS, ou Unix :

aws rds promote-read-replica \ --db-instance-identifier myreadreplica

Dans Windows :

aws rds promote-read-replica ^ --db-instance-identifier myreadreplica

Pour promouvoir un réplica en lecture en tant qu'instance de base de données autonome, appelez l'opération PromoteReadReplica de l'API Amazon RDS avec le paramètre requis DBInstanceIdentifier.

Supervision de la réplication en lecture

Vous pouvez superviser le statut d'un réplica en lecture de différentes manières. La console Amazon RDS affiche le statut d'un réplica en lecture dans la section Replication (Réplication) de l'onglet Connectivity & security (Connectivité et sécurité), dans les détails du réplica en lecture. Pour consulter les détails d'un réplica en lecture, cliquez sur son nom dans la liste des instances de base de données de la console Amazon RDS.


            Statut du réplica en lecture

Vous pouvez également consulter l'état d'une réplique lue à l'aide de la AWS CLI describe-db-instances commande ou de l'DescribeDBInstancesopération d'API Amazon RDS.

Le statut d'un réplica en lecture peut avoir les valeurs suivantes :

  • replicating (réplication en cours) – Le réplica en lecture réplique correctement.

  • réplication dégradée (SQL Server et PostgreSQL uniquement) : les réplicas reçoivent des données de l'instance principale, mais une ou plusieurs bases de données peuvent ne pas recevoir de mises à jour. Cela peut se produire, par exemple, lorsqu'un réplica est en train de configurer des bases de données nouvellement créées. Cela peut également se produire lorsque des modifications d'instructions DDL ou d'objets volumineux non prises en charge sont apportées dans l'environnement bleu d'un déploiement bleu/vert.

    L'état ne passe pas de replication degraded à error, à moins qu'une erreur ne se produise pendant l'état dégradé.

  • error (erreur) – Une erreur s'est produite dans le cadre de la réplication. Examinez le champ Replication Error (Erreur de réplication) dans la console Amazon RDS ou le journal des événements pour déterminer l'erreur exacte. Pour plus d'informations sur la résolution d'une erreur de réplication, consultez Résolution d'un problème de réplica en lecture MySQL.

  • terminated (arrêté) (MariaDB, MySQL ou PostgreSQL uniquement) – La réplication est arrêtée. Cela se produit si la réplication est arrêtée pendant plus de trente jours consécutifs, manuellement ou en raison d'une erreur de réplication. Dans ce cas, Amazon RDS met fin à la réplication entre l'instance de base de données principale et tous les réplicas en lecture. Amazon RDS fait cela pour éviter l'augmentation des besoins en stockage sur l'instance de base de données source et de longs délais de basculement.

    Une réplication interrompue peut affecter le stockage, car les journaux peuvent croître en taille et en nombre en raison du volume élevé des messages d'erreur consignés dans le journal. Une réplication interrompue peut également affecter la récupération en cas de défaillance en raison du temps dont a besoin Amazon RDS pour conserver et traiter le grand nombre de journaux au cours de la récupération.

  • terminated (arrêté) (Oracle uniquement) – La réplication est arrêtée. Cela se produit si la réplication est arrêtée pendant plus de 8 heures car l'espace de stockage restant sur le réplica en lecture est insuffisant. Dans ce cas, Amazon RDS met fin à la réplication entre l'instance de base de données principale et les réplicas en lecture affectés. Ce statut est un état terminal et le réplica en lecture doit être recréé.

  • stopped (interrompue) (MariaDB ou MySQL uniquement) – La réplication s'est interrompue en raison d'une demande initiée par le client.

  • replication stop point set (point d'arrêt de réplication réglé) (MySQL uniquement) – Un point d'arrêt de réplication a été réglé par le client à l'aide de la procédure stockée mysql.rds_start_replication_until et la réplication est en cours.

  • replication stop point reached (point d'arrêt de réplication atteint) (MySQL uniquement) – Un point d'arrêt de réplication a été réglé par le client à l'aide de la procédure stockée mysql.rds_start_replication_until et la réplication est arrêtée, car le point d'arrêt est atteint.

Vous pouvez voir où une instance de base de données est répliquée et, le cas échéant, vérifier son état de réplication. Sur la page Bases de données de la console RDS, elle affiche Primaire dans la colonne Rôle . Choisissez son nom d'instance de base de données. Sur sa page détaillée, dans l'onglet Connectivité et sécurité, son état de réplication se trouve sous Réplication.

Surveillance du retard de réplication

Vous pouvez surveiller le délai de réplication dans Amazon CloudWatch en consultant la ReplicaLag métrique Amazon RDS.

Pour MySQL et MariaDB, la métrique ReplicaLag contient la valeur du champ Seconds_Behind_Master de la commande SHOW REPLICA STATUS. Les causes courantes du retard de réplication pour MySQL et MariaDB sont les suivantes :

  • Une indisponibilité du réseau.

  • L'écriture dans des tables avec des index sur un réplica en lecture. Si le paramètre read_only n'a pas pour valeur 0 sur le réplica en lecture, il peut interrompre la réplication.

  • Utilisation d'un moteur de stockage non transactionnel tel que MyISAM. La réplication est prise en charge uniquement pour le moteur de stockage InnoDB sur MySQL et pour le moteur de stockage XtraDB sur MariaDB.

Note

Les versions précédentes de MariaDB et MySQL utilisaient SHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version de MariaDB antérieure à la version 10.5 ou MySQL antérieure à la version 8.0.23, utilisez alors SHOW SLAVE STATUS.

Lorsque la métrique ReplicaLag atteint 0, le réplica a rattrapé l'instance de bases de données principale. Si la métrique ReplicaLag retourne -1, la réplication n'est actuellement pas active. ReplicaLag = -1 est équivalent à Seconds_Behind_Master = NULL.

Pour Oracle, la métrique ReplicaLag correspond à la somme de la valeur Apply Lag et à la différence entre la durée actuelle et la valeur DATUM_TIME du retard appliqué. La valeur DATUM_TIME correspond à la dernière heure à laquelle le réplica en lecture a reçu des données de son instance de base de données source. Pour plus d'informations, veuillez consulter V$DATAGUARD_STATS dans la documentation d'Oracle.

Pour SQL Server, la métrique ReplicaLag correspond au décalage maximal des bases de données qui ont pris du retard, en secondes. Par exemple, si vous avez deux bases de données qui accusent respectivement un retard de 5 secondes et 10 secondes, alors ReplicaLag a pour valeur 10 secondes. La métrique ReplicaLag renvoie la valeur de la requête suivante.

SELECT MAX(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;

Pour plus d'informations, veuillez consulter secondary_lag_seconds dans la documentation Microsoft.

ReplicaLag renvoie -1 si RDS ne peut pas déterminer le retard, par exemple lors de la configuration du réplica, ou lorsque le réplica en lecture est à l'état error.

Note

Les nouvelles bases de données ne sont pas incluses dans le calcul du retard tant qu'elles ne sont pas accessibles sur le réplica en lecture.

Pour PostgreSQL, la métrique ReplicaLag renvoie la valeur de la requête suivante.

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS reader_lag

PostgreSQL versions 9.5.2 et ultérieures utilise des emplacements physiques de réplication pour gérer la rétention WAL (Write Ahead Log) sur l'instance source. Pour chaque instance de réplica en lecture entre régions, Amazon RDS crée un emplacement de réplication physique et l'associe à l'instance. Deux CloudWatch indicateurs Amazon, Oldest Replication Slot Lag etTransaction Logs Disk Usage, montrent à quel point la réplique la plus en retard se situe en termes de données WAL reçues et de quantité de stockage utilisée pour les données WAL. La valeur Transaction Logs Disk Usage peut considérablement augmenter lorsqu'un réplica en lecture entre régions présente un retard important.

Pour plus d'informations sur la surveillance d'une instance de base de données avec CloudWatch, consultezSurveillance des métriques Amazon RDS avec Amazon CloudWatch.

Création d'une réplique de lecture dans un autre Région AWS

Avec Amazon RDS, vous pouvez créer une réplique en lecture dans une instance de base de données différente Région AWS de l'instance de base de données source.


                Configuration d'un réplica en lecture entre régions

Vous créez une réplique de lecture dans un autre Région AWS pour effectuer les opérations suivantes :

  • Améliorer vos capacités de reprise après sinistre.

  • Adaptez les opérations de lecture au Région AWS plus près de vos utilisateurs.

  • Facilitez la migration d'un centre de données de l'un Région AWS vers un centre de données d'un autre Région AWS.

La création d'une réplique en lecture dans une instance Région AWS différente de l'instance source est similaire à la création d'une réplique dans la même instance Région AWS. Vous pouvez utiliser AWS Management Console, exécuter la create-db-instance-read-replicacommande ou appeler l'opération CreateDBInstanceReadReplicaAPI.

Note

Pour créer une réplique de lecture chiffrée dans une instance de base de données Région AWS différente de l'instance de base de données source, l'instance de base de données source doit être chiffrée.

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions avec la réplication entre régions, consultez Réplicas en lecture entre Régions.

Création d'un réplica en lecture entre régions

Les procédures suivantes expliquent comment créer un réplica en lecture à partir d'une instance de base de données MariaDB, Microsoft SQL Server, MySQL, Oracle ou PostgreSQL source dans une autre Région AWS.

Vous pouvez créer une réplique en lecture à Régions AWS travers le AWS Management Console.

Pour créer une réplique en lecture Régions AWS avec la console
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Databases (Bases de données).

  3. Choisissez l'instance de base de données MariaDB, Microsoft SQL Server, MySQL, Oracle ou PostgreSQL que vous souhaitez utiliser comme source pour un réplica en lecture.

  4. Sous Actions, choisissez Créer des réplicas en lecture.

  5. Sous Identifiant de l'instance DB, saisissez un nom pour le réplica en lecture.

  6. Choisissez la Région de destination.

  7. Choisissez les spécifications de l'instance que vous souhaitez utiliser. Nous vous recommandons d'utiliser un type de stockage et une classe d'instances de base de données identiques ou supérieurs pour le réplica en lecture.

  8. Pour créer une réplique de lecture cryptée dans un autre Région AWS :

    1. Choisissez Activer le chiffrement.

    2. Pour AWS KMS key, choisissez l' AWS KMS key identifiant de la clé KMS dans la destination Région AWS.

    Note

    L'instance de base de données source doit être chiffrée pour que vous puissiez créer un réplica en lecture chiffré. Pour en savoir plus sur le chiffrement de l'instance de bases de données source, consultez Chiffrement des ressources Amazon RDS.

  9. Choisissez d'autres options, telles que la scalabilité automatique du stockage.

  10. Choisissez Créer un réplica en lecture.

Pour créer un réplica en lecture à partir d'une instance de base de données MySQL, Microsoft SQL Server, MariaDB, Oracle ou PostgreSQL source dans une autre Région AWS, vous pouvez utiliser la commande create-db-instance-read-replica. Dans ce cas, vous utilisez create-db-instance-read-replicadepuis l' Région AWS endroit où vous souhaitez lire la réplique (région de destination) et vous spécifiez le nom de ressource Amazon (ARN) pour l'instance de base de données source. Un ARN identifie de façon unique une ressource créée dans Amazon Web Services.

Par exemple, si votre instance de base de données source se trouve dans la région US East (N. Virginia), l'ARN ressemble à l'exemple suivant :

arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Pour en savoir plus sur les ARN, consultez Utilisation des Amazon Resource Names (ARN) dans Amazon RDS.

Pour créer une réplique de lecture dans une instance de base de données Région AWS différente de l'instance de base de données source, vous pouvez utiliser la AWS CLI create-db-instance-read-replicacommande depuis la destination Région AWS. Les paramètres suivants sont nécessaires pour créer un réplica en lecture dans une autre Région AWS :

  • --region— Destination Région AWS où la réplique lue est créée.

  • --source-db-instance-identifier – Identifiant d'instance de base de données de l'instance de base de données source. Cet identifiant doit être au format ARN pour la Région AWS source.

  • --db-instance-identifier – Identifiant du réplica en lecture dans la Région AWS de destination.

Exemple d'un réplica en lecture entre régions

Le code suivant crée un réplica en lecture dans la région USA Ouest (Oregon) à partir d'une instance de base de données source dans la région US East (N. Virginia).

Pour LinuxmacOS, ou Unix :

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --region us-west-2 \ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Dans Windows :

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --region us-west-2 ^ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Le paramètre suivant est également nécessaire pour créer un réplica en lecture chiffré dans une autre Région AWS :

  • --kms-key-id— L' AWS KMS key identifiant de la clé KMS à utiliser pour chiffrer la réplique lue dans la destination Région AWS.

Exemple d'un réplica en lecture entre régions chiffré

Le code suivant crée un réplica en lecture chiffré dans la région USA Ouest (Oregon) à partir d'une instance de base de données source dans la région US East (N. Virginia).

Pour LinuxmacOS, ou Unix :

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --region us-west-2 \ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance \ --kms-key-id my-us-west-2-key

Dans Windows :

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --region us-west-2 ^ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance ^ --kms-key-id my-us-west-2-key

--source-regionCette option est requise lorsque vous créez une réplique de lecture cryptée entre les régions AWS GovCloud (USA Est) et AWS GovCloud (USA Ouest). Pour --source-region, spécifiez la Région AWS de l'instance de base de données source.

Si --source-region n'est pas spécifié, spécifiez une valeur --pre-signed-url. Une URL présignée est une URL qui contient une demande signée via Signature Version 4 pour la commande create-db-instance-read-replica qui est appelée dans la Région AWS source. Pour en savoir plus sur pre-signed-url cette option, consultez create-db-instance-read-replica dans le manuel de référence des AWS CLI commandes.

Pour créer une réplique en lecture à partir d'une instance de base de données MySQL, Microsoft SQL Server, MariaDB, Oracle ou PostgreSQL source dans une autre instance Région AWS, vous pouvez appeler l'opération d'API Amazon RDS CreateDB. InstanceReadReplica Dans ce cas, vous appelez CreateDB InstanceReadReplica depuis l' Région AWS endroit où vous souhaitez lire la réplique (région de destination) et vous spécifiez le nom de ressource Amazon (ARN) pour l'instance de base de données source. Un ARN identifie de façon unique une ressource créée dans Amazon Web Services.

Pour créer une réplique de lecture chiffrée dans une instance de base de données Région AWS différente de l'instance de base de données source, vous pouvez utiliser l'CreateDBInstanceReadReplicaopération d'API Amazon RDS depuis la destination Région AWS. Pour créer une réplique de lecture cryptée dans un autre Région AWS, vous devez spécifier une valeur pourPreSignedURL. PreSignedURLdoit contenir une demande pour que l'CreateDBInstanceReadReplicaopération appelle la source dans Région AWS laquelle la réplique de lecture est créée. Pour en savoir plus sur PreSignedUrl, consultez CreateDBInstanceReadReplica.

Par exemple, si votre instance de bases de données source se trouve dans la région US East (N. Virginia), l'ARN ressemble à ce qui suit.

arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Pour en savoir plus sur les ARN, consultez Utilisation des Amazon Resource Names (ARN) dans Amazon RDS.

Exemple
https://us-west-2.rds.amazonaws.com/ ?Action=CreateDBInstanceReadReplica &KmsKeyId=my-us-east-1-key &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCreateDBInstanceReadReplica %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%123456789012%25253Adb%25253Amydbinstance %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4%2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Ainstance%25253Amydbinstance %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &DBInstanceIdentifier=myreadreplica &SourceDBInstanceIdentifier=&region-arn;rds:us-east-1:123456789012:db:mydbinstance &Version=2012-01-15 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2012-01-20T22%3A06%3A23.624Z &AWSAccessKeyId=<&AWS; Access Key ID> &Signature=<Signature>

Processus de réplication entre régions au sein d'Amazon RDS

Amazon RDS utilise le processus ci-dessous pour créer un réplica en lecture entre régions. Ce processus peut prendre des Régions AWS heures en fonction de l'enjeu et de la quantité de données contenues dans les bases de données. Vous pouvez utiliser ces informations pour déterminer l'avancement du processus lorsque vous créez un réplica en lecture entre régions :

  1. Amazon RDS commence par configurer l'instance DB source comme source de réplication et définit le statut sur modifying (modification).

  2. Amazon RDS commence à configurer la réplique de lecture spécifiée dans la destination Région AWS et définit le statut de création.

  3. Amazon RDS crée un instantané de base de données automatisé de l'instance de base de données source dans la Région AWS source. Le format du nom de l'instantané de base de données est : rds:<InstanceID>-<timestamp>, où <InstanceID> est l'identifiant de l'instance source, et <timestamp> est la date et l'heure du début de la copie. Par exemple, rds:mysourceinstance-2013-11-14-09-24 a été créé à partir de l'instance mysourceinstance le 2013-11-14-09-24. Pendant la création de l'instantané de base de données automatique, le statut de l'instance de base de données source reste modifying (modification), le statut du réplica en lecture reste creating (création) et le statut de l'instantané de base de données est creating (création). La colonne d'avancement de la page de l'instantané de base de données dans la console indique le niveau d'avancement de la création de l'instantané de base de données. Une fois l'instantané de base de données terminé, le statut de l'instantané de base de données et celui de l'instance de base de données source sont définis sur available (disponible).

  4. Amazon RDS commence une copie de l'instantané entre régions pour le transfert de données initial. La copie instantanée est répertoriée en tant que capture automatique dans la destination Région AWS avec un statut de création. Elle porte le même nom que l'instantané de base de données source. La colonne d'avancement de l'affichage de l'instantané de base de données indique le niveau d'avancement de la copie. Une fois la copie terminée, le statut de la copie de l'instantané de base de données est défini sur available (disponible).

  5. Amazon RDS utilise alors l'instantané de base de données copié pour le chargement initial des données sur le réplica en lecture. Au cours de cette phase, le réplica en lecture figure dans la liste des instances de bases de données de la destination, avec le statut creating (création). Une fois le chargement terminé, le statut du réplica en lecture est défini sur available (disponible) et la copie de l'instantané de base de données est supprimée.

  6. Lorsque le réplica en lecture atteint le statut disponible, Amazon RDS commence par répliquer les modifications apportées à l'instance source depuis le début de l'opération de création du réplica en lecture. Durant cette phase, la durée du retard de réplication pour le réplica en lecture est supérieure à 0.

    Pour plus d'informations sur la durée du retard de réplication, veuillez consulter Supervision de la réplication en lecture.

Considérations liées à la réplication entre régions

Toutes les considérations relatives à la réalisation de la réplication au sein d'un Région AWS s'appliquent à la réplication entre régions. Les considérations supplémentaires suivantes s'appliquent lors d'une réplication entre Régions AWS :

  • Une instance de base de données source peut avoir des réplicas en lecture entre régions dans plusieurs Régions AWS.

  • Vous pouvez effectuer une réplication entre les régions GovCloud (USA Est) et GovCloud (USA Ouest), mais pas à destination ou en provenance des GovCloud États-Unis.

  • Pour les instances de base de données Microsoft SQL Server, Oracle et PostgreSQL, vous pouvez uniquement créer un réplica en lecture entre régions Amazon RDS qu'à partir d'une instance de base de données source Amazon RDS qui n'est pas un réplica en lecture d'une autre instance de base de données Amazon RDS. Cette limitation ne s'applique pas aux instances de bases de données MariaDB et MySQL.

  • Vous pouvez vous attendre à un temps de latence plus élevé pour toute réplique en lecture située dans une instance différente Région AWS de celle de la source. Cette latence vient des canaux de réseau plus longs entre les centres de données régionaux.

  • Pour ces réplicas en lecture entre régions, toutes les commandes de création de réplica en lecture qui spécifient le paramètre --db-subnet-group-name doivent spécifier un groupe de sous-réseaux DB du même VPC.

  • En raison de la limite du nombre d'entrées de liste de contrôle d'accès (ACL) pour le VPC source, nous ne pouvons pas garantir plus de cinq instances de réplica en lecture entre régions.

  • Dans la plupart des cas, le réplica en lecture utilise le groupe de paramètres de base de données par défaut et le groupe d'options de base de données par défaut pour le moteur de base de données spécifié.

    Pour les moteurs de base de données MySQL et Oracle, vous pouvez spécifier un groupe de paramètres personnalisé pour la réplique en lecture dans l'--db-parameter-group-nameoption de la AWS CLI commande create-db-instance-read-replica. Vous ne pouvez pas spécifier un groupe de paramètres personnalisé lorsque vous utilisez AWS Management Console.

  • Le réplica en lecture utilise le groupe de sécurité par défaut.

  • Pour les instances de base de données MariaDB, Microsoft SQL Server, MySQL et Oracle, lorsque l'instance de base de données source pour un réplica en lecture entre régions est supprimée, le réplica en lecture est promu.

  • Pour les instances de base de données PostgreSQL, lorsque l'instance de base de données source d'un réplica en lecture entre régions est supprimée, l'état de réplication du réplica en lecture est défini sur terminated. Le réplica en lecture n'est pas promu.

    Vous devez promouvoir le réplica en lecture ou le supprimer manuellement.

Demande d'un réplica en lecture entre régions

Pour communiquer avec la région source afin de demander la création d'un réplica en lecture entre régions, le demandeur (rôle IAM ou utilisateur IAM) doit avoir accès à l'instance de base de données source et à la région source.

Certaines conditions de la politique IAM du demandeur peuvent occasionner l'échec de la demande. Les exemples suivants supposent que l'instance de base de données source se trouve dans la USA Est (Ohio) et que le réplica en lecture est créé dans la US East (N. Virginia). Ces exemples illustrent les conditions de la politique IAM du demandeur qui occasionnent l'échec de la demande :

  • La stratégie du demandeur est assortie d'une condition pour la aws:RequestedRegion.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-1" } }

    La demande échoue car la politique interdit l'accès à la région source. Pour qu'une demande aboutisse, spécifiez les régions source et destination.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-east-2" ] } }
  • La politique du demandeur interdit l'accès à l'instance de base de données source.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "arn:aws:rds:us-east-1:123456789012:db:myreadreplica" ...

    Pour qu'une demande aboutisse, spécifiez à la fois l'instance source et le réplica.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": [ "arn:aws:rds:us-east-1:123456789012:db:myreadreplica", "arn:aws:rds:us-east-2:123456789012:db:mydbinstance" ] ...
  • La stratégie du demandeur refuse aws:ViaAWSService.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "Bool": {"aws:ViaAWSService": "false"} }

    La communication avec la région source est effectuée par RDS pour le compte du demandeur. Pour que la demande soit acceptée, ne refusez pas les appels passés par AWS les services.

  • La stratégie du demandeur est assortie d'une condition pour aws:SourceVpc ou aws:SourceVpce.

    Ces demandes peuvent échouer car l'appel effectué par RDS à la région distante ne provient pas du point de terminaison VPC ou du VPC spécifié.

Si vous devez utiliser l'une des conditions précédentes, qui sont susceptibles d'occasionner l'échec d'une requête, vous pouvez inclure une deuxième instruction avec aws:CalledVia dans votre politique pour que la demande soit couronnée de succès. Par exemple, vous pouvez utiliser aws:CalledVia avec aws:SourceVpce comme indiqué ici :

... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "Condition" : { "ForAnyValue:StringEquals" : { "aws:SourceVpce": "vpce-1a2b3c4d" } } }, { "Effect": "Allow", "Action": [ "rds:CreateDBInstanceReadReplica" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "rds.amazonaws.com" ] } } }

Pour de plus amples informations, veuillez consulter Policies and permissions in IAM (Stratégies et autorisations dans IAM) dans le IAM Guide de l'utilisateur.

Autorisation du réplica en lecture

Après qu'une demande de création d'un réplica en lecture de base de données inter-région a renvoyé success, RDS démarre la création du réplica en arrière-plan. Une autorisation devant permettre à RDS d'accéder à l'instance de base de données source est créée. Cette autorisation associe l'instance de base de données source au réplica en lecture et permet à RDS de ne copier que vers le réplica en lecture spécifié.

L'autorisation est vérifiée par RDS à l'aide de l'autorisation rds:CrossRegionCommunication dans le rôle IAM lié au service. Si le réplica est autorisé, RDS communique avec la région source et accomplit la création du réplica.

RDS n'a pas accès aux instances DB qui n'ont pas été autorisées auparavant par une demande CreateDBInstanceReadReplica. L'autorisation est révoquée lorsque la création du réplica en lecture est terminée.

RDS utilise le rôle lié au service afin de vérifier l'autorisation dans la région source. Si vous supprimez le rôle lié au service durant le processus de création de réplication, la création échoue.

Pour plus d'informations, consultez Utilisation des rôles liés à un service dans le IAM Guide de l'utilisateur.

Utilisation des AWS Security Token Service informations d'identification

Les jetons de session provenant du point de terminaison global AWS Security Token Service (AWS STS) ne sont valides Régions AWS que s'ils sont activés par défaut (régions commerciales). Si vous utilisez les informations d'identification issues de l'opération d'assumeRoleAPI dans AWS STS, utilisez le point de terminaison régional si la région source est une région optionnelle. Sinon, la demande échoue. Cela se produit parce que vos informations d'identification doivent être valides dans les deux régions, ce qui n'est vrai pour les régions optionnelles que lorsque le point de AWS STS terminaison régional est utilisé.

Pour utiliser le point de terminaison global, assurez-vous qu'il est activé dans les opérations pour les deux régions. Définissez le point de terminaison global sur Valid in all Régions AWS dans les paramètres du AWS STS compte.

La même règle s'applique aux informations d'identification dans le paramètre URL pré-signé.

Pour plus d'informations, consultez la section Gestion AWS STS dans et Région AWS dans le guide de l'utilisateur IAM.

Coûts de la réplication entre régions

Les données transférées pour la réplication entre régions génèrent des frais de transfert de données Amazon RDS. Ces actions de réplication entre régions génèrent des frais pour les données transférées hors de la Région AWS source :

  • Lorsque vous créez un réplica en lecture, Amazon RDS prend un instantané de l'instance source et transfère cet instantané vers la Région AWS du réplica en lecture.

  • Pour chaque modification de données effectuée dans les bases de données sources, Amazon RDS transfère les données de la source Région AWS vers la réplique Région AWS lue.

Pour de plus amples informations sur la tarification du transfert des données, veuillez consulter la Tarification Amazon RDS.

Pour les instances MySQL et MariaDB, vous pouvez réduire les coûts de transfert de données en réduisant le nombre de réplicas en lecture entre régions que vous créez. Supposons, par exemple, que vous ayez une instance de base de données source dans l'une Région AWS et que vous souhaitiez avoir trois répliques de lecture dans une autre Région AWS. Dans ce cas, vous créez uniquement l'un des réplicas en lecture à partir de l'instance de base de données source. Ensuite, vous créez les deux autres réplicas à partir du premier réplica en lecture plutôt qu'à partir de l'instance de base de données source.

Par exemple, si vous source-instance-1 en avez un Région AWS, vous pouvez effectuer les opérations suivantes :

  • Créez read-replica-1 dans le nouveau Région AWS, en spécifiant source-instance-1 comme source.

  • Créez read-replica-2 à partir de read-replica-1.

  • Créez read-replica-3 à partir de read-replica-1.

Dans cet exemple, seules les données transférées de source-instance-1 vers read-replica-1 vous sont facturées. Les données transférées de read-replica-1 vers les deux autres réplicas ne vous sont pas facturées, car ils figurent tous dans la même Région AWS. Si vous créez les trois réplicas directement à partir de source-instance-1, les transferts de données vers les trois réplicas vous sont facturés.