Comment procéder pour découpler une instance Amazon RDS d’un environnement Elastic Beanstalk sans occasionner d’interruption, de problèmes de synchronisation de base de données ou de perte de données ?

Dernière mise à jour : 23/12/2022

Je dispose d’une instance de base de données Amazon Relational Database Service (Amazon RDS) attachée à mon environnement AWS Elastic Beanstalk. Je souhaite supprimer les dépendances entre l'instance et l'environnement tout en évitant les temps d'arrêt, les problèmes de synchronisation des bases de données et les pertes de données.

Brève description

Pour dissocier votre base de données d'un environnement Elastic Beanstalk sans affecter l'intégrité de l'environnement, procédez comme suit :

  1. Créez un instantané de base de données Amazon RDS.
  2. Protection de l'instance de base de données RDS contre les suppressions.
  3. Créer un nouvel environnement Elastic Beanstalk
  4. Effectuez un déploiement bleu/vert.
  5. Mettez à jour la politique de suppression de la base de données pour l'environnement Beanstalk A.
  6. Dissociez l'instance RDS de l'environnement Beanstalk A.
  7. Mettre hors service l’ancien environnement Elastic Beanstalk

Important : l'association d'une instance de base de données RDS à un environnement Elastic Beanstalk constitue l'alternative idéale pour les environnements de développement et de test. Toutefois, ce n'est pas recommandé avec les environnements de production, car le cycle de vie de l'instance de base de données est lié à celui de l'environnement d'application. Si vous mettez hors service l'environnement, vous perdez vos données, car l'instance de base de données RDS est supprimée par celui-ci. Pour plus d’informations, consultez Utilisation d'Elastic Beanstalk avec Amazon RDS.

Solution

Créer un instantané de base de données RDS

  1. Ouvrez la console Elastic Beanstalk.
  2. Sélectionnez l'environnement Elastic Beanstalk à découpler à partir de l'instance de base de données RDS (environnement A).
  3. Dans le volet de navigation, choisissez Configuration.
  4. Pour Database (Base de données), choisissez Modify (Modifier).
  5. Sélectionnez Point de terminaison.
  6. Créez un instantané de bases de données RDS pour votre instance de base de données RDS.

Protection de l'instance de base de données RDS contre les suppressions

  1. Ouvrez la console Amazon RDS.
  2. Choisissez votre base de données, puis Modify (Modifier).
  3. Dans la section Deletion protection (Protection contre la suppression), sélectionnez l'option Enable deletion protection (Activer la protection contre suppression).
  4. Choisissez Continuer.
  5. Dans la section Scheduling Modifications (Planification des modifications), choisissez Apply immediately (Appliquer immédiatement)..
  6. Choisissez Modify DB Instance (Modifier l'instance de base de données).
  7. Actualisez la console Amazon RDS, puis vérifiez que la protection contre la suppression a été activée.

Créer un nouvel environnement Elastic Beanstalk

Votre nouvel environnement Elastic Beanstalk (l'environnement B) ne doit pas contenir d'instance de base de données RDS se trouvant dans la même application Elastic Beanstalk.

Remarque : afin de pouvoir réaliser un déploiement bleu/vert (ou une modification du CNAME) ultérieurement, vérifiez que l'environnement A et l'environnement B utilisent la même version de l'application.

  1. Créez l'environnement B.
  2. Connectez l'environnement B à l'instance de base de données RDS existante de l'environnement A.
    Remarque : pour plus d'informations, consultez Lancement et connexion à une instance Amazon RDS externe dans un VPC par défaut.
  3. Vérifiez que l'environnement B se connecte à l'instance de base de données RDS existante et que votre application fonctionne correctement.

Réalisation d'un déploiement bleu/vert pour éviter les interruptions

  1. Ouvrez la console Elastic Beanstalk de l’environnement B.
  2. Permutez les URL d’environnement de l’ancien environnement Elastic Beanstalk et du nouvel environnement Elastic Beanstalk.
    Remarque : pour plus d'informations, consultez Déploiements bleu/vert avec Elastic Beanstalk.
  3. Vérifiez que l'URL de l'environnement B répond et que votre application fonctionne correctement.

Important : ne résiliez pas l’environnement A tant que les modifications DNS ne sont pas propagées et que les anciens enregistrements DNS n’ont pas expiré. Les enregistrements DNS peuvent prendre jusqu'à 48 heures pour expirer. Les serveurs DNS n’effacent pas les anciens enregistrements dans leur cache en fonction de la durée de vie (TTL) que vous définissez pour les enregistrements DNS.

Mettre à jour la politique de suppression de la base de données pour l'environnement Beanstalk A

  1. Ouvrez la console Elastic Beanstalk de l’environnement A.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Dans Configuration de la base de données, choisissez Modifier.
  4. Dans les paramètres de la base de données, définissez la politique de suppression de la base de données sur Conserver.
  5. Choisissez Apply (Appliquer). L'enregistrement de la modification de configuration prendra quelques minutes.

Important : Ne passez pas à l'étape suivante tant que la modification de la politique de suppression de la base de données n'est pas appliquée à l'environnement Beanstalk A.

Découplez l'instance RDS de l'environnement Beanstalk A

  1. Ouvrez la console Elastic Beanstalk de l’environnement A.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Dans Configuration de la base de données, choisissez Modifier.
  4. Dans les paramètres de la base de données, vérifiez que la politique de suppression de la base de données est définie sur Conserver.
  5. Accédez à la section Connexion à la base de données et choisissez Découpler la base de données.
  6. Choisissez Appliquer pour lancer l'opération de découplage de la base de données.

Remarque : La base de données reste opérationnelle pendant cette période et le découplage d'une base de données prend généralement moins de cinq minutes.

Mettre hors service l’ancien environnement Elastic Beanstalk

Une fois les fonctionnalités du nouvel environnement validées, mettez fin à l'ancien environnement Elastic Beanstalk (environnement A).

Lorsque vous mettez fin à l'environnement, toutes les ressources Elastic Beanstalk sont supprimées, à l'exception de l'instance de base de données RDS et du groupe de sécurité RDS créés par Elastic Beanstalk.


Cet article vous a-t-il été utile?


Besoin d'aide pour une question technique ou de facturation ?