GNU/Linux >> Tutoriels Linux >  >> Linux

Migrer une application Web Java depuis Amazon Web Services

Section précédente : Provisionnez les ressources cloud lors de la migration depuis AmazonWebServices

Cet article vous montre comment migrer une application Web Spring basée sur Apache® Tomcat® et Java™ d'Amazon® Web Services® (AWS) vers Rackspace Cloud. Cet exemple prend environ 30 minutes.

L'exemple utilise Spring PetClinic SampleApplication.

La figure suivante montre la topologie de l'application :

Prérequis

Les prérequis suivants sont requis pour suivre l'exemple de cet article :

  • Une instance Amazon Elastic Compute Cloud (EC2) sur AWS avec un accès root qui exécute l'application Web Spring sur Apache Tomcat.
  • Un compte valide et activé sur Rackspace Cloud.

Préparation

Effectuez les étapes suivantes avant d'essayer de suivre les étapes de l'exercice :

  • Identifiez les ressources que vous souhaitez migrer, y compris les ressources d'application et de base de données.
  • Créez une liste de tous les packages logiciels nécessaires installés sur votre instance EC2, autres que votre application Spring.
  • Créez une liste de tous les serveurs Amazon supplémentaires utilisés par l'application (par exemple, Simple Email Server (SES) pour les e-mails ou Relational Database Service (RDS) pour les bases de données).
  • Si vous ne l'avez pas déjà fait, créez une instance de serveur cloud et tous les services Rackspace Cloud compatibles.

Installer des packages logiciels

Installez les packages logiciels suivants :

  • Kit de développement Oracle® Open Java (OpenJDK™)
  • Apache Tomcat
  • OpenStack® Swift (facultatif)

Installer OpenJDK sur le cloud

Effectuez les étapes suivantes pour installer OpenJDK sur le cloud :

  1. À l'aide de Secure Shell (SSH), connectez-vous à l'instance Cloud Servers en utilisant l'URL RackspacePublicNet et le mot de passe root.

  2. Entrez le mot de passe root pour vous connecter.

  3. Installez OpenJDK 7 en saisissant la commande suivante :

    sudo yum install java-1.7.0-openjdk-devel
    
  4. Déterminer l'emplacement de JAVA_HOME en saisissant la commande suivante :

    ll /etc/alternatives/java
    

    Dans l'exemple de sortie suivant, JAVA_HOME est situé à /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 :

    /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
    

Installer Tomcat sur le serveur cloud

Suivez les étapes suivantes pour installer Tomcat sur le serveur cloud :

  1. Cliquez avec le bouton droit sur la version de Tomcat que vous souhaitez utiliser à partir de la page de téléchargement de logiciels Tomcat 7 et copiez l'URL de tar.gz fichier (par exemple,https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ).

  2. Entrez les commandes suivantes pour changer de répertoire en /usr/share (ou le répertoire que vous souhaitez utiliser) et téléchargez le fichier binaire :

     cd /usr/share
     sudo wget https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz
    
  3. Modifiez les autorisations en saisissant la commande suivante :

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  4. Extrayez le contenu du fichier en saisissant la commande suivante :

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  5. Après avoir extrait Tomcat, utilisez la commande suivante pour supprimer le tar.gz fichier et libérer de l'espace :

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  6. Définissez les variables d'environnement dans le catalina.sh fichier en saisissant les commandes suivantes :

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  7. Ajoutez la ligne suivante au catalina.sh fichier immédiatement après \#!/bin/sh :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  8. Enregistrez vos modifications et quittez le fichier.

  9. Automatisez le démarrage de Tomcat en saisissant les commandes suivantes :

     cd /etc/init.d
     sudo vi tomcat
    
  10. Ajoutez les informations suivantes au fichier. Assurez-vous que JAVA_HOME ,TOMCAT_HOME , START_TOMCAT , et STOP_TOMCAT reportez-vous aux bons répertoires :

    #!/bin/bash
    # chkconfig: 234 20 80
    # description: Tomcat Server basic start/shutdown script
    # processname: tomcat
    JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    export JAVA_HOME
    TOMCAT_HOME=/usr/share/apache-tomcat-7.0.39/bin
    START_TOMCAT=/usr/share/apache-tomcat-7.0.39/bin/startup.sh
    STOP_TOMCAT=/usr/share/apache-tomcat-7.0.39/bin/shutdown.sh
    start() {
    echo -n "Starting tomcat: "
    cd $TOMCAT_HOME
    ${START_TOMCAT}
    echo "done."
    }
    stop() {
    echo -n "Shutting down tomcat: "
    
    cd $TOMCAT_HOME
    ${STOP_TOMCAT}
    echo "done."
    }
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    stop
    sleep 10
    start
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    esac
    exit 0
    
  11. Enregistrez vos modifications et quittez le fichier.

  12. Définissez les autorisations de fichiers, configurez Tomcat en tant que service système et testez la configuration en saisissant les commandes suivantes :

    sudo chmod 755 tomcat
    sudo /sbin/chkconfig --add tomcat
    sudo /sbin/chkconfig --level 234 tomcat on
    sudo /sbin/chkconfig --list tomcat
    

    Le résultat doit ressembler à l'exemple suivant :

     tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
    
  13. Étant donné que Tomcat s'exécute sur le port 8080, vous devez vous assurer qu'iptables n'interfère pas avec la connectivité.

  14. Pour tester Tomcat, recherchez l'adresse IP (Internet Protocol) du CloudServer dans le panneau de configuration Cloud et ouvrez l'URL dans un navigateur (par exemple, https://<ipAddress>:8080/ ). La page d'accueil d'Apache Tomcat devrait apparaître.

    Remarque  :Vous pouvez arrêter et démarrer Tomcat à l'aide des commandes suivantes :

    sudo /sbin/service tomcat stop
    sudo /sbin/service tomcat start
    

Installer OpenStack Swift (facultatif)

Si vous prévoyez d'utiliser Cloud Files pour transférer vos données, vous devez utiliser OpenStack Swift pour permettre l'accès depuis votre serveur. Suivez les étapes de cette section pour installer et configurer OpenStack Swift.

  1. Utilisez la commande suivante pour installer le client OpenStack Swift :

     sudo yum install python-novaclient python-glanceclient swift
    
  2. Définissez les variables d'environnement nécessaires en exécutant les commandes suivantes, en remplaçant le nom d'utilisateur et la clé API de votre compte Rackspace Cloud :

     export ST_USER=<yourLoginUsername>
     export ST_KEY=<yourApiKey>
     export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
    

    Vous voudrez peut-être définir ces variables dans votre .bashrc ou.bash\_profile dossier. Si vous effectuez cette étape, vous devez recharger le fichier avec le source suivant commande, en remplaçant .bash\_profile pour.bashrc si nécessaire :

         source .bashrc
    
  3. Tapez swift list et assurez-vous que vous pouvez voir le conteneur que vous avez créé pour contenir vos données.

Sauvegarder les données d'AWS vers Rackspace Cloud Files

Récupérez vos données depuis AWS EC2. Vous pouvez utiliser l'une des méthodes suivantes pour transférer les données :

  • Transférez les données directement à l'aide de rsync ou du protocole de transfert de fichiers SSH (SFTP).
  • Utilisez le client OpenStack Swift pour transférer vos données vers Cloud Files, puis transférez les données de Cloud Files vers le serveur Cloud.

Effectuez les étapes préparatoires suivantes pour utiliser Cloud Files :

  1. Utilisez les commandes suivantes pour vous connecter à votre instance EC2 à l'aide de SSH :

    ssh -i yourPrivateKey.pem [email protected]
    
  2. Effectuez un vidage de la base de données à l'aide de la commande suivante :

    mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
    
  3. Utilisez la commande suivante pour sauvegarder votre application et toutes les autres ressources dont l'application a besoin, y compris les journaux et autres répertoires :

    # Ensure that you have the correct tomcat7 directory
    sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
    
  4. Si vous utilisez Cloud Files pour transférer vos fichiers, utilisez l'une des méthodes suivantes pour effectuer le transfert. Si vous transférez des fichiers directement à l'aide de rsync ou SFTP, passez à la dernière section de cet article.

    • Entrez les commandes suivantes pour télécharger vos archives dans le conteneur CloudFiles (Tomcat dans cet exemple) en utilisant le client Swift :

      swift upload Tomcat petclinic.sql.gz
      swift upload Tomcat tomcat.tar.gz
      
    • Utilisez les étapes suivantes pour télécharger vos données dans Cloud Files via le panneau de configuration Cloud :

      1. À partir de Sélectionner un produit menu déroulant, sélectionnez RackspaceCloud> Stockage> Fichiers> containerName pour ouvrir votre conteneur.

      2. Cliquez sur Télécharger des fichiers .

      3. Cliquez sur Parcourir , sélectionnez le ou les fichiers que vous souhaitez télécharger, puis cliquez sur Ouvrir , Sélectionner , ou Choisir (selon le navigateur et le système que vous utilisez).

      4. Cliquez sur Télécharger le fichier .

Restaurer les données des fichiers cloud vers les serveurs cloud

Si vous avez téléchargé vos données sur Cloud Files, procédez comme suit pour les transférer sur votre serveur Cloud :

  1. À l'aide de SSH, connectez-vous à l'instance Cloud Servers à l'aide de PublicNetURL et du mot de passe root.

  2. Installez et configurez l'interface de ligne de commande (CLI) Swift en suivant les étapes de la section "Installer les packages logiciels" de cet article.

  3. Assurez-vous que vous pouvez exécuter la swift list commande et voir le nouveau conteneur que vous avez créé dans les résultats.

  4. Utilisez les commandes suivantes pour télécharger le vidage de la base de données à partir de la sauvegarde que vous avez effectuée dans la section « Sauvegarder les données d'AWS vers les fichiers Cloud Rackspace » de cet article et le restaurer localement :

    swift download Tomcat petclinic.sql.gz
    gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
    
  5. Utilisez les commandes suivantes pour arrêter Tomcat et télécharger et extraire les fichiers d'application :

    sudo /sbin/service tomcat stop
    swift download Tomcat tomcat.tar.gz
    tar -zxvf tomcat.tar.gz
    
  6. Copiez le contenu de l'application Web extraite dans les webapps Tomcat locaux répertoire et modifiez les propriétés de l'application (y compris jdbc.url , le nom d'utilisateur de la base de données, le mot de passe de la base de données et d'autres propriétés).

  7. Dans l'exemple Spring Framework Petclinic, commentez les fichiers suivants :

     petclinic/WEB-INF/classes/db/mysql/initDB.sql
     petclinic/WEB-INF/classes/db/mysql/populateDB.sql
    
  8. Utilisez la commande suivante pour redémarrer Tomcat :

    sudo /sbin/service tomcat start
    

Testez votre application

Accédez à l'application Web dans votre navigateur à l'adresse https://<cloudServerIPAddress>:8080/petclinic .

Étape suivante

Considérations post-migration lors de la migration depuis Amazon WebServices

Pour d'autres scénarios de migration, consultez les articles suivants :

  • Migrer une application .NET depuis Amazon WebServices
  • Migration d'une application basée sur Backbone.js, Node.js et MongoDB depuis Amazon WebServices

Linux
  1. Comment migrer de CentOS 8 vers Rocky Linux 8

  2. Créez votre application sur le cloud Rackspace

  3. Étapes de haut niveau pour migrer depuis Amazon Web Services

  4. Mappage des ressources Amazon Web Services aux ressources Rackspace

  5. Déterminer si le stockage éphémère est attaché à une instance dans la console Amazon Web Services ?

Comment télécharger des chansons depuis le lecteur cloud d'Amazon ?

Comment installer Java sur CentOS 8

Créer un Serveur Cloud à partir d'un ISO

Migrer une application .NET depuis Amazon Web Services

Migrer une application basée sur Backbone.js, Node.js et MongoDB depuis Amazon Web Services

Provisionner des ressources cloud lors de la migration depuis Amazon Web Services