- 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.

Lors du passage au numérique, l'environnement vert devient le nouvel environnement de production. Lorsque l'instance de base de données verte a lu des répliques, elles sont également transférées. Avant le basculement, le trafic de production est routé vers l'instance de base de données et les réplicas en lecture dans l'environnement bleu. Après le basculement, le trafic de production est routé vers l'instance de base de données et les réplicas en lecture dans l'environnement vert.

Le passage d'un déploiement bleu/vert n'est pas la même chose que la promotion du de base de données vert dans le déploiement bleu/vert. Si vous promouvez manuellement le de base de données vert en choisissant Promouvoir dans le menu Actions, la réplication entre les environnements bleu et vert est interrompue et le déploiement bleu/vert passe à l'état de configuration non valide.

Délai de commutation

Vous pouvez spécifier un délai de commutation compris entre 30 secondes et 3 600 secondes (une heure). Si la commutation prend plus de temps que la durée spécifiée, toutes les modifications sont annulées et aucune modification n'est apportée à l'un ou l'autre des environnements. Le délai d'attente par défaut est de 300 secondes (cinq minutes).

Barrières de protection de commutation

Lorsque vous lancez une commutation, Amazon RDS effectue quelques vérifications de base pour tester la préparation des environnements bleu et vert à la commutation. Ces contrôles sont connus sous le nom de barrières de protection de commutation. Ces barrières de protection empêchent une commutation si les environnements ne sont pas prêts pour cela. Ils évitent donc un temps d'arrêt plus long que prévu et empêchent la perte de données entre les environnements bleu et vert qui pourrait survenir si la commutation était lancée.

Amazon RDS exécute les contrôles de barrière de protection suivants sur l'environnement vert :

  • État de la réplication : vérifiez si l'état de réplication de l'instance de base de données principale verte est sain. L'instance de base de données principale verte est un réplica de l'instance de base de données principale bleue.

  • Décalage de réplication : vérifiez si le retard de réplica de l'instance de base de données principale verte se situe dans les limites autorisées pour la commutation. Les limites autorisées sont basées sur le délai d'attente spécifié. Le retard de réplica indique dans quelle mesure l'instance de base de données principale verte est en retard sur son instance de base de données principale bleue. Pour de plus amples informations, veuillez consulter Surveillance du délai de réplication avant le passage au numérique.

  • Écritures actives : assurez-vous qu'aucune écriture n'est active sur l'instance de base de données principale verte.

Amazon RDS exécute les contrôles de barrière de protection suivants sur l'environnement bleu :

  • Réplication externe : pour RDS pour PostgreSQL, assurez-vous que l'environnement bleu n'est pas une source logique autogérée (éditeur) ou une réplique (abonné). Si tel est le cas, nous vous recommandons de supprimer les emplacements de réplication autogérés et les abonnements dans toutes les bases de données de l'environnement bleu, de procéder au basculement, puis de les recréer pour reprendre la réplication. Pour RDS pour MySQL et RDS pour MariaDB, vérifie si la base de données bleue n'est pas une réplique externe du journal binaire. Si tel est le cas, assurez-vous qu'il ne se réplique pas activement.

  • Écritures actives de longue durée : assurez-vous qu'il n'y a pas d'écritures actives de longue durée sur l'instance de base de données principale bleue, car elles peuvent augmenter le retard de réplica.

  • Instructions DDL de longue durée : assurez-vous qu'aucune instruction DDL de longue durée ne figure sur l'instance de base de données principale bleue, car elles peuvent augmenter le retard de réplica.

  • Modifications PostgreSQL non prises en charge — Pour les déploiements bleu/vert RDS pour PostgreSQL utilisant la réplication logique, assurez-vous qu'aucune modification du DDL ni aucun ajout ou modification d'objets volumineux n'ont été effectués dans l'environnement bleu. Pour de plus amples informations, veuillez consulter Limitations spécifiques à la réplication logique pour les déploiements bleu/vert.

    Si Amazon RDS détecte des modifications PostgreSQL non prises en charge, il change l'état de réplication et vous indique que le basculement n'est pas disponible pour le déploiement Replication degraded et pour toutes les bases de données vertes. blue/green deployment. To proceed with switchover, we recommend that you delete and recreate the blue/green Pour ce faire, choisissez Actions, Supprimer avec les bases de données vertes.

Actions de commutation

Lorsque vous basculez un déploiement bleu/vert, RDS effectue les actions suivantes :

  1. Exécute des contrôles de barrière de protection pour vérifier si les environnements bleu et vert sont prêts pour la commutation.

  2. Arrête les nouvelles opérations d'écriture sur l'instance de base de données principale dans les deux environnements.

  3. Supprime les connexions aux instances de base de données dans les deux environnements et ne permet pas de nouvelles connexions.

  4. Attend que la réplication rattrape son retard dans l'environnement vert afin que celui-ci soit synchronisé avec l'environnement bleu.

  5. Renomme les instances de base de données dans les deux environnements.

    RDS renomme les instances de base de données dans l'environnement vert pour correspondre aux instances de base de données correspondantes dans l'environnement bleu. Par exemple, supposons que le nom d'une instance de base de données dans l'environnement bleu est mydb. Supposons également que le nom de l'instance de base de données correspondante dans l'environnement vert est mydb-green-abc123. Pendant la commutation, le nom de l'instance de base de données dans l'environnement vert devient mydb.

    RDS renomme les instances de base de données dans l'environnement bleu en ajoutant -oldn au nom actuel, où n est un nombre. Par exemple, supposons que le nom d'une instance de base de données dans l'environnement bleu est mydb. Après la commutation, le nom de l'instance de base de données pourrait être mydb-old1.

    RDS renomme également les points de terminaison dans l'environnement vert pour qu'ils correspondent aux points de terminaison correspondants dans l'environnement bleu, de sorte que les changements d'application ne sont pas nécessaires.

  6. Permet les connexions aux bases de données dans les deux environnements.

  7. Autorise les opérations d'écriture sur le cluster de base de données dans le nouvel environnement de production.

    Après le basculement, le précédent de base de données principale de production autorise les opérations de lecture uniquement jusqu'à ce que vous définissiez le read_only paramètre (pour RDS pour MySQL) ou le default_transaction_read_only paramètre (pour RDS pour PostgreSQL) et que vous redémarriez l'instance de base de données. 0

Vous pouvez surveiller l'état d'un passage au numérique à l'aide d'Amazon. EventBridge Pour de plus amples informations, veuillez consulter Événements de déploiement bleu/vert.

Si vous avez configuré des balises dans l'environnement bleu, elles sont copiées dans le nouvel environnement de production lors du passage au numérique. Pour en savoir plus sur les identifications, consultez Marquage d' Amazon RDS.

Si la commutation commence et s'arrête avant la fin pour une raison quelconque, les modifications sont annulées et aucune modification n'est apportée à l'environnement.

Bonnes pratiques de commutation

Avant de basculer, nous vous recommandons vivement de respecter les bonnes pratiques en accomplissant les tâches suivantes :

  • Testez minutieusement les ressources dans l'environnement vert. Assurez-vous qu'elles fonctionnent correctement et efficacement.

  • Surveillez les CloudWatch statistiques Amazon pertinentes. Pour de plus amples informations, veuillez consulter Vérification des CloudWatch métriques avant le passage au numérique.

  • Déterminez le meilleur moment pour la commutation.

    Pendant la commutation, les écritures sont interrompues dans les bases de données des deux environnements. Identifiez un moment où le trafic est le plus faible dans votre environnement de production. Les transactions de longue durée, telles que les transactions actives DDLs, peuvent augmenter le temps de transition, ce qui se traduit par des temps d'arrêt plus longs pour vos charges de travail de production.

    S'il existe un grand nombre de connexions sur vos instances de base de données, votre de base de données, pensez à les réduire manuellement au minimum nécessaire pour votre application avant de passer au blue/green deployment. One way to achieve this is to create a script that monitors the status of the blue/green déploiement et de commencer à nettoyer les connexions lorsqu'il détecte que le statut est passé àSWITCHOVER_IN_PROGRESS.

  • Assurez-vous que les instances de base de données dans les deux environnements sont dans l'état Available.

  • Assurez-vous que l'instance de base de données principale dans l'environnement vert est dans un état sain et qu'il se réplique.

  • Assurez-vous que les configurations de votre réseau et de votre client n'augmentent pas le cache DNS Time-To-Live (TTL) au-delà de cinq secondes, ce qui est la valeur par défaut pour les zones DNS RDS.
 Sinon, les applications continueront à envoyer du trafic d'écriture vers l'environnement bleu après le basculement.

  • Assurez-vous que le chargement des données est terminé avant de basculer. Pour de plus amples informations, veuillez consulter Chargement différé et initialisation du stockage pour les déploiements bleu/vert.

  • Pour les déploiements bleu/vert RDS pour PostgreSQL utilisant la réplication logique, procédez comme suit :

Note

Lors d'une commutation, vous ne pouvez modifier aucune instance de base de données incluse dans la commutation.

Vérification des CloudWatch métriques avant le passage au numérique

Avant de passer à un déploiement bleu/vert, nous vous recommandons de vérifier la valeur des métriques suivantes sur Amazon CloudWatch

  • DatabaseConnections : utilisez cette métrique pour estimer le niveau d'activité du déploiement bleu/vert et assurez-vous que la valeur est à un niveau acceptable pour votre déploiement avant d'effectuer le basculement. Si l'analyse des performances est activée, DBLoad est une métrique plus précise.

Pour de plus amples informations, veuillez consulter CloudWatch Métriques Amazon pour Amazon RDS.

Surveillance du délai de réplication avant le passage au numérique

Avant de passer à un déploiement bleu/vert, assurez-vous que le délai de réplication est proche de zéro afin de réduire les temps d'arrêt.

RDS pour MySQL et RDS pour MariaDB

Pour les déploiements bleu/vert de MySQL et MariaDB, vérifiez CloudWatch la métrique dans l'environnement vert pour identifier le délai de réplication actuel. Pour de plus amples informations, veuillez consulter Diagnostic et résolution du retard entre réplicas en lecture.

PostgreSQL

Pour les déploiements bleu/vert de PostgreSQL qui utilisent la réplication physique, Surveillance et réglage du processus de réplication consultez les instructions permettant d'identifier le délai de réplication actuel.

Pour les déploiements bleu/vert de PostgreSQL qui utilisent la réplication logique, vérifiez OldestReplicationSlotLag CloudWatch la métrique dans l'environnement bleu pour identifier le délai de réplication actuel. Pour de plus amples informations, veuillez consulter Mesures au CloudWatch niveau de l'instance Amazon pour Amazon RDS.

En outre, vous pouvez exécuter la requête SQL suivante dans l'environnement bleu :

SELECT slot_name, confirmed_flush_lsn as flushed, pg_current_wal_lsn(), (pg_current_wal_lsn() - confirmed_flush_lsn) AS lsn_distance FROM pg_catalog.pg_replication_slots WHERE slot_type = 'logical'; slot_name | flushed | pg_current_wal_lsn | lsn_distance -----------------+---------------+--------------------+------------ logical_replica1 | 47D97/CF32980 | 47D97/CF3BAC8 | 37192

Le confirmed_flush_lsn représente le dernier numéro de séquence journal (LSN) envoyé à la réplique. Le pg_current_wal_lsn représente l'emplacement actuel de la base de données. Une lsn_distance valeur de 0 signifie que la réplique est rattrapée.

Pour savoir dans quels cas les déploiements bleu/vert utilisent la réplication physique par rapport à la réplication logique, voir. Méthodes de SQL réplication Postgre pour les déploiements bleu/vert

Basculement d'un déploiement bleu/vert

Vous pouvez passer d'un déploiement bleu/vert à l'aide de l'API AWS Management Console, de AWS CLI, ou de l'API RDS.

Pour effectuer un basculement de déploiement bleu/vert
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/l'adresse.

  2. Dans le panneau de navigation, choisissez Bases de données, puis sélectionnez le déploiement bleu/vert que vous souhaitez basculer.

  3. Pour Actions, choisissez Basculer.

    La page Basculer apparaît.

    Basculement du déploiement bleu/vert
  4. Sur la page Basculer, consultez le résumé de la commutation. Assurez-vous que les ressources des deux environnements correspondent à ce que vous attendez. Si ce n'est pas le cas, choisissez Annuler.

  5. Dans le champ Paramètre de délai d'attente, entrez le délai limite pour la commutation.

  6. Si votre instance exécute RDS for PostgreSQL, passez en revue et confirmez les recommandations avant la commutation. Pour de plus amples informations, veuillez consulter Limitations spécifiques à la réplication logique pour les déploiements bleu/vert.

  7. Choisissez Basculer.

Pour passer d'un déploiement bleu/vert à l'aide de AWS CLI, utilisez la switchover-blue-green-deploymentcommande avec les options suivantes :

  • --blue-green-deployment-identifier— Spécifiez l'ID de ressource du déploiement bleu/vert.

  • --switchover-timeout : spécifiez la limite de temps pour la commutation, en secondes. La valeur par défaut est 300.

Exemple Basculement d'un déploiement bleu/vert

Dans Linux, macOS, ou Unix:

aws rds switchover-blue-green-deployment \ --blue-green-deployment-identifier bgd-1234567890abcdef \ --switchover-timeout 600

Dans Windows:

aws rds switchover-blue-green-deployment ^ --blue-green-deployment-identifier bgd-1234567890abcdef ^ --switchover-timeout 600

Pour basculer un déploiement bleu/vert en utilisant l'API Amazon RDS, utilisez l'opération SwitchoverBlueGreenDeployment avec les paramètres suivants :

  • BlueGreenDeploymentIdentifier— Spécifiez l'ID de ressource du déploiement bleu/vert.

  • SwitchoverTimeout : spécifiez la limite de temps pour la commutation, en secondes. La valeur par défaut est 300.

Après la commutation

Après une commutation, les instances de base de données de l'environnement bleu précédent sont conservé(e)s. Les coûts standard s'appliquent à ces ressources. La réplication entre les environnements bleu et vert s'arrête.

RDS renomme les instances de base de données dans l'environnement bleu en ajoutant -oldn au nom de la ressource actuelle, où n est un nombre. Les instances de base de données de l'ancien environnement bleu sont en lecture seule jusqu'à ce que vous définissiez le read_only paramètre (pour RDS pour MySQL) ou le default_transaction_read_only paramètre (pour RDS pour PostgreSQL) sur. 0 RDS nomme le de base de données dans l'environnement vert. -newn

Si vous supprimez la ressource de déploiement bleu/vert, RDS conserve les -oldn ressources et. -newn

Après le passage d'un déploiement bleu/vert

Mise à jour du nœud parent pour les consommateurs

RDS propose des répliques de lecture entièrement gérées. Cependant, il offre également la possibilité de configurer des répliques autogérées, également appelées répliques externes. Les répliques externes vous permettent d'utiliser des ressources tierces comme cibles de réplication.

Après avoir basculé vers un déploiement RDS pour MariaDB ou RDS pour MySQL MySQL de base de données contenait des répliques externes ou des consommateurs de journaux binaires avant le basculement, vous devez mettre à jour son nœud parent après le basculement afin de maintenir la continuité de la réplication.

Pour mettre à jour le nœud parent
  1. Après le basculement, l'instance de base de données du qui se trouvait auparavant dans l'environnement vert émet un événement contenant le nom du fichier journal principal et la position du journal principal. Pour localiser l'événement, accédez à la console RDS et choisissez Events dans le volet de navigation de gauche.

  2. Filtrez par événements dont la source est le nom de l'ancienne instance de base de données Green , avant le basculement.

  3. Localisez l'événement qui contient les coordonnées binaires du journal. Le message de l'événement est similaire à :Binary log coordinates in green environment after switchover: file mysql-bin-changelog.000003 and position 40134574.

  4. Assurez-vous que le consommateur ou la réplique a appliqué tous les journaux binaires de l'ancien environnement bleu. Utilisez ensuite les coordonnées binaires du journal fournies pour reprendre la réplication sur les consommateurs. Par exemple, si vous exécutez une réplique MySQL sur EC2, vous pouvez utiliser les commandes suivantes :

    MySQL 8.0.22 et versions inférieures majeures et mineures

    CHANGE MASTER TO MASTER_HOST='{new-writer-endpoint}', MASTER_LOG_FILE='mysql-bin-changelog.000003', MASTER_LOG_POS=40134574;

    MySQL 8.0.23 et versions supérieures majeures et mineures

    CHANGE REPLICATION SOURCE TO SOURCE_HOST='{new-writer-endpoint}', SOURCE_LOG_FILE='mysql-bin-changelog.000003', SOURCE_LOG_POS=40134574;

Si le client est une autre instance de base de données RDS pour MySQL ou RDS pour MariaDB, exécutez les procédures stockées suivantes dans l'ordre :