GNU/Linux >> Linux Esercitazione >  >> Linux

Migrare un'applicazione Web Java da Amazon Web Services

Sezione precedente: Effettua il provisioning delle risorse cloud durante la migrazione da AmazonWebServices

Questo articolo mostra come migrare un'applicazione Web Spring basata su Apache® Tomcat® e Java™ da Amazon® Web Services® (AWS) a Rackspace Cloud. Il completamento di questo esempio richiede circa 30 minuti.

L'esempio utilizza Spring PetClinic SampleApplication.

La figura seguente mostra la topologia dell'applicazione:

Prerequisiti

I seguenti prerequisiti sono necessari per seguire l'esempio in questo articolo:

  • Un'istanza Amazon Elastic Compute Cloud (EC2) su AWS con accesso root che esegue l'applicazione Web Spring su Apache Tomcat.
  • Un account valido e abilitato su Rackspace Cloud.

Preparazione

Esegui i seguenti passaggi prima di provare a seguire i passaggi dell'esercizio:

  • Identifica le risorse di cui desideri migrare, comprese le risorse dell'applicazione e del database.
  • Crea un elenco di tutti i pacchetti software necessari installati sull'istanza EC2, a parte l'applicazione Spring.
  • Crea un elenco di tutti i server Amazon aggiuntivi utilizzati dall'applicazione (ad esempio Simple Email Server (SES) per e-mail o Relational Database Service (RDS) per database).
  • Se non l'hai già fatto, crea un'istanza Cloud Server e tutti i servizi Rackspace Cloud di supporto.

Installa i pacchetti software

Installa i seguenti pacchetti software:

  • Kit di sviluppo Oracle® Open Java (OpenJDK™)
  • Apache Tomcat
  • OpenStack® Swift (opzionale)

Installa OpenJDK sul cloud

Completa i seguenti passaggi per installare OpenJDK sul cloud:

  1. Utilizzando Secure Shell (SSH), connettiti all'istanza Cloud Servers utilizzando l'URL RackspacePublicNet e la password di root.

  2. Inserisci la password di root per accedere.

  3. Installa OpenJDK 7 immettendo il seguente comando:

    sudo yum install java-1.7.0-openjdk-devel
    
  4. Determina la posizione di JAVA_HOME immettendo il seguente comando:

    ll /etc/alternatives/java
    

    Nel seguente output di esempio, JAVA_HOME si trova in/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
    

Installa Tomcat sul Cloud Server

Utilizzare i seguenti passaggi per installare Tomcat sul Cloud Server:

  1. Fare clic con il pulsante destro del mouse sulla versione di Tomcat che si desidera utilizzare dalla pagina Download del software Tomcat 7 e copiare l'URL del tar.gz file (ad esempio,https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ).

  2. Inserisci i seguenti comandi per cambiare la directory in /usr/share (o la directory che vuoi usare) e scarica il file binario:

     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. Modifica i permessi immettendo il seguente comando:

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  4. Estrarre il contenuto del file immettendo il seguente comando:

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  5. Dopo aver estratto Tomcat, utilizzare il comando seguente per rimuovere tar.gz file e libera spazio:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  6. Imposta le variabili di ambiente in catalina.sh file inserendo i seguenti comandi:

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  7. Aggiungi la seguente riga a catalina.sh file immediatamente dopo \#!/bin/sh :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  8. Salva le modifiche ed esci dal file.

  9. Automatizza l'avvio di Tomcat inserendo i seguenti comandi:

     cd /etc/init.d
     sudo vi tomcat
    
  10. Aggiungi le seguenti informazioni al file. Assicurati che JAVA_HOME ,TOMCAT_HOME , START_TOMCAT e STOP_TOMCAT fare riferimento alle directory corrette:

    #!/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. Salva le modifiche ed esci dal file.

  12. Imposta i permessi dei file, configura Tomcat come servizio di sistema e verifica la configurazione immettendo i seguenti comandi:

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

    L'output dovrebbe essere simile al seguente esempio:

     tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
    
  13. Poiché Tomcat è in esecuzione sulla porta 8080, devi assicurarti che iptables non interferisca con la connettività.

  14. Per testare Tomcat, cerca l'indirizzo IP (Internet Protocol) per il CloudServer nel pannello di controllo del Cloud e apri l'URL in un browser (ad esempio, https://<ipAddress>:8080/ ). Dovrebbe apparire la landing page di Apache Tomcat.

    Nota :puoi interrompere e avviare Tomcat utilizzando i seguenti comandi:

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

Installa OpenStack Swift (opzionale)

Se prevedi di utilizzare Cloud Files per trasferire i tuoi dati, devi utilizzare OpenStack Swift per abilitare l'accesso dal tuo server. Segui i passaggi in questa sezione per installare e configurare OpenStack Swift.

  1. Utilizzare il comando seguente per installare il client OpenStack Swift:

     sudo yum install python-novaclient python-glanceclient swift
    
  2. Imposta le variabili di ambiente necessarie eseguendo i seguenti comandi, sostituendo il nome utente e la chiave API del tuo account Rackspace Cloud:

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

    Potresti voler definire queste variabili nel tuo .bashrc o.bash\_profile file. Se esegui questo passaggio, devi ricaricare il file con il seguente source comando, sostituendo .bash\_profile per.bashrc se necessario:

         source .bashrc
    
  3. Digita swift list e assicurati di poter vedere il contenitore che hai creato per contenere i tuoi dati.

Backup dei dati da AWS a Rackspace Cloud Files

Recupera i tuoi dati da AWS EC2. È possibile utilizzare uno dei seguenti metodi per trasferire i dati:

  • Trasferisci i dati direttamente utilizzando rsync o SSH File Transfer Protocol (SFTP).
  • Utilizza il client OpenStack Swift per trasferire i tuoi dati su Cloud Files, quindi trasferisci i dati da Cloud Files al Cloud Server.

Completa i seguenti passaggi preparatori per utilizzare Cloud Files:

  1. Utilizza i seguenti comandi per connetterti all'istanza EC2 tramite SSH:

    ssh -i yourPrivateKey.pem [email protected]
    
  2. Eseguire un dump del database utilizzando il comando seguente:

    mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
    
  3. Utilizzare il comando seguente per eseguire il backup dell'applicazione e di qualsiasi altra risorsa necessaria all'applicazione, inclusi i registri e altre directory:

    # Ensure that you have the correct tomcat7 directory
    sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
    
  4. Se stai utilizzando Cloud Files per trasferire i tuoi file, utilizza uno dei seguenti metodi per eseguire il trasferimento. Se stai trasferendo file direttamente utilizzando rsync o SFTP, vai alla sezione finale di questo articolo.

    • Inserisci i seguenti comandi per caricare i tuoi archivi nel contenitore CloudFiles (Tomcat in questo esempio) utilizzando il client Swift:

      swift upload Tomcat petclinic.sql.gz
      swift upload Tomcat tomcat.tar.gz
      
    • Utilizza i seguenti passaggi per caricare i tuoi dati su Cloud Files tramite il pannello di controllo di Cloud:

      1. Da Seleziona un prodotto menu a discesa, seleziona RackspaceCloud> Storage> Files> containerName per aprire il tuo contenitore.

      2. Fai clic su Carica file .

      3. Fai clic su Sfoglia , seleziona il file o i file che desideri caricare e fai clic su Apri , Seleziona o Scegli (a seconda del browser e del sistema che stai utilizzando).

      4. Fai clic su Carica file .

Ripristina i dati dai file cloud ai server cloud

Se hai caricato i tuoi dati su Cloud Files, utilizza i seguenti passaggi per trasferirli al tuo Cloud Server:

  1. Utilizzando SSH, connettiti all'istanza dei Cloud Servers utilizzando PublicNetURL e la password di root.

  2. Installa e configura l'interfaccia a riga di comando (CLI) Swift seguendo i passaggi nella sezione "Installazione dei pacchetti software" di questo articolo.

  3. Assicurati di poter eseguire l'swift list comando e vedere il nuovo contenitore che hai creato nei risultati.

  4. Utilizzare i seguenti comandi per scaricare il dump del database dal backup eseguito nella sezione "Backup dei dati da AWS a Rackspace Cloud Files" di questo articolo e ripristinarlo in locale:

    swift download Tomcat petclinic.sql.gz
    gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
    
  5. Utilizzare i seguenti comandi per interrompere Tomcat e scaricare ed estrarre i file dell'applicazione:

    sudo /sbin/service tomcat stop
    swift download Tomcat tomcat.tar.gz
    tar -zxvf tomcat.tar.gz
    
  6. Copia il contenuto dell'applicazione web estratta nelle Tomcatwebapps locali directory e modificare le proprietà dell'applicazione (inclusojdbc.url , il nome utente del database, la password del database e altre proprietà).

  7. Nell'esempio di Spring Framework Petclinic, commenta i seguenti file:

     petclinic/WEB-INF/classes/db/mysql/initDB.sql
     petclinic/WEB-INF/classes/db/mysql/populateDB.sql
    
  8. Utilizzare il comando seguente per riavviare Tomcat:

    sudo /sbin/service tomcat start
    

Verifica la tua applicazione

Accedi all'applicazione web nel tuo browser suhttps://<cloudServerIPAddress>:8080/petclinic .

Passaggio successivo

Considerazioni successive alla migrazione durante la migrazione da Amazon WebServices

Per altri scenari di migrazione, vedere i seguenti articoli:

  • Migrare un'applicazione .NET da Amazon WebServices
  • Migrare un'applicazione basata su Backbone.js, Node.js e MongoDB da Amazon WebServices

Linux
  1. Come migrare da CentOS 8 a Rocky Linux 8

  2. Crea la tua applicazione sul cloud Rackspace

  3. Passaggi di alto livello per la migrazione da Amazon Web Services

  4. Mappatura delle risorse Amazon Web Services alle risorse Rackspace

  5. Migra da Parse a Rackspace

Come scaricare brani dal Cloud Player di Amazon?

Come installare Java su CentOS 8

Creazione di un Cloud Server da una ISO

Migrare un'applicazione .NET da Amazon Web Services

Migra un'applicazione basata su Backbone.js, Node.js e MongoDB da Amazon Web Services

Effettua il provisioning delle risorse cloud durante la migrazione da Amazon Web Services