Redémarrage de votre site Web Magento hébergé sur une instance EC2

Table des matières

  1. Introduction
  2. Le défi de redémarrer les instances EC2
  3. Gestion des modifications d'adresse IP
  4. Redémarrage de votre serveur Magento
  5. Conservation de la base de données
  6. Conclusion
  7. FAQ

Introduction

Avez-vous déjà redémarré votre instance EC2 pour découvrir que votre site Web Magento n'est plus accessible? Ce problème peut être déroutant, surtout si vous n'êtes pas familier avec le redémarrage du code serveur lié à des frameworks spécifiques comme Magento. Comprendre comment maintenir un service continu et préserver votre base de données lors d'un redémarrage d'EC2 est crucial. Ce billet de blog explorera le processus de redémarrage de votre serveur Magento hébergé sur AWS EC2, garantissant que votre site reste accessible et fonctionnel.

En fin de compte, vous saurez comment redémarrer correctement votre serveur Magento, conserver votre base de données et gérer les modifications d'adresse IP. Explorons ces solutions pour remettre en ligne votre site de commerce électronique alimenté par Magento de manière transparente.

Le défi de redémarrer les instances EC2

Avant de vous plonger dans les étapes du redémarrage de votre serveur Magento, il est essentiel de comprendre les deux principaux défis associés au redémarrage d'une instance EC2:

  1. Modifications des adresses IP : Lorsqu'une instance EC2 est redémarrée, son adresse IP publique change. Par conséquent, tout service qui dépend de cette adresse IP doit être reconfiguré pour pointer vers la nouvelle adresse IP.
  2. Redémarrage du code serveur : Une fois l'instance redémarrée, le serveur exécutant l'application Magento doit être également redémarré. Cela implique des étapes spécifiques selon la configuration de Magento dans l'instance.

Abordons chacun de ces défis de manière systématique.

Gestion des modifications d'adresse IP

Lorsque vous redémarrez une instance EC2, son adresse IP publique change sauf si vous utilisez une IP élastique. Les IP élastiques restent constantes indépendamment de la redémarrage de l'instance et peuvent être remappées entre les instances au sein de votre compte AWS.

Étapes pour utiliser une IP élastique

  1. Allouer une adresse IP élastique :

    • Ouvrez la console Amazon EC2.
    • Cliquez sur "Adresses IP élastiques" sous le titre "Réseau & Sécurité".
    • Allouez une nouvelle adresse IP élastique.
  2. Associer l'IP élastique à votre instance :

    • Sélectionnez la nouvelle adresse IP élastique allouée.
    • Cliquez sur "Actions" et sélectionnez "Associer une adresse IP élastique".
    • Choisissez votre instance et interface réseau, puis cliquez sur "Associer".

En utilisant une IP élastique, votre site Web Magento aura toujours la même adresse IP, atténuant les interruptions causées par des changements d'IP.

Changement des enregistrements DNS

Si vous choisissez de ne pas utiliser une IP élastique, vous devrez mettre à jour vos enregistrements DNS à chaque modification de l'adresse IP de votre instance.

  • Localisez votre registrar de domaine ou service d'hébergement DNS.
  • Mettez à jour l'enregistrement A pour pointer vers la nouvelle adresse IP de votre instance EC2.
  • Sauvegardez les modifications et attendez la propagation DNS, ce qui peut prendre un certain temps.

Redémarrage de votre serveur Magento

Redémarrer l'instance en elle-même n'est que la moitié du processus. L'application serveur Magento doit également être redémarrée. Voici comment y parvenir :

Accès à votre instance EC2

  1. Connexion SSH à votre instance EC2 :
    • Utilisez un client SSH pour vous connecter à votre instance en utilisant sa nouvelle adresse IP ou IP élastique.
    • Commande exemple : ssh -i "votre-paire-de-clés.pem" ec2-user@votre-ip-ec2.

Redémarrage des services Magento

Une fois que vous avez accès SSH à l'instance, vous devez redémarrer les services serveur et l'application Magento.

  1. Redémarrer le serveur Web :

    • Les serveurs Web courants incluent Apache et Nginx. Utilisez les commandes suivantes en fonction de votre configuration :
      • Pour Apache : sudo systemctl restart httpd
      • Pour Nginx : sudo systemctl restart nginx
  2. Redémarrer PHP-FPM :

    • Magento utilise généralement PHP-FPM pour la gestion des processus PHP. Redémarrez-le en utilisant :
      • sudo systemctl restart php7.4-fpm (Remplacez 7.4 par votre version de PHP)
  3. Exécution des commandes de redémarrage Magento :

    • Accédez au répertoire d'installation de Magento et exécutez les commandes suivantes :
      • php bin/magento setup:upgrade
      • php bin/magento cache:flush
      • php bin/magento setup:di:compile (si nécessaire)

En suivant ces étapes, vous vous assurerez que l'application Magento est totalement redémarrée et opérationnelle sur votre instance EC2.

Conservation de la base de données

Lors du redémarrage d'une instance EC2, il est crucial de garantir la rétention de la base de données. Cela se fait souvent de trois manières principales :

Stockage des bases de données sur des volumes persistants

  1. Utilisation d'Amazon EBS :
    • Attachez un volume EBS pour stocker votre base de données. Les volumes EBS offrent un stockage persistant, ce qui signifie que les données persistent même après l'arrêt ou la terminaison de l'instance.
    • Assurez-vous que votre service de base de données pointe vers ce volume EBS.

Création de sauvegardes

  1. Sauvegardes régulières :
    • Sauvegardez régulièrement votre base de données Magento en utilisant les commandes natives MySQL ou MariaDB, ou utilisez des services de base de données gérés comme Amazon RDS, qui gèrent automatiquement les sauvegardes.
    • Commandes : mysqldump -u nom_utilisateur -p nom_base_de_données > sauvegarde.sql

Utilisation d'Amazon RDS

  1. Service de base de données géré - Amazon RDS :
    • Si la conservation de l'état de la base de données est complexe, envisagez de transférer votre base de données vers Amazon RDS. Ce service entièrement géré propose des sauvegardes automatiques, des instantanés et des déploiements multi-AZ pour une disponibilité élevée.

Conclusion

Redémarrer votre serveur Magento hébergé sur une instance EC2 implique de gérer à la fois les modifications dynamiques d'IP et de garantir que l'application Magento et ses services sous-jacents redémarrent correctement. En utilisant des IP élastiques ou en gérant les enregistrements DNS, vous pouvez atténuer les interruptions liées aux IP. Assurer un stockage persistant pour votre base de données via des volumes EBS ou en utilisant des services comme Amazon RDS garantit la cohérence et la disponibilité de vos données.

Avec ce guide, vous êtes bien équipé pour gérer efficacement les redémarrages du serveur Magento, minimisant les temps d'arrêt et maintenant la disponibilité de votre plateforme de commerce électronique.

FAQ

Que se passe-t-il si mon adresse IP change lorsque je redémarre mon instance EC2?

Lorsque vous redémarrez une instance EC2, son adresse IP publique change sauf si vous utilisez une IP élastique. Cela signifie que vous devrez mettre à jour vos enregistrements DNS à chaque fois ou simplement associer une IP élastique pour maintenir une adresse constante.

Comment redémarrer les services Magento après le redémarrage de mon instance EC2?

Après vous être connecté en SSH à votre instance, vous devez redémarrer les services de serveur Web (Apache ou Nginx), PHP-FPM et Magento lui-même en utilisant des commandes spécifiques telles que décrites dans la section "Redémarrage de votre serveur Magento".

Puis-je conserver ma base de données Magento intacte après le redémarrage de mon instance EC2?

Oui, en stockant votre base de données sur un volume EBS ou en utilisant Amazon RDS, vous pouvez garantir que votre base de données reste intacte même après le redémarrage de l'instance.

Dois-je utiliser Amazon RDS pour ma base de données Magento?

L'utilisation d'Amazon RDS peut simplifier la gestion avec des sauvegardes automatiques, des instantanés et des déploiements haute disponibilité. C'est utile si vous souhaitez une approche sans intervention de la gestion de base de données.