Comment puis-je découpler une instance Amazon RDS d’un environnement Elastic Beanstalk sans interruption, problèmes de synchronisation de base de données ou perte de données ?

Lecture de 7 minute(s)
0

Une instance de base de données Amazon Relational Database Service (Amazon RDS) est attachée à mon environnement AWS Elastic Beanstalk. Je souhaite éviter les temps d’arrêt, les problèmes de synchronisation de base de données et les pertes de données lorsque je supprime les dépendances entre l’instance et l’environnement.

Brève description

La procédure suivante permet de découpler votre base de données d’un environnement Elastic Beanstalk sans affecter l’état de santé de l’environnement :

  1. Créez un instantané de la base de données Amazon RDS.
  2. Protégez votre instance de base de données RDS contre la suppression.
  3. Créez un nouvel environnement Elastic Beanstalk.
  4. Effectuez un déploiement bleu/vert.
  5. Mettez à jour la politique de suppression de base de données pour l’ancien environnement.
  6. Découplez l’instance RDS de l’ancien environnement.
  7. Résiliez l’ancien environnement.

Important : Il est recommandé d’associer une instance de base de données RDS à un environnement Elastic Beanstalk uniquement dans les environnements de développement et de test. Dans l’environnement de production, le cycle de vie de l’instance de base de données est lié au cycle de vie de votre environnement d’application. Il est donc recommandé de ne pas associer l’instance de base de données RDS à un environnement Elastic Beanstalk dans un environnement de production. Si vous résiliez l’environnement, vous perdez vos données, car l’environnement supprime l’instance de base de données. Pour plus d’informations, consultez la sectionUtilisation d’Elastic Beanstalk avec Amazon RDS.

Résolution

Créez un instantané de base de données de votre instance

Pour créer un instantané de base de données de votre instance, procédez comme suit :

  1. Ouvrez la console Elastic Beanstalk.
  2. Choisissez votre environnement Elastic Beanstalk.
  3. Copiez l’ID d’environnement.
  4. Ouvrez la console Amazon RDS.
  5. Dans le volet de navigation, choisissez Bases de données.
  6. Entrez l’ID de l’environnement dans le champ de recherche, puis sélectionnez la base de données.
  7. Créez un instantané de base de données.

Protection de votre instance de base de données contre la suppression

Pour protéger votre instance de base de données contre la suppression, procédez comme suit :

  1. Ouvrez la console Amazon RDS.
  2. Dans le volet de navigation, choisissez Bases de données.
  3. Choisissez votre base de données, puis choisissez Modifier.
  4. Sous Protection contre la suppression, sélectionnez Activer la protection contre la suppression, puis choisissez Continuer.
  5. Pour Modifications du calendrier, choisissez Appliquer immédiatement, puis choisissez Modifier le cluster.
  6. Actualisez la console Amazon RDS, puis vérifiez que la protection contre la suppression est activée.

Création d’un nouvel environnement Elastic Beanstalk

Remarque : Votre nouvel environnem+ent Elastic Beanstalk ne peut pas inclure d’instance de base de données.

Pour créer un nouvel environnement Elastic Beanstalk, procédez comme suit :

  1. Créez un nouvel environnement Elastic Beanstalk.
  2. Connectez le nouvel environnement Elastic Beanstalk à l’instance de base de données existante de l’ancien environnement Elastic Beanstalk. Pour plus d’informations, consultez la section Lancement et connexion à une instance Amazon RDS externe dans un cloud privé virtuel (VPC) par défaut.
  3. Vérifiez que le nouvel environnement se connecte à l’instance de base de données existante et que votre application fonctionne correctement.

Effectuer un déploiement bleu/vert pour éviter les temps d’arrêt

Remarque : Pour effectuer ultérieurement un déploiement bleu/vert ou un échange CNAME, les deux environnements Elastic Beanstalk doivent faire partie de la même application.

Pour effectuer un déploiement bleu/vert, procédez comme suit :

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

Important : Ne résiliez l’ancien environnement Elastic Beanstalk qu’une fois que les modifications DNS ont été propagées et que vos anciens enregistrements DNS ont expiré. L’expiration des enregistrements DNS peut prendre jusqu’à 48 heures. Les serveurs DNS n’effacent pas les anciens enregistrements de leur cache en fonction de la durée de vie (TTL) que vous avez définie pour vos enregistrements DNS.

Mise à jour de la politique de suppression de base de données pour l’ancien environnement

Pour mettre à jour la politique de suppression de base de données pour l’ancien environnement, procédez comme suit :

  1. Ouvrez la console Elastic Beanstalk pour l’ancien environnement.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Sous Réseau et base de données, choisissez Modifier.
  4. Dans Paramètres de la base de données, définissez la politique de suppression de la base de données sur Conserver.
  5. Sélectionnez Appliquer. L’enregistrement de la modification de configuration peut prendre quelques minutes.

Important : Passez à l’étape suivante uniquement si la modification de la politique de suppression de la base de données a été appliquée à l’ancien environnement.

Découplage de l’instance RDS de l’ancien environnement

Pour découpler l’instance RDS de l’ancien environnement, procédez comme suit :

  1. Ouvrez la console Elastic Beanstalk pour l’ancien environnement.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Dans Configuration du réseau et de la base de données, choisissez Modifier.
  4. Dans 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. Dans la section Connexion à la base de données, choisissez Découpler la base de données.
  6. Sélectionnez Appliquer.

Remarque : Lorsque la base de données est découplée, elle reste opérationnelle. Le découplage d’une base de données prend généralement moins de 5 minutes.

Résiliation de l’ancien environnement

Après avoir validé les fonctionnalités du nouvel environnement, résiliez l’ancien environnement Elastic Beanstalk.

Lorsque vous résiliez l’environnement, toutes les ressources Elastic Beanstalk sont supprimées, à l’exception de l’instance de base de données et du groupe de sécurité RDS créés par Elastic Beanstalk. Lorsque vous créez une instance RDS dans le cadre d’un environnement Elastic Beanstalk à charge équilibrée, Elastic Beanstalk crée un groupe de sécurité Elastic Load Balancing (ELB). Elastic Beanstalk crée également un groupe de sécurité Amazon Elastic Compute Cloud (Amazon EC2) à associer aux instances EC2 de l’environnement. Elastic Beanstalk crée également un groupe de sécurité RDS à associer à l’instance RDS. Pour autoriser le trafic entrant sur le port 3306 en provenance du groupe de sécurité EC2, Elastic Beanstalk ajoute une règle de groupe de sécurité entrant au groupe de sécurité RDS.

Lorsque vous découplez la base de données, Elastic Beanstalk ne supprime pas la règle entrante du groupe de sécurité. Cette règle entrante de groupe de sécurité fait référence au groupe de sécurité EC2 du groupe de sécurité RDS créé par Elastic Beanstalk. Lorsque vous résiliez l’environnement, Elastic Beanstalk ne peut pas résilier l’environnement, car le groupe de sécurité RDS découplé fait toujours référence au groupe de sécurité EC2.

Pour résilier l’environnement Elastic Beanstalk, procédez comme suit :

  1. Ouvrez la console Elastic Beanstalk pour l’ancien environnement.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Sous Trafic d’instance et dimensionnement, notez le nom du groupe de sécurité EC2 qui se trouve sous Groupes de sécurité EC2.
  4. Ouvrez la console Amazon EC2.
  5. Dans le volet de navigation, choisissez Groupes de sécurité.
  6. Sur la page ** Groupes de sécurité**, entrez le nom du groupe de sécurité EC2.
  7. Relevez l’ID du groupe de sécurité. Le format est similaire à « sg-xxxxxxxx. »
  8. Ouvrez la console Amazon RDS.
  9. Dans le volet de navigation, choisissez Bases de données, puis choisissez le nom de votre instance de base de données.
  10. Sous Connectivité et sécurité, notez les sous-réseaux, les groupes de sécurité et les points de terminaison. Ensuite, sous Sécurité, choisissez le nom du groupe de sécurité.
  11. Une fois la page Groupes de sécurité ouverte dans la console EC2, sélectionnez le groupe de sécurité.
  12. Pour Règles entrantes, choisissez Modifier les règles entrantes.
  13. Identifiez la règle du groupe de sécurité.
  14. Choisissez Supprimer, puis cliquez sur Enregistrer les règles.
  15. Ouvrez la console Elastic Beanstalk pour l’ancien environnement.
  16. Choisissez Actions, puis choisissez Résilier l’environnement. Lorsque vous découplez la base de données, Elastic Beanstalk ne supprime pas la règle entrante du groupe de sécurité. La règle entrante du groupe de sécurité fait référence au groupe de sécurité EC2 du groupe de sécurité RDS créé par Elastic Beanstalk.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois