Changer de blue/green déploiement dans ) - 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.

Changer de blue/green déploiement dans )

Une bascule transfère le cluster de bases de données, y compris ses instances de base de données, dans l’environnement vert pour qu’il devienne le cluster de bases de données de production. Avant l’opération de bascule, le trafic de production est acheminé vers le cluster dans l’environnement bleu. Après l’opération de bascule, le trafic de production est acheminé vers le cluster de bases de données dans l’environnement vert.

Le transfert d'un blue/green déploiement n'est pas la même chose que la promotion du cluster de base de données d' de base de données vert dans le cadre du blue/green déploiement. Si vous promouvez manuellement le cluster DB 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 blue/green déploiement passe à l'état de configuration non valide.

Délai de bascule

Vous pouvez spécifier un délai de bascule compris entre 30 secondes et 3 600 secondes (une heure). Si la bascule 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 bascule

Lorsque vous lancez une bascule, Amazon RDS effectue quelques vérifications de base pour tester la préparation des environnements bleu et vert à la bascule. Ces contrôles sont connus sous le nom de barrières de protection de bascule. Ces barrières de protection empêchent une bascule si les environnements ne sont pas prêts pour cela. Ils évitent donc une durée d’indisponibilité plus longue que prévu et empêchent la perte de données entre les environnements bleu et vert qui pourrait survenir si la bascule é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 du cluster de bases de données vert est sain. Le cluster de bases de données vert est un réplica du cluster de bases de données bleu.

  • Décalage de réplication : vérifiez si le retard de réplica du cluster de base de données vert se situe dans les limites autorisées pour la bascule. Les limites autorisées sont basées sur le délai d’attente spécifié. Le retard de réplica indique dans quelle mesure le cluster de bases de données vert est en retard sur son cluster de bases de données bleu. Pour plus d’informations, consultez Surveillance du délai de réplication avant la bascule.

  • Écritures actives : assurez-vous qu’aucune écriture n’est active sur le cluster de bases de données vert.

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

  • Réplication externe : pour Aurora PostgreSQL, assurez-vous que l’environnement bleu n’est pas une source logique autogérée (diffuseur de publication) ni un réplica (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 à l’opération de bascule, puis de les recréer pour reprendre la réplication. Pour Aurora MySQL, vérifie si la base de données bleue n’est pas un réplica 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 le cluster de bases de données bleu, 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 le cluster de bases de données bleu, car elles peuvent augmenter le retard de réplica.

  • Modifications PostgreSQL non prises en charge : pour les 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 blue/green .

    Si Amazon RDS détecte des modifications PostgreSQL non prises en charge, il change l'état de réplication Replication degraded et vous indique que le basculement n'est pas disponible pour le déploiement. blue/green Pour procéder au basculement, nous vous recommandons de supprimer et de recréer le blue/green déploiement ainsi que toutes les bases de données vertes. Pour ce faire, choisissez Actions, Supprimer avec les bases de données vertes.

Actions de bascule

Lorsque vous passez d'un blue/green déploiement à un autre, RDS exécute 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 bascule.

  2. Arrête les nouvelles opérations d’écriture sur le cluster de bases de données 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 le cluster de bases de données et les instances de base de données dans les deux environnements.

    RDS renomme le cluster de bases de données et les instances de base de données dans l’environnement vert pour correspondre au cluster de bases de données et aux instances de base de données correspondants 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 bascule, le nom de l’instance de base de données dans l’environnement vert devient mydb.

    RDS renomme le cluster de bases de données et 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 bascule, 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 l’instance de base de données principale dans le nouvel environnement de production.

    Après la bascule, le précédent cluster de bases de données de production autorise les opérations de lecture uniquement . Même si vous activez les écritures sur le cluster de base de données, celui-ci reste en lecture seule jusqu'à ce que vous supprimiez le blue/green déploiement.

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.

Lors du passage au numérique, les balises de l'environnement bleu remplacent toutes les balises associées aux ressources de l'environnement vert. Toutes les balises que vous avez ajoutées directement aux ressources écologiques sont remplacées au cours de ce processus. Pour en savoir plus sur les identifications, consultez Marquage des ressources Amazon Aurora et Amazon RDS.

Si la bascule 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 bascule

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

    Pendant la bascule, 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 de données, votre cluster de bases de données et vos instances de base de données, pensez à les réduire manuellement au minimum nécessaire pour votre application avant de passer au blue/green déploiement. L'un des moyens d'y parvenir consiste à créer un script qui surveille l'état du blue/green déploiement et commence à nettoyer les connexions lorsqu'il détecte que le statut est passé àSWITCHOVER_IN_PROGRESS.

  • Assurez-vous que le cluster de bases de données et les instances de base de données dans les deux environnements sont dans l’état Available.

  • Assurez-vous que le cluster de bases de données 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 Aurora .
 Sinon, les applications continueront à envoyer du trafic d’écriture vers l’environnement bleu après la bascule.

  • Pour les déploiements Aurora blue/green PostgreSQL Les déploiements suit :

Note

Lors d’une bascule, vous ne pouvez modifier aucun cluster de base de données inclus dans la bascule.

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

Avant de passer d'un blue/green déploiement à un autre, nous vous recommandons de vérifier la valeur s des métriques suivantes sur Amazon CloudWatch.

  • DatabaseConnections— Utilisez cette métrique pour estimer le niveau d'activité lors du blue/green déploiement et assurez-vous que la valeur est à un niveau acceptable pour votre déploiement avant de passer au mode de transfert. Si l’analyse des performances est activée, DBLoad est une métrique plus précise.

  • ActiveTransactions : si innodb_monitor_enable a pour valeur all dans le groupe de paramètres de base de données de l’une de vos instances de base de données, utilisez cette métrique pour déterminer si un nombre élevé de transactions actives sont susceptibles de bloquer la bascule.

Pour plus d’informations, consultez CloudWatch Métriques Amazon pour Amazon Aurora.

Surveillance du délai de réplication avant la bascule

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

Aurora MySQL

Pour les déploiements MySQL , vérifiez AuroraBinlogReplicaLag 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.

Aurora PostgreSQL

Pour les , 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 Métriques de niveau instance pour Amazon Aurora.

Vous pouvez également 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

confirmed_flush_lsn représente le dernier numéro de séquence du journal (LSN) qui a été envoyé au réplica. pg_current_wal_lsn représente l’emplacement actuel de la base de données. Une lsn_distance de 0 signifie que le réplica a rattrapé son retard.

Passer d'un blue/green déploiement à un autre

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

Pour passer d'un blue/green déploiement à un autre
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/l'adresse.

  2. Dans le volet de navigation, choisissez Databases, puis choisissez le blue/green déploiement que vous souhaitez transférer.

  3. Pour Actions, choisissez Basculer.

    La page Basculer apparaît.

    blue/green Déploiement du switch over
  4. Sur la page Basculer, consultez le résumé de la bascule. 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 bascule.

  6. Si votre cluster exécute Aurora PostgreSQL, passez en revue et confirmez les recommandations avant la bascule. Pour plus d’informations, consultez Limitations spécifiques à la réplication logique pour les déploiements blue/green .

  7. Choisissez Basculer.

Pour passer d'un blue/green déploiement à l'autre à 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 blue/green déploiement.

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

Exemple Passer d'un blue/green déploiement à un autre

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

Pour passer d'un blue/green déploiement à l'autre à l'aide de l'API Amazon RDS, utilisez l'SwitchoverBlueGreenDeploymentopération avec les paramètres suivants :

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

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

Après la bascule

Après une bascule, le cluster de base de données et 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 et la journalisation binaire entre les environnements bleu et vert s’arrête.

RDS renomme le cluster de bases de données et 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. Le cluster de bases de données bleu est forcé de passer en mode lecture seule. Même si vous activez les opérations d'écriture, il reste en lecture seule jusqu'à ce que vous supprimiez le blue/green déploiement. RDS renomme le cluster de bases de données et les instances de base de données dans l’environnement vert -newn.

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

Après le transfert d'un blue/green déploiement

Mise à jour du nœud parent pour les consommateurs

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

Après avoir transféré un déploiement , si le cluster de base de données d'instance 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 la bascule, l’instance de base de données de l’enregistreur qui se trouvait auparavant dans l’environnement vert émet un événement contenant le nom et la position du fichier journal principal. Pour localiser l’événement, accédez à la console RDS et choisissez Événements dans le panneau de navigation de gauche.

  2. Filtrez par événements dont la source est le nom de l’ancienne instance de base de données verte de l’enregistreur, avant la bascule.

  3. Localisez l’événement qui contient les coordonnées du journal binaire. 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 le réplica a appliqué tous les journaux binaires de l’ancien environnement bleu. Utilisez ensuite les coordonnées du journal binaire 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 ultérieures majeures et mineures

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