Utilisation de la bascule ou du basculement dans une base de données Amazon Aurora Global Database - Amazon Aurora

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 de la bascule ou du basculement dans une base de données Amazon Aurora Global Database

Une base de données Aurora Global Database fournit une protection de la continuité des activités et de la reprise après sinistre (BCDR) supérieure à la haute disponibilité standard fournie par un cluster de bases de données Aurora dans une Région AWS individuelle. Avec une base de données Aurora Global Database, vous pouvez planifier et effectuer des reprises plus rapides après des incidents régionaux imprévus ou des pannes complètes de services.

Vous pouvez consulter les directives et procédures suivantes pour planifier, tester et mettre en œuvre votre stratégie BCDR à l’aide de la fonctionnalité de base de données Aurora Global Database.

Planification de la continuité des activités et de la reprise après sinistre

Pour planifier votre stratégie de continuité des activités et de reprise après sinistre, il est utile de comprendre la terminologie suivante et le lien entre ces termes et les fonctionnalités de la base de données Aurora Global Database.

La reprise après sinistre est généralement axée sur les deux objectifs stratégiques suivants :

  • Objectif de délai de reprise (RTO) : temps nécessaire à un système pour revenir à un état de fonctionnement après un sinistre ou une interruption de services. En d’autres termes, le RTO mesure la durée d’indisponibilité. Pour une base de données Aurora globale, le RTO peut être de l’ordre de quelques minutes.

  • Objectif de point de reprise (RPO) : quantité de données pouvant être perdue (mesurée dans le temps) après un sinistre ou une interruption de services. Cette perte de données est généralement due à un retard de réplication asynchrone. Pour une base de données Aurora globale, le RPO est généralement mesuré en secondes. Avec une base de données globale basée sur Aurora PostgreSQL–, vous pouvez utiliser le paramètre rds.global_db_rpo pour définir et suivre la limite supérieure du RPO, mais cela peut affecter le traitement des transactions sur le nœud d’écriture du cluster principal. Pour plus d’informations, consultez Gestion des RPO pour les bases de données globales basées sur Aurora PostgreSQL–.

L’exécution d’une bascule ou d’un basculement avec la base de données Aurora Global Database implique de promouvoir un cluster de bases de données secondaire en tant que cluster de bases de données principal. Le terme « panne régionale » est couramment utilisé pour décrire divers scénarios de défaillance. Le pire des scénarios pourrait être une panne généralisée due à un événement catastrophique qui toucherait des centaines de kilomètres carrés. Toutefois, la plupart des pannes sont beaucoup plus localisées et ne concernent qu’un petit sous-ensemble de services cloud ou de systèmes clients. Tenez compte de toute l’étendue de la panne pour vous assurer que le basculement entre régions est la bonne solution et pour choisir la méthode de basculement adaptée à la situation. L’utilisation de l’approche de basculement ou de bascule dépend du scénario de panne spécifique :

  • Basculement : utilisez cette approche pour récupérer après une panne imprévue. Avec cette approche, vous effectuez un basculement entre régions vers l’un des clusters de bases de données secondaires de votre base de données globale Aurora. Le RPO pour cette approche est généralement une valeur non nulle mesurée en secondes. L’ampleur de la perte de données dépend du retard de réplication de la base de données globale Aurora entre les Régions AWS au moment de l’échec. Pour en savoir plus, consultez Reprise d’une base de données Amazon Aurora globale à partir d’une panne non planifiée.

  • Bascule : cette opération était précédemment appelée « basculement planifié géré ». Adoptez cette approche pour les scénarios contrôlés, tels que la maintenance opérationnelle et d’autres procédures opérationnelles planifiées, où tous les clusters Aurora et les autres services avec lesquels ils interagissent sont en bon état. Étant donné que cette fonction synchronise les clusters de bases de données secondaires avec le cluster principal avant toute modification, le RPO est égal à 0 (aucune donnée perdue). Pour en savoir plus, consultez Réalisation de bascules pour les bases de données Amazon Aurora Global Database.

Note

Si vous souhaitez effectuer une opération de bascule ou de basculement vers un cluster de bases de données Aurora secondaire sans périphériques, vous devez d’abord y ajouter une instance de base de données. Pour plus d’informations sur les clusters de bases de données sans tête, consultez Création d’un cluster de bases de données Aurora sans tête dans une région secondaire.

Réalisation de bascules pour les bases de données Amazon Aurora Global Database

Note

Les bascules étaient auparavant appelées basculements planifiés gérés.

En utilisant les bascules, vous pouvez modifier de façon routinière la région de votre cluster principal. Cette approche est destinée aux scénarios contrôlés tels que la maintenance opérationnelle et d’autres procédures opérationnelles planifiées.

Il existe trois cas d’utilisation courants pour l’utilisation des bascules.

  • Pour les exigences de « rotation régionale » imposées à des secteurs spécifiques. Par exemple, la réglementation des services financiers peut exiger que les systèmes de niveau 0 passent à une autre région pendant plusieurs mois afin de garantir que les procédures de reprise après sinistre sont régulièrement mises à l’épreuve.

  • Pour les applications 24 h/24 multirégionales. Par exemple, une entreprise peut souhaiter fournir une latence d’écriture plus faible dans différentes régions en fonction des heures d’ouverture dans différents fuseaux horaires.

  • En tant que méthode sans perte de données pour revenir à la région principale d’origine après un basculement.

Note

Les bascules sont conçues pour être utilisées sur une base de données globale Aurora où tous les clusters Aurora et les autres services avec lesquels ils interagissent sont en bon état. Pour récupérer après une panne imprévue, suivez la procédure appropriée dans Reprise d’une base de données Amazon Aurora globale à partir d’une panne non planifiée.

Vous ne pouvez effectuer une bascule gérée entre régions avec une base de données Aurora Global Database que si les clusters de bases de données principal et secondaires possèdent les mêmes versions de moteur majeures et mineures. Selon le moteur et les versions du moteur, les niveaux de correctifs doivent parfois être identiques ou peuvent être différents. Pour obtenir la liste des moteurs et des versions de moteur qui autorisent ces opérations entre les clusters principaux et secondaires avec différents niveaux de correctif, consultez Compatibilité des niveaux de correctif pour les bascules ou basculements gérés entre régions. Avant de commencer la bascule, vérifiez les versions du moteur de votre cluster global pour vous assurer qu’elles prennent en charge la bascule gérée entre régions, et mettez-les à niveau si nécessaire.

Lors d’une bascule, Aurora fait du cluster de la région secondaire de votre choix le cluster principal. Le mécanisme de bascule conserve la topologie de réplication existante de votre base de données globale : elle possède toujours le même nombre de clusters Aurora dans les mêmes régions. Avant de démarrer le processus de bascule, Aurora attend que tous les clusters des régions secondaires soient entièrement synchronisés avec le cluster de la région principale. Ensuite, le cluster de bases de données de la région principale devient accessible en lecture seule. Le cluster secondaire choisi promeut l’un de ses nœuds en lecture seule à l’état d’enregistreur complet, ce qui permet au cluster d’endosser le rôle de cluster principal. Comme tous les clusters secondaires ont été synchronisés avec le cluster principal au début du processus, le nouveau cluster principal poursuit les opérations de la base de données Aurora globale sans perdre de données. Votre base de données est indisponible pendant une courte période durant laquelle les clusters principaux et secondaires sélectionnés endossent leurs nouveaux rôles.

Note

Pour gérer les emplacements de réplication pour Aurora PostgreSQL après avoir effectué une bascule, consultez Gestion des emplacements logiques pour Aurora PostgreSQL .

Pour optimiser la disponibilité des applications, nous vous recommandons d’effectuer les opérations suivantes avant d’utiliser cette fonctionnalité :

  • Effectuez cette opération pendant les heures creuses ou à tout autre moment où les écritures sur le cluster de bases de données principal sont minimales.

  • Vérifiez les temps de retard pour tous les clusters de bases de données Aurora secondaires de la base de données Aurora globale. Pour toutes les bases de données globales basées sur Aurora PostgreSQL et pour les bases de données globales basées sur Aurora MySQL à partir des versions de moteur 3.04.0 et ultérieures, ou 2.12.0 et ultérieures, utilisez Amazon CloudWatch pour consulter la métrique AuroraGlobalDBRPOLag pour tous les clusters de bases de données secondaires. Pour les versions mineures inférieures des bases de données globales basées sur Aurora MySQL, consultez la métrique AuroraGlobalDBReplicationLag à la place. Ces métriques indiquent le retard (en millisecondes) de la réplication vers un cluster secondaire par rapport au cluster de bases de données principal. Cette valeur est directement proportionnelle au temps nécessaire à Aurora pour terminer la bascule. Par conséquent, plus la valeur de retard est élevée, plus la bascule prendra de temps. Lorsque vous examinez ces métriques, faites-le à partir du cluster principal actuel.

    Pour plus d’informations sur les métriques CloudWatch pour Aurora, consultez Métriques de niveau cluster pour Amazon Aurora.

  • Le cluster de bases de données secondaire promu lors d’une bascule peut avoir des paramètres de configuration différents de ceux de l’ancien cluster de bases de données principal. Nous vous recommandons d’assurer la cohérence des types de paramètres de configuration suivants dans tous les clusters de vos clusters de bases de données globales Aurora. Cela permet de minimiser les problèmes de performances, les incompatibilités de charge de travail et d’autres comportements anormaux après la bascule.

    • Configurez le groupe de paramètres du cluster de bases de données Aurora pour le nouveau cluster principal, si nécessaire : lorsque vous promouvez un cluster de bases de données secondaire pour endosser le rôle de cluster principal, le groupe de paramètres du cluster secondaire peut être configuré différemment de celui du cluster principal. Si c’est le cas, modifiez le groupe de paramètres du cluster de bases de données secondaire promu afin qu’il soit conforme aux paramètres de votre cluster principal. Pour savoir comment procéder, consultez Modification des paramètres d'une base de données Aurora globale.

    • Configurer les outils et les options de surveillance tels que Amazon CloudWatch Events et les alarmes – Configurez le cluster de bases de données promu avec la même capacité de journalisation, les mêmes alarmes, etc. que nécessaire pour la base de données globale. Comme pour les groupes de paramètres, la configuration de ces fonctionnalités n’est pas héritée du cluster principal durant le processus de bascule. Certaines métriques CloudWatch, telles que le délai de réplication, ne sont disponibles que pour les régions secondaires. Ainsi, une bascule modifie la façon d’afficher ces métriques et de définir des alarmes associées, et peut nécessiter d’apporter des modifications à des tableaux de bord prédéfinis. Pour plus d’informations sur les clusters de bases de données Aurora et la surveillance, consultez Surveillance des métriques Amazon Aurora avec Amazon CloudWatch.

    • Configurez des intégrations avec d’autres services AWS : si votre base de données globale Aurora s’intègre avec des services AWS, tels que AWS Secrets Manager, AWS Identity and Access Management, Amazon S3 et AWS Lambda, veillez à configurer vos intégrations avec ces services selon vos besoins. Pour plus d’informations sur l’intégration de bases de données Aurora globales avec IAM, Simple Storage Service (Amazon S3) et Lambda, consultez Utilisation des bases de données Amazon Aurora Global Database avec d’autres services AWS. Pour en savoir plus sur Secrets Manager, consultez Comment automatiser la réplication de secrets dans AWS Secrets Manager entre Régions AWS.

Si vous utilisez le point de terminaison d’enregistreur Aurora Global Database, il n’est pas nécessaire de changer les paramètres de connexion dans votre application. Vérifiez que les modifications DNS se sont propagées et que vous pouvez vous connecter et effectuer des opérations d’écriture sur le nouveau cluster principal. Vous pouvez ensuite reprendre l’exécution complète de votre application.

Supposons que les connexions de votre application utilisent le point de terminaison de l’ancien cluster principal, au lieu du point de terminaison d’enregistreur global. Dans ce cas, assurez-vous de modifier les paramètres de connexion de votre application pour que le point de terminaison du nouveau cluster principal soit utilisé. Si vous avez accepté les noms fournis lors de la création de la base de données Aurora globale, vous pouvez modifier le point de terminaison en supprimant la chaîne -ro du point de terminaison du cluster promu dans votre application. Par exemple, le point de terminaison du cluster secondaire my-global.cluster-ro-aaaaaabbbbbb.us-west-1.rds.amazonaws.com devient my-global.cluster-aaaaaabbbbbb.us-west-1.rds.amazonaws.com lorsque ce cluster est promu cluster principal.

Si vous utilisez un proxy RDS, assurez-vous de rediriger les opérations en écriture de votre application vers le point de terminaison en lecture/écriture approprié du proxy qui est associé au nouveau cluster principal. Ce point de terminaison du proxy peut être le point de terminaison par défaut ou un point de terminaison en lecture/écriture personnalisé. Pour plus d’informations, consultez Fonctionnement des points de terminaison du proxy RDS avec les bases de données globales.

Vous pouvez effectuer une opération de bascule de votre base de données Aurora Global Database à l’aide de la AWS Management Console, de l’interface AWS CLI ou de l’API RDS.

Pour effectuer la bascule sur votre base de données globale Aurora
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  2. Choisissez Bases de données et recherchez la base de données globale Aurora pour laquelle vous souhaitez effectuer une opération de bascule.

  3. Choisissez Passer ou basculer sur une base de données globale dans le menu Actions.

    Liste Bases de données avec le menu Actions qui est ouvert et qui affiche l’option Passer ou basculer sur une base de données globale.
  4. Choisissez Bascule.

    Boîte de dialogue Passer ou basculer sur une base de données globale, avec l’option Basculement (autoriser la perte de données) sélectionnée.
  5. Pour Nouveau cluster principal, choisissez un cluster actif dans l’une de vos Régions AWS secondaires comme nouveau cluster principal.

  6. Choisissez Confirmer.

Lorsque la bascule se termine, vous pouvez voir les clusters de bases de données Aurora et leurs rôles actuels dans la liste Bases de données, comme illustré dans l’image suivante.

Affichage de la liste Bases de données avec la base de données globale sélectionnée. Le cluster secondaire sélectionné apparaît désormais comme ayant le rôle de cluster principal et l’ancien cluster principal avec le rôle de cluster secondaire.

Pour effectuer la bascule sur une base de données globale Aurora

Utilisez la commande CLI switchover-global-cluster pour effectuer une bascule pour Aurora Global Database. Avec la commande, passez les valeurs pour les paramètres suivants.

  • --region : spécifiez la Région AWS dans laquelle s’exécute le cluster de bases de données principal de la base de données Aurora globale.

  • --global-cluster-identifier – Spécifiez le nom de votre base de données Aurora globale.

  • --target-db-cluster-identifier – Spécifiez l’Amazon Resource Name (ARN) du cluster de bases de données Aurora que vous souhaitez promouvoir comme cluster principal pour la base de données Aurora globale.

Pour Linux, macOS ou Unix :

aws rds --region region_of_primary \ switchover-global-cluster --global-cluster-identifier global_database_id \ --target-db-cluster-identifier arn_of_secondary_to_promote

Pour Windows :

aws rds --region region_of_primary ^ switchover-global-cluster --global-cluster-identifier global_database_id ^ --target-db-cluster-identifier arn_of_secondary_to_promote

Pour effectuer une opération de bascule pour une base de données Aurora Global Database, exécutez l’opération d’API SwitchoverGlobalCluster.

Reprise d’une base de données Amazon Aurora globale à partir d’une panne non planifiée

Dans de rares cas, votre base de données globale Aurora peut subir une panne inattendue dans sa Région AWS principale. Si cela se produit, votre cluster de bases de données Aurora principal et son nœud d’enregistreur ne sont pas disponibles, et la réplication entre les clusters de bases de données principal et secondaires s’interrompt. Pour minimiser la durée d’indisponibilité (RTO) et la perte de données (RPO), vous pouvez travailler rapidement pour effectuer un basculement entre régions.

La base de données Aurora Global Database offre deux méthodes de basculement que vous pouvez utiliser en cas de reprise après sinistre :

  • Basculement géré : cette méthode est recommandée pour la reprise après sinistre. Lorsque vous utilisez cette méthode, Aurora réintègre automatiquement l’ancienne région principale dans la base de données globale en tant que région secondaire lorsqu’elle redevient disponible. Ainsi, la topologie d’origine de votre cluster global est conservée. Pour apprendre à utiliser cette méthode, consultez Réalisation de basculements gérés pour les bases de données globales Aurora.

  • Basculement manuel : cette méthode alternative peut être utilisée quand le basculement géré n’est pas une option, par exemple quand vos régions principale et secondaire exécutent des versions de moteur incompatibles. Pour apprendre à utiliser cette méthode, consultez Réalisation de basculements manuels pour les bases de données globales Aurora.

Important

Les deux méthodes de basculement peuvent entraîner la perte de données de transaction d’écriture qui n’ont pas été répliquées dans la région secondaire choisie avant que le basculement se produise. Toutefois, le processus de récupération qui fait la promotion d’une instance de base de données sur le cluster de bases de données secondaire choisi comme instance de base de données principale d’enregistreur garantit que les données sont dans un état de cohérence transactionnelle. Les basculements sont également susceptibles de provoquer des problèmes d’incohérence des données, ou split-brain.

Réalisation de basculements gérés pour les bases de données globales Aurora

Cette approche vise à assurer la continuité des activités dans le cas d’une véritable catastrophe régionale ou interruption complète du niveau de service.

Au cours d’un basculement géré, le cluster secondaire de la région secondaire de votre choix devient le nouveau cluster principal. Le cluster secondaire choisi promeut l’un de ses nœuds en lecture seule au statut d’enregistreur complet. Cette étape permet au cluster d’endosser le rôle de cluster principal. Votre base de données est indisponible pendant une courte période pendant que ce cluster endosse son nouveau rôle. Dès que cette ancienne région principale sera saine et à nouveau disponible, Aurora l’ajoutera automatiquement au cluster global en tant que région secondaire. Ainsi, la topologie de réplication existante de votre base de données globale Aurora sera conservée.

Note

Pour gérer les emplacements de réplication pour Aurora PostgreSQL après avoir effectué un basculement, consultez Gestion des emplacements logiques pour Aurora PostgreSQL .

Note

Vous ne pouvez effectuer un basculement géré entre régions avec une base de données Aurora Global Database que si les clusters de bases de données principal et secondaires possèdent les mêmes versions de moteur majeures et mineures. Selon le moteur et les versions du moteur, les niveaux de correctifs doivent parfois être identiques ou peuvent être différents. Pour obtenir la liste des moteurs et des versions de moteur qui autorisent ces opérations entre les clusters principaux et secondaires avec différents niveaux de correctif, consultez Compatibilité des niveaux de correctif pour les bascules ou basculements gérés entre régions. Avant de commencer la bascule, vérifiez les versions du moteur de votre cluster global pour vous assurer qu’elles prennent en charge la bascule gérée entre régions, et mettez-les à niveau si nécessaire. Si les versions de votre moteur nécessitent des niveaux de correctifs identiques, mais exécutent des niveaux de correctif différents, vous pouvez effectuer le basculement manuellement en suivant les étapes décrites dans Réalisation de basculements manuels pour les bases de données globales Aurora.

Le basculement géré n’attend pas que les données soient synchronisées entre la région secondaire choisie et la région principale actuelle. Dans la mesure où la base de données Aurora Global Database réplique les données de manière asynchrone, il est possible que toutes les transactions ne soient pas répliquées dans la région AWS secondaire choisie avant qu’elle ne soit promue pour accepter toutes les fonctionnalités de lecture/écriture.

Pour garantir la cohérence des données, Aurora crée un volume de stockage pour l’ancienne région principale après sa restauration. Avant de créer le volume de stockage dans la région AWS principale, Aurora essaie d’effectuer un instantané de l’ancien volume de stockage au point de défaillance. Vous pourrez ainsi restaurer l’instantané et récupérer les données manquantes. Si cette opération aboutit, Aurora place cet instantané nommé rds:unplanned-global-failover-name-of-old-primary-DB-cluster-timestamp dans la section des instantanés de la AWS Management Console. Vous pouvez également utiliser la commande describe-db-cluster-snapshots d’AWS CLI ou l’opération d’API DescribeDBClusterSnapshots pour voir les détails de l’instantané.

Lorsque vous lancez un basculement géré, Aurora tente également d’arrêter le trafic d’écriture via la couche de stockage Aurora hautement disponible. C’est ce que l’on appelle le « clôturage d’écriture ». Si le processus aboutit, Aurora émet un événement RDS vous indiquant que les écritures ont été arrêtées. Dans le cas peu probable de plusieurs défaillances de zone de disponibilité dans une région, il est possible que le processus de clôturage d’écriture n’aboutisse pas à temps. Dans ce cas, Aurora émet un événement RDS vous informant que le délai imparti pour arrêter les écritures a expiré. Si l’ancien cluster principal est accessible sur le réseau, Aurora y enregistre ces événements. Dans le cas contraire, Aurora les enregistre sur le nouveau cluster principal. Pour en savoir plus sur ces événements, consultez Événements de cluster de bases de données. Comme le clôturage d’écriture est une tentative exécutée dans la mesure du possible, il est possible que les écritures soient momentanément acceptées dans l’ancienne région principale, ce qui provoquerait des problèmes d’incohérence des données, ou split-brain.

Nous vous recommandons d’effectuer les tâches suivantes avant de procéder à un basculement avec une base de données Aurora Global Database. Cela permet de minimiser le risque d’incohérence des données ou de récupération de données non répliquées à partir de l’instantané de l’ancien cluster principal.

  • Pour empêcher l’envoi d’écritures vers le cluster principal de la base de données Aurora Global Database, déconnectez les applications.

  • Assurez-vous que toutes les applications qui se connectent au cluster de bases de données principal utilisent le point de terminaison d’enregistreur global. La valeur de ce point de terminaison reste identique même lorsqu’une nouvelle région devient le cluster principal en raison d’une opération de bascule ou de basculement. Aurora met en œuvre des protections supplémentaires afin de minimiser le risque de perte de données pour les opérations d’écriture soumises via le point de terminaison global. Pour plus d’informations sur les points de terminaison d’enregistreur global, consultez Connexion à Amazon Aurora Global Database.

  • Si vous utilisez le point de terminaison d’enregistreur global et que votre application ou vos couches réseau mettent en cache les valeurs DNS, réduisez la durée de vie (TTL) du cache du DNS pour qu’il corresponde à une faible valeur, telle que 5 secondes. Ainsi, votre application enregistrera rapidement les modifications du DNS auprès du point de terminaison d’enregistreur global. Bien qu’Aurora tente de bloquer les écritures dans l’ancienne région principale, le succès de l’action n’est pas garanti. La réduction de la durée de vie du cache du DNS limite davantage le risque d’incohérence de données. Vous pouvez également rechercher l’événement RDS qui vous indique quand Aurora a observé des modifications du DNS pour le point de terminaison d’enregistreur global. Vous pouvez ainsi vérifier que votre application a également enregistré la modification du DNS avant de redémarrer le trafic d’écriture de votre application.

  • Vérifiez les temps de retard pour tous les clusters de bases de données Aurora secondaires de la base de données Aurora globale. Le choix de la région secondaire présentant le retard de réplication minimum peut minimiser les pertes de données avec la région principale actuellement défaillante.

    Pour toutes les versions de bases de données globales basées sur Aurora PostgreSQL et pour les bases de données globales basées sur Aurora MySQL à partir des versions de moteur 3.04.0 et ultérieures, ou 2.12.0 et ultérieures, utilisez Amazon CloudWatch pour consulter la métrique AuroraGlobalDBRPOLag pour tous les clusters de bases de données secondaires. Pour les versions mineures inférieures des bases de données globales basées sur Aurora MySQL, consultez la métrique AuroraGlobalDBReplicationLag à la place. Ces métriques indiquent le retard (en millisecondes) de la réplication vers un cluster secondaire par rapport au cluster de bases de données principal.

    Pour plus d’informations sur les métriques CloudWatch pour Aurora, consultez Métriques de niveau cluster pour Amazon Aurora.

Au cours d’un basculement géré, le cluster de bases de données secondaire choisi est promu dans son nouveau rôle de cluster principal. Toutefois, il n’hérite pas des différentes options de configuration du cluster de bases de données principal. Une incompatibilité de configuration peut provoquer des problèmes de performances, des incompatibilités de charge de travail et d’autres comportements anormaux. Pour éviter de tels problèmes, nous vous recommandons de résoudre les différences entre vos clusters de bases de données Aurora globales pour les cas suivants :

  • Configurer le groupe de paramètres de cluster de bases de données Aurora pour le nouveau cluster principal, si nécessaire – Vous pouvez configurer vos groupes de paramètres de cluster de bases de données Aurora indépendamment pour chaque cluster Aurora de votre base de données Aurora Global Database. Par conséquent, lorsque vous promouvez un cluster de bases de données secondaire pour endosser le rôle de cluster principal, le groupe de paramètres du cluster secondaire peut être configuré différemment de celui du cluster principal. Si c’est le cas, modifiez le groupe de paramètres du cluster de bases de données secondaire promu afin qu’il soit conforme aux paramètres de votre cluster principal. Pour savoir comment procéder, consultez Modification des paramètres d'une base de données Aurora globale.

  • Configurer les outils et les options de surveillance tels que Amazon CloudWatch Events et les alarmes – Configurez le cluster de bases de données promu avec la même capacité de journalisation, les mêmes alarmes, etc. que nécessaire pour la base de données globale. Comme pour les groupes de paramètres, la configuration de ces fonctionnalités n’est pas héritée du cluster principal durant le processus de basculement. Certaines métriques CloudWatch, telles que le délai de réplication, ne sont disponibles que pour les régions secondaires. Ainsi, un basculement modifie la façon d’afficher ces métriques et de définir des alarmes sur celles-ci, et peut nécessiter d’apporter des modifications à des tableaux de bord prédéfinis. Pour plus d’informations sur la surveillance des clusters de bases de données, consultez Surveillance des métriques Amazon Aurora avec Amazon CloudWatch.

  • Configurer des intégrations avec d’autres services AWS – Si votre base de données Aurora Global Database s’intègre avec des services AWS comme AWS Secrets Manager, AWS Identity and Access Management, Amazon S3 et AWS Lambda, vous devez vous assurer qu’ils sont correctement configurés de sorte à être accessibles à partir des régions secondaires. Pour plus d’informations sur l’intégration de bases de données Aurora globales avec IAM, Simple Storage Service (Amazon S3) et Lambda, consultez Utilisation des bases de données Amazon Aurora Global Database avec d’autres services AWS. Pour en savoir plus sur Secrets Manager, consultez Comment automatiser la réplication de secrets dans AWS Secrets Manager entre Régions AWS.

Généralement, le cluster secondaire choisi endosse le rôle principal en quelques minutes. Dès que l’instance de base de données d’enregistreur de la nouvelle région principale est disponible, vous pouvez y connecter vos applications et reprendre vos charges de travail. Une fois qu’Aurora a promu le nouveau cluster principal, il reconstruit automatiquement tous les clusters de régions secondaires supplémentaires.

Comme les bases de données globales Aurora utilisent la réplication asynchrone, le retard de réplication dans chaque région secondaire peut varier. Aurora reconstruit ces régions secondaires pour qu’elles disposent exactement des mêmes données ponctuelles que le nouveau cluster de la région principale. La durée de la tâche de reconstruction complète peut prendre de quelques minutes à plusieurs heures, selon la taille du volume de stockage et la distance entre les régions. Lorsque les clusters des régions secondaires ont fini de se reconstruire à partir de la nouvelle région principale, ils sont disponibles pour un accès en lecture.

Dès que le nouvel enregistreur principal est promu et disponible, le cluster de la nouvelle région principale peut gérer les opérations de lecture et d’écriture pour la base de données globale Aurora.

Si vous utilisez le point de terminaison global, il n’est pas nécessaire de changer les paramètres de connexion dans votre application. Vérifiez que les modifications DNS se sont propagées et que vous pouvez vous connecter et effectuer des opérations d’écriture sur le nouveau cluster principal. Vous pouvez ensuite reprendre l’exécution complète de votre application.

Si vous n’utilisez pas le point de terminaison global, assurez-vous de modifier le point de terminaison de votre application afin que le point de terminaison du cluster de bases de données principal récemment promu soit utilisé. Si vous avez accepté les noms fournis lors de la création de la base de données Aurora globale, vous pouvez modifier le point de terminaison en supprimant la chaîne -ro du point de terminaison du cluster promu dans votre application.

Par exemple, le point de terminaison du cluster secondaire my-global.cluster-ro-aaaaaabbbbbb.us-west-1.rds.amazonaws.com devient my-global.cluster-aaaaaabbbbbb.us-west-1.rds.amazonaws.com lorsque ce cluster est promu cluster principal.

Si vous utilisez un proxy RDS, assurez-vous de rediriger les opérations en écriture de votre application vers le point de terminaison en lecture/écriture approprié du proxy qui est associé au nouveau cluster principal. Ce point de terminaison du proxy peut être le point de terminaison par défaut ou un point de terminaison en lecture/écriture personnalisé. Pour plus d’informations, consultez Fonctionnement des points de terminaison du proxy RDS avec les bases de données globales.

Pour restaurer la topologie d’origine du cluster de bases de données global, Aurora surveille la disponibilité de l’ancienne région principale. Dès que cette région est saine et à nouveau disponible, Aurora l’ajoute automatiquement au cluster global en tant que région secondaire. Avant de créer le nouveau volume de stockage dans l’ancienne région principale, Aurora essaie de prendre un instantané de l’ancien volume de stockage au point de défaillance. Il le fait pour que vous puissiez l’utiliser pour récupérer les données manquantes. Si cette opération aboutit, Aurora crée un instantané nommé rds:unplanned-global-failover-name-of-old-primary-DB-cluster-timestamp. Vous trouverez cet instantané dans la section Instantanés de la AWS Management Console. Vous pouvez également voir cet instantané répertorié dans les informations renvoyées par l’opération d’API DescribeDBClusterSnapshots.

Note

L’instantané de l’ancien volume de stockage est un instantané du système soumis à la période de conservation des sauvegardes configurée sur l’ancien cluster principal. Pour conserver cet instantané en dehors de la période de conservation, vous pouvez le copier pour l’enregistrer en tant qu’instantané manuel. Pour en savoir plus sur la copie des instantanés, y compris la tarification, consultez Copie d’un instantané de cluster de bases de données.

Une fois la topologie d’origine restaurée, vous pouvez rétablir votre base de données globale dans la région principale d’origine en effectuant une opération de bascule au moment qui convient le mieux à votre activité et à votre charge de travail. Pour ce faire, suivez les étapes de Réalisation de bascules pour les bases de données Amazon Aurora Global Database.

Vous pouvez effectuer une opération de basculement de votre base de données Aurora Global Database à l’aide de la AWS Management Console, de l’interface AWS CLI ou de l’API RDS.

Pour effectuer le basculement géré sur votre base de données globale Aurora
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  2. Choisissez Bases de données et recherchez la base de données globale Aurora que vous souhaitez basculer.

  3. Choisissez Passer ou basculer sur une base de données globale dans le menu Actions.

    Liste Bases de données avec le menu Actions qui est ouvert et qui affiche l’option Passer ou basculer sur une base de données globale.
  4. Choisissez Basculement (autoriser la perte de données).

    Boîte de dialogue Passer ou basculer sur une base de données globale, avec l’option Basculement (autoriser la perte de données) sélectionnée.
  5. Pour Nouveau cluster principal, choisissez un cluster actif dans l’une de vos Régions AWS secondaires comme nouveau cluster principal.

  6. Saisissez confirm, puis choisissez Confirmer.

Lorsque le basculement se termine, vous pouvez consulter les clusters de bases de données Aurora et leur état actuel dans la liste Bases de données, comme illustré ci-dessous.

Affichage de la liste Bases de données avec la base de données globale sélectionnée. Le cluster secondaire sélectionné apparaît désormais comme ayant le rôle de cluster principal et l’ancien cluster principal avec le rôle de cluster secondaire.

Pour effectuer le basculement géré sur une base de données globale Aurora

Utilisez la commande CLI failover-global-cluster pour basculer vers votre base de données Aurora Global Database. Avec la commande, passez les valeurs pour les paramètres suivants.

  • --region : spécifiez la Région AWS où le cluster de bases de données secondaire que vous souhaitez utiliser comme nouveau cluster principal pour la base de données globale Aurora est en cours d’exécution.

  • --global-cluster-identifier – Spécifiez le nom de votre base de données Aurora globale.

  • --target-db-cluster-identifier : spécifiez l’Amazon Resource Name (ARN) du cluster de bases de données Aurora que vous souhaitez promouvoir comme nouveau cluster principal pour la base de données globale Aurora.

  • --allow-data-loss : faites-en explicitement une opération de basculement à la place d’une opération de bascule. Une opération de basculement peut entraîner une certaine perte de données si les composants de réplication asynchrone n’ont pas terminé d’envoyer toutes les données répliquées vers la région secondaire.

Pour Linux, macOS ou Unix :

aws rds --region region_of_selected_secondary \ failover-global-cluster --global-cluster-identifier global_database_id \ --target-db-cluster-identifier arn_of_secondary_to_promote \ --allow-data-loss

Pour Windows :

aws rds --region region_of_selected_secondary ^ failover-global-cluster --global-cluster-identifier global_database_id ^ --target-db-cluster-identifier arn_of_secondary_to_promote ^ --allow-data-loss

Pour effectuer un basculement avec Aurora Global Database, exécutez l’opération d’API FailoverGlobalCluster.

Réalisation de basculements manuels pour les bases de données globales Aurora

Dans certains scénarios, vous ne pourrez peut-être pas utiliser le processus de basculement géré. Par exemple, si vos clusters de bases de données principal et secondaire n’exécutent pas des versions de moteur compatibles. Dans ce cas, vous pouvez suivre ce processus manuel pour effectuer un basculement vers votre région secondaire cible.

Astuce

Nous vous recommandons de comprendre ce processus avant de l’utiliser. Ayez un plan prêt pour agir rapidement au premier signe de problème à l’échelle de la région. Vous pouvez être prêt à identifier la région secondaire présentant le moins de retard de réplication en utilisant régulièrement Amazon CloudWatch pour suivre les temps de retard des clusters secondaires. Veillez à tester votre plan pour vérifier que vos procédures sont complètes et précises, et que le personnel est formé pour effectuer un basculement de reprise après sinistre avant que le cas de figure se présente réellement.

Pour effectuer un basculement manuel vers un cluster secondaire après une panne imprévue dans la région principale
  1. Arrêtez l’émission d’instructions DML et toute autre opération d’écriture vers le cluster de bases de données Aurora principal dans la Région AWS concernée par l’interruption.

  2. Identifiez un cluster de bases de données Aurora à partir d’une Région AWS secondaire à utiliser comme nouveau cluster de bases de données principal. Si vous avez deux Régions AWS secondaires (ou plus) dans votre base de données globale Aurora, choisissez le cluster secondaire avec le retard de réplication minimal.

  3. Détachez le cluster de bases de données secondaire choisi de la base de données Aurora globale.

    La suppression d’un cluster de bases de données secondaire d’une base de données Aurora globale interrompt immédiatement la réplication du cluster principal vers le cluster secondaire et le promeut en cluster de bases de données Aurora provisionné autonome avec des capacités complètes en lecture/écriture. Tous les autres clusters de bases de données Aurora secondaires associés au cluster principal dans la région concernée par la panne restent disponibles et peuvent accepter les appels de votre application. Ils consomment également des ressources. Puisque vous recréez la base de données Aurora globale, supprimez les autres clusters de bases de données secondaires avant de créer la nouvelle base de données Aurora globale dans les étapes suivantes. Cela évite les incohérences de données parmi les clusters de bases de données de la base de données Aurora globale (problèmes de split-brain).

    Afin d’obtenir les étapes détaillées du détachement, consultez Dissociation d’un cluster d’une base de données Amazon Aurora globale.

  4. Reconfigurez votre application pour envoyer toutes les opérations d’écriture à ce cluster de bases de données Aurora désormais autonome à l’aide de son nouveau point de terminaison. Si vous avez accepté les noms fournis lors de la création de la base de données Aurora globale, vous pouvez modifier le point de terminaison en supprimant la chaîne -ro du point de terminaison du cluster promu dans votre application.

    Par exemple, le point de terminaison du cluster secondaire my-global.cluster-ro-aaaaaabbbbbb.us-west-1.rds.amazonaws.com devient my-global.cluster-aaaaaabbbbbb.us-west-1.rds.amazonaws.com lorsque ce cluster est détaché de la base de données Aurora globale.

    Ce cluster de bases de données Aurora devient le cluster principal d’une nouvelle base de données Aurora globale lorsque vous commencez à y ajouter des Régions lors de l’étape suivante.

    Si vous utilisez un proxy RDS, assurez-vous de rediriger les opérations en écriture de votre application vers le point de terminaison en lecture/écriture approprié du proxy qui est associé au nouveau cluster principal. Ce point de terminaison du proxy peut être le point de terminaison par défaut ou un point de terminaison en lecture/écriture personnalisé. Pour plus d’informations, consultez Fonctionnement des points de terminaison du proxy RDS avec les bases de données globales.

  5. Ajoutez une Région AWS au cluster de bases de données. Lorsque vous effectuez cette opération, le processus de réplication du cluster primaire vers le cluster secondaire commence. Afin d’obtenir les étapes détaillées pour ajouter une région, consultez Ajout d’une Région AWS à une base de données Amazon Aurora globale.

  6. Ajoutez d’autres Régions AWS si nécessaire pour recréer la topologie nécessaire à la prise en charge de votre application.

Assurez-vous que les écritures d’application sont envoyées au cluster de bases de données Aurora approprié avant, pendant et après l’application de ces modifications. Cela évite les incohérences de données parmi les clusters de bases de données de la base de données Aurora globale (problèmes de split-brain).

Si vous avez reconfiguré un système en réponse à une panne dans une Région AWS, vous pouvez faire de cette Région AWS le cluster principal une fois la panne résolue. Pour ce faire, ajoutez l’ancienne Région AWS à votre nouvelle base de données globale, puis utilisez le processus de bascule pour échanger son rôle. Votre base de données globale Aurora doit utiliser une version d’Aurora PostgreSQL ou d’Aurora MySQL qui prend en charge les bascules. Pour plus d’informations, consultez Réalisation de bascules pour les bases de données Amazon Aurora Global Database.

Gestion des RPO pour les bases de données globales basées sur Aurora PostgreSQL–

Avec une base de données globale basée sur Aurora PostgreSQL, vous pouvez gérer l’objectif de point de reprise (RPO) de votre base de données globale Aurora à l’aide du paramètre rds.global_db_rpo. Le RPO représente la quantité maximale de données pouvant être perdue en cas de panne.

Lorsque vous définissez un RPO pour votre base de données globale basée sur Aurora PostgreSQL–, Aurora surveille le temps de retard RPO de tous les clusters secondaires pour vous assurer qu’au moins un cluster secondaire reste dans la fenêtre RPO cible. Le temps de retard RPO est une autre métrique basée sur le temps.

Le RPO est utilisé lorsque votre base de données reprend ses opérations dans une nouvelle Région AWS après un basculement. Aurora évalue le RPO et les retards de RPO pour valider (ou bloquer) des transactions sur le cluster principal comme suit :

  • Effectue la transaction si au moins un cluster de bases de données secondaire a un temps de retard RPO inférieur au RPO.

  • Bloque la transaction si tous les clusters de bases de données secondaires ont des temps de retard RPO supérieurs au RPO. Il enregistre également l’événement dans le fichier journal PostgreSQL et émet des événements « wait » qui montrent les sessions bloquées.

En d’autres termes, si tous les clusters secondaires prennent du retard sur le RPO cible, Aurora interrompt les transactions sur le cluster principal jusqu’à ce qu’au moins un des clusters secondaires le rattrape. Les transactions interrompues sont reprises et validées dès que le retard d’au moins un cluster de bases de données secondaire devient inférieur au RPO. Par conséquent, aucune transaction ne peut être validée tant que le RPO n’est pas atteint.

Le paramètre rds.global_db_rpo est dynamique. Si vous décidez de ne pas bloquer toutes les transactions d’écriture jusqu’à ce que le retard diminue suffisamment, vous pouvez le réinitialiser rapidement. Dans ce cas, Aurora reconnaît et met en œuvre le changement après un court délai.

Important

Dans une base de données globale assortie de seulement deux régions AWS, nous recommandons de conserver la valeur par défaut du paramètre rds.global_db_rpo dans le groupe de paramètres de la région secondaire. Dans le cas contraire, le basculement vers cette région à la suite d’une perte de la région AWS principale pourrait conduire Aurora à interrompre les transactions. Attendez plutôt qu’Aurora ait terminé la reconstruction du cluster dans l’ancienne région AWS défaillante avant de modifier ce paramètre, ceci afin d’appliquer un RPO maximal.

Si vous définissez ce paramètre comme indiqué ci-dessous, vous pouvez également surveiller les métriques qu’il génère. Vous pouvez le faire en utilisant psql ou un autre outil d’interrogation du cluster de bases de données principal de la base de données Aurora globale et obtenir des informations détaillées sur les opérations de votre base de données globale basée sur Aurora PostgreSQL–. Pour savoir comment procéder, consultez Surveillance des bases de données globales basées sur Aurora PostgreSQL.

Configuration de l’objectif de point de reprise

Le paramètre rds.global_db_rpo contrôle le paramètre RPO pour une base de données PostgreSQL. Ce paramètre est pris en charge par Aurora PostgreSQL. Les valeurs valides pour rds.global_db_rpo sont comprises entre 20 secondes et 2 147 483 647 secondes (68 ans). Choisissez une valeur réaliste pour répondre aux besoins de votre entreprise et à votre cas d’utilisation. Par exemple, si vous voulez prévoir jusqu’à 10 minutes pour votre RPO, définissez la valeur sur 600.

Vous pouvez définir cette valeur pour votre base de données globale basée sur Aurora PostgreSQL–à l’aide de l’AWS Management Console, de l’AWS CLI ou de l’API RDS.

Pour définir le RPO
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  2. Choisissez le cluster principal de votre base de données Aurora globale et ouvrez l’onglet Configuration pour rechercher son groupe de paramètres de cluster de bases de données. Par exemple, le groupe de paramètres par défaut pour un cluster de bases de données principal exécutant Aurora PostgreSQL 11.7 est default.aurora-postgresql11.

    Les groupes de paramètres ne peuvent pas être modifiés directement. Au lieu de cela, procédez comme suit :

    • Créez un groupe de paramètres de cluster de bases de données personnalisé en utilisant le groupe de paramètres par défaut approprié comme point de départ. Par exemple, créez un groupe de paramètres de cluster de bases de données personnalisé basé sur le default.aurora-postgresql11.

    • Sur votre groupe de paramètres de bases de données personnalisé, définissez la valeur du paramètre rds.global_db_rpo pour répondre à votre cas d’utilisation. Les valeurs valides sont comprises entre 20 secondes et la valeur entière maximale 2 147 483 647 secondes (68 ans).

    • Appliquez le groupe de paramètres de cluster de bases de données modifié à votre cluster de bases de données Aurora.

Pour plus d’informations, consultez Modification de paramètres dans un groupe de paramètres de cluster de bases de données dans Amazon Aurora.

Pour définir le paramètre rds.global_db_rpo, utilisez la commande de l’interface de ligne de commande modify-db-cluster-parameter-group. Dans la commande, spécifiez le nom du groupe de paramètres de votre cluster principal et les valeurs du paramètre RPO.

Dans l’exemple suivant, le RPO est défini sur 600 secondes (10 minutes) pour le groupe de paramètres du cluster de bases de données principal appelé my_custom_global_parameter_group.

Pour Linux, macOS ou Unix :

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name my_custom_global_parameter_group \ --parameters "ParameterName=rds.global_db_rpo,ParameterValue=600,ApplyMethod=immediate"

Pour Windows :

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name my_custom_global_parameter_group ^ --parameters "ParameterName=rds.global_db_rpo,ParameterValue=600,ApplyMethod=immediate"

Pour modifier le paramètre rds.global_db_rpo, utilisez l’opération d’API Amazon RDS ModifyDBClusterParameterGroup.

Affichage de l’objectif de point de reprise

L’objectif de point de reprise (RPO) d’une base de données globale est stocké dans le paramètre rds.global_db_rpo pour chaque cluster de bases de données. Vous pouvez vous connecter au point de terminaison du cluster secondaire que vous souhaitez afficher et utiliser psql afin d’interroger l’instance pour cette valeur.

db-name=>show rds.global_db_rpo;

Si ce paramètre n’est pas défini, la requête renvoie le résultat suivant :

rds.global_db_rpo ------------------- -1 (1 row)

La réponse ci-dessous est renvoyée par un cluster de bases de données secondaire pour lequel le paramètre RPO est défini sur 1 minute.

rds.global_db_rpo ------------------- 60 (1 row)

Vous pouvez également utiliser l’interface de ligne de commande pour obtenir des valeurs afin de savoir si rds.global_db_rpo est actif sur l’un des clusters de bases de données Aurora en utilisant l’interface de ligne de commande pour obtenir les valeurs de tous les paramètres user du cluster.

Pour Linux, macOS ou Unix :

aws rds describe-db-cluster-parameters \ --db-cluster-parameter-group-name lab-test-apg-global \ --source user

Pour Windows :

aws rds describe-db-cluster-parameters ^ --db-cluster-parameter-group-name lab-test-apg-global * --source user

La commande renvoie une sortie similaire à celle ci-dessous pour tous les paramètres user différents des paramètres de cluster de bases de données default-engine ou system.

{ "Parameters": [ { "ParameterName": "rds.global_db_rpo", "ParameterValue": "60", "Description": "(s) Recovery point objective threshold, in seconds, that blocks user commits when it is violated.", "Source": "user", "ApplyType": "dynamic", "DataType": "integer", "AllowedValues": "20-2147483647", "IsModifiable": true, "ApplyMethod": "immediate", "SupportedEngineModes": [ "provisioned" ] } ] }

Pour en savoir plus sur l’affichage des paramètres du groupe de paramètres de cluster, consultez Affichage des valeurs de paramètres pour un groupe de paramètres de cluster de bases de données dans Amazon Aurora.

Désactivation de l’objectif de point de reprise

Pour désactiver le RPO, réinitialisez le paramètre rds.global_db_rpo. Vous pouvez réinitialiser les paramètres à l’aide de la AWS Management Console, de l’AWS CLI ou de l’API RDS.

Pour désactiver le RPO
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l’adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Groupes de paramètres.

  3. Dans la liste, choisissez votre groupe de paramètres de cluster de bases de données principal.

  4. Choisissez Modifier les paramètres.

  5. Sélectionnez la case en regard du paramètre rds.global_db_rpo.

  6. Choisissez Réinitialiser.

  7. Lorsque l’écran affiche Réinitialiser les paramètres dans le groupe de paramètres de base de données, choisissez Réinitialiser les paramètres.

Pour plus d’informations sur la réinitialisation d’un paramètre avec la console, consultez Modification de paramètres dans un groupe de paramètres de cluster de bases de données dans Amazon Aurora.

Pour réinitialiser le paramètre rds.global_db_rpo, utilisez la commande reset-db-cluster-parameter-group.

Pour Linux, macOS ou Unix :

aws rds reset-db-cluster-parameter-group \ --db-cluster-parameter-group-name global_db_cluster_parameter_group \ --parameters "ParameterName=rds.global_db_rpo,ApplyMethod=immediate"

Pour Windows :

aws rds reset-db-cluster-parameter-group ^ --db-cluster-parameter-group-name global_db_cluster_parameter_group ^ --parameters "ParameterName=rds.global_db_rpo,ApplyMethod=immediate"

Pour réinitialiser le paramètre rds.global_db_rpo, utilisez l’opération d’API Amazon RDS ResetDBClusterParameterGroup.