GNU/Linux >> Tutoriales Linux >  >> Linux

Migrar una aplicación web Java desde Amazon Web Services

Sección anterior: Aprovisione recursos en la nube al migrar desde AmazonWebServices

Este artículo le muestra cómo migrar una aplicación web Spring basada en Apache® Tomcat® y Java™ de Amazon® Web Services®(AWS) a Rackspace Cloud. Este ejemplo tarda unos 30 minutos en completarse.

El ejemplo utiliza la aplicación de muestra Spring PetClinic.

La siguiente figura muestra la topología de la aplicación:

Requisitos

Se requieren los siguientes requisitos previos para seguir el ejemplo de este artículo:

  • Una instancia de Amazon Elastic Compute Cloud (EC2) en AWS con acceso raíz que ejecuta la aplicación web Spring en Apache Tomcat.
  • Una cuenta válida y habilitada en Rackspace Cloud.

Preparación

Realice los siguientes pasos antes de intentar seguir los pasos del ejercicio:

  • Identifique los recursos que desea migrar, incluidos los recursos de aplicaciones y bases de datos.
  • Cree una lista de todos los paquetes de software necesarios que están instalados en su instancia EC2, además de su aplicación Spring.
  • Cree una lista de todos los servidores de Amazon adicionales que utiliza la aplicación (por ejemplo, Servidor de correo electrónico simple (SES) para correo electrónico o Servicio de base de datos relacional (RDS) para bases de datos).
  • Si aún no lo ha hecho, cree una instancia de Cloud Server y cualquier servicio de Rackspace Cloud compatible.

Instalar paquetes de software

Instale los siguientes paquetes de software:

  • Kit de desarrollo Java abierto de Oracle® (OpenJDK™)
  • Apache Tomcat
  • OpenStack® Swift (opcional)

Instalar OpenJDK en la nube

Complete los siguientes pasos para instalar OpenJDK en la nube:

  1. Usando Secure Shell (SSH), conéctese a la instancia de Cloud Servers usando la URL de RackspacePublicNet y la contraseña raíz.

  2. Introduzca la contraseña raíz para iniciar sesión.

  3. Instale OpenJDK 7 ingresando el siguiente comando:

    sudo yum install java-1.7.0-openjdk-devel
    
  4. Determinar la ubicación de JAVA_HOME ingresando el siguiente comando:

    ll /etc/alternatives/java
    

    En el siguiente resultado de ejemplo, JAVA_HOME se encuentra en /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
    

Instalar Tomcat en el servidor en la nube

Utilice los siguientes pasos para instalar Tomcat en el servidor en la nube:

  1. Haga clic con el botón derecho en la versión de Tomcat que desee utilizar desde la página de descargas de software de Tomcat 7 y copie la URL de tar.gz archivo (por ejemplo, https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ).

  2. Ingrese los siguientes comandos para cambiar el directorio a /usr/share (o el directorio que desea usar) y descargue el archivo 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. Cambie los permisos ingresando el siguiente comando:

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  4. Extraiga el contenido del archivo ingresando el siguiente comando:

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  5. Después de extraer Tomcat, use el siguiente comando para eliminar el tar.gz archivo y liberar espacio:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  6. Establezca las variables de entorno en catalina.sh archivo ingresando los siguientes comandos:

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  7. Agregue la siguiente línea a catalina.sh archivo inmediatamente después de \#!/bin/sh :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  8. Guarde sus cambios y salga del archivo.

  9. Automatice el inicio de Tomcat ingresando los siguientes comandos:

     cd /etc/init.d
     sudo vi tomcat
    
  10. Agregue la siguiente información al archivo. Asegúrese de que JAVA_HOME ,TOMCAT_HOME , START_TOMCAT y STOP_TOMCAT consulte los directorios correctos:

    #!/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. Guarde sus cambios y salga del archivo.

  12. Establezca permisos de archivo, configure Tomcat como un servicio del sistema y pruebe esta configuración ingresando los siguientes comandos:

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

    El resultado debe ser similar al siguiente ejemplo:

     tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
    
  13. Debido a que Tomcat se ejecuta en el puerto 8080, debe asegurarse de que iptables no interfiera con la conectividad.

  14. Para probar Tomcat, busque la dirección del Protocolo de Internet (IP) para CloudServer en el Panel de control de la nube y abra la URL en un navegador (por ejemplo, https://<ipAddress>:8080/ ). Debería aparecer la página de aterrizaje de Apache Tomcat.

    Nota :Puede detener e iniciar Tomcat utilizando los siguientes comandos:

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

Instalar OpenStack Swift (opcional)

Si planea usar Cloud Files para transferir sus datos, debe usar OpenStack Swift para habilitar el acceso desde su servidor. Siga los pasos de esta sección para instalar y configurar OpenStack Swift.

  1. Use el siguiente comando para instalar el cliente de OpenStack Swift:

     sudo yum install python-novaclient python-glanceclient swift
    
  2. Establezca las variables de entorno necesarias ejecutando los siguientes comandos, sustituyendo el nombre de usuario y la clave API de su cuenta de Rackspace Cloud:

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

    Es posible que desee definir estas variables en su .bashrc o .bash\_profile expediente. Si realiza este paso, debe volver a cargar el archivo con la siguiente source comando, sustituyendo .bash\_profile para .bashrc si es necesario:

         source .bashrc
    
  3. Escriba swift list y asegúrese de que puede ver el contenedor que creó para guardar sus datos.

Copia de seguridad de datos de AWS a Rackspace Cloud Files

Recupere sus datos de AWS EC2. Puede utilizar uno de los siguientes métodos para transferir los datos:

  • Transfiera los datos directamente mediante rsync o el protocolo de transferencia de archivos SSH (SFTP).
  • Utilice el cliente OpenStack Swift para transferir sus datos a Cloud Files y, a continuación, transfiera los datos de Cloud Files al servidor de Cloud.

Complete los siguientes pasos preparatorios para usar Cloud Files:

  1. Utilice los siguientes comandos para conectarse a su instancia EC2 mediante SSH:

    ssh -i yourPrivateKey.pem [email protected]
    
  2. Realice un volcado de la base de datos utilizando el siguiente comando:

    mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
    
  3. Use el siguiente comando para hacer una copia de seguridad de su aplicación y cualquier otro recurso que necesite la aplicación, incluidos los registros y otros directorios:

    # Ensure that you have the correct tomcat7 directory
    sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
    
  4. Si usa Cloud Files para transferir sus archivos, use uno de los siguientes métodos para realizar la transferencia. Si está transfiriendo archivos directamente mediante rsync o SFTP, salte a la sección final de este artículo.

    • Ingrese los siguientes comandos para cargar sus archivos en el contenedor de CloudFiles (Tomcat en este ejemplo) usando el cliente Swift:

      swift upload Tomcat petclinic.sql.gz
      swift upload Tomcat tomcat.tar.gz
      
    • Utilice los siguientes pasos para cargar sus datos en Cloud Files a través del Panel de control en la nube:

      1. Desde Seleccione un producto menú desplegable, seleccione RackspaceCloud> Almacenamiento> Archivos> containerName para abrir su contenedor.

      2. Haz clic en Subir archivos .

      3. Haz clic en Examinar , seleccione el archivo o los archivos que desea cargar y haga clic en Abrir , Seleccionar , o Elegir (según el navegador y el sistema que esté utilizando).

      4. Haz clic en Subir archivo .

Restaurar datos de archivos en la nube a servidores en la nube

Si cargó sus datos en Cloud Files, siga los siguientes pasos para transferirlos a su servidor en la nube:

  1. Usando SSH, conéctese a la instancia de Cloud Servers usando PublicNetURL y la contraseña raíz.

  2. Instale y configure la interfaz de línea de comandos (CLI) de Swift siguiendo los pasos de la sección "Instalar paquetes de software" de este artículo.

  3. Asegúrese de que puede ejecutar la swift list y vea el nuevo contenedor que creó en los resultados.

  4. Utilice los siguientes comandos para descargar el volcado de la base de datos de la copia de seguridad que realizó en la sección "Copia de seguridad de los datos de AWS a los archivos en la nube de Rackspace" de este artículo y restaurarlo localmente:

    swift download Tomcat petclinic.sql.gz
    gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
    
  5. Utilice los siguientes comandos para detener Tomcat y descargar y extraer los archivos de la aplicación:

    sudo /sbin/service tomcat stop
    swift download Tomcat tomcat.tar.gz
    tar -zxvf tomcat.tar.gz
    
  6. Copie los contenidos de la aplicación web extraídos en Tomcatwebapps locales. directorio y modificar las propiedades de la aplicación (incluyendo jdbc.url , el nombre de usuario de la base de datos, la contraseña de la base de datos y otras propiedades).

  7. En la muestra Spring Framework Petclinic, comente los siguientes archivos:

     petclinic/WEB-INF/classes/db/mysql/initDB.sql
     petclinic/WEB-INF/classes/db/mysql/populateDB.sql
    
  8. Use el siguiente comando para reiniciar Tomcat:

    sudo /sbin/service tomcat start
    

Prueba tu aplicación

Acceda a la aplicación web en su navegador en https://<cloudServerIPAddress>:8080/petclinic .

Siguiente paso

Consideraciones posteriores a la migración al migrar desde Amazon WebServices

Para otros escenarios de migración, consulte los siguientes artículos:

  • Migrar una aplicación .NET desde Amazon WebServices
  • Migrar una aplicación basada en Backbone.js, Node.js y MongoDB desde Amazon WebServices

Linux
  1. Cree su aplicación en la nube de Rackspace

  2. Asignación de recursos de Amazon Web Services a recursos de Rackspace

  3. Migrar de Parse a Rackspace

  4. Migre a Rackspace Cloud desde Amazon Web Services

  5. Pitchfork:la aplicación web API de la nube de Rackspace

¿Cómo descargar canciones del reproductor en la nube de Amazon?

Cómo instalar Java en CentOS 8

Creación de un servidor en la nube a partir de una ISO

Migrar una aplicación .NET desde Amazon Web Services

Migrar una aplicación basada en Backbone.js, Node.js y MongoDB desde Amazon Web Services

Aprovisione recursos en la nube al migrar desde Amazon Web Services