GNU/Linux >> Tutoriales Linux >  >> Linux

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

Sección anterior: Aprovisione recursos en la nube al migrar desde Amazon Web Services

Este escenario le muestra cómo migrar una aplicación Backbone.js, Node.js y MongoDB® desde Amazon Web Services (AWS) a Rackspace Cloud. Se tarda unos 30 minutos en completarse.

El siguiente diagrama muestra la topología de la aplicación:

Requisitos

Este escenario tiene los siguientes requisitos previos:

  • Una pila de aplicaciones en AWS con acceso raíz o privilegios apropiados para instancias y servicios individuales.
  • Una cuenta válida y habilitada en Rackspace Cloud.

Preparación

Complete los siguientes pasos antes de comenzar el escenario:

  • 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 sus instancias de Amazon Elastic Compute Cloud (EC2) que no sean Backbone.js, Node.js y MongoDB.
  • Cree una lista de todos los servicios adicionales de Amazon que utiliza su aplicación, como el Servicio de correo electrónico simple (SES) para correo electrónico o el 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

Esta sección proporciona instrucciones para instalar los paquetes de software requeridos y opcionales.

Instalar Git y cURL

Debe usar Git y cURL para obtener componentes dependientes como Node.js.

Ejecute el siguiente comando para instalar git y cURL:

sudo apt-get -y install git curl

Instalar Python (opcional)

Ubuntu® versión 12.0.4 Soporte a largo plazo (LTS) incluye Python® versión 2.7.2. Si necesita una versión diferente, puede instalarla desde la página de descargas de Python.

Instalar OpenJDK

Utilice los siguientes pasos para instalar OpenJDK™:

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

  2. Instale OpenJDK 7 ingresando el siguiente comando:

     sudo apt-get -y install openjdk-7-jre
    
  3. 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-amd64 :

     /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java*
    

Instalar Tomcat 7 en el servidor en la nube

Utilice los siguientes pasos para instalar Apache® Tomcat®:

  1. Introduzca el siguiente comando para instalar Tomcat 7:

     sudo apt-get -y install tomcat7
    

    Si desea instalar una versión diferente de Tomcat o instalar Tomcat manualmente, seleccione la versión de la página de descargas de software de Tomcat 7.

  2. Copie la URL del 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 ).

  3. Cambiar directorio a /usr/share (o el directorio que desea usar) y descargue el archivo binario ingresando los siguientes comandos:

     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
    
  4. Cambie los permisos ingresando el siguiente comando:

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

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  6. Después de extraer Tomcat, elimine el tar.gz archivos para ahorrar espacio ingresando el siguiente comando:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  7. 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
    
  8. Agregue la siguiente línea inmediatamente después de \#!/bin/sh :

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

  10. Automatice el inicio de Tomcat con los siguientes comandos:

    cd /etc/init.d
    sudo vi tomcat
    
  11. 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
    
  12. Guarde sus cambios y salga del archivo.

  13. 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
    
  14. Debido a que Tomcat se ejecuta en el puerto 8080, asegúrese de que iptables no interfiera con la conectividad.

    Para obtener más información sobre iptables, consulte Introducción a iptables.

  15. Pruebe Tomcat buscando la dirección del Protocolo de Internet (IP) para el servidor en la nube desde el panel de control de la nube de Rackspace y abriendo la URL en un navegador (por ejemplo, https://:8080/ ).

    Aparece la página de destino de Apache Tomcat.

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

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

Instalar MongoDB en su servidor en la nube

Puede encontrar instrucciones para instalar MongoDB en Rackspace Cloud en el sitio web de documentación de MongoDB.

Para una implementación de producción, debe usar un conjunto de réplicas con al menos tres nodos.

Para una instalación de un solo nodo, realice los siguientes pasos:

  1. Agregue la clave GNU Privacy Guard (GPG) a apt-get para crear un de confianza fuente ingresando el siguiente comando:

     sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
    
  2. Use los siguientes comandos para crear un 10gen personalizado archivo de repositorio que contiene la ubicación de los archivos binarios de MongoDB:

     sudo sh -c 'echo "deb https://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list'
    
  3. Actualizar apt-get para recoger nuevos paquetes ingresando el siguiente comando:

     sudo apt-get -y update
    
  4. Instale MongoDB ingresando el siguiente comando:

     sudo apt-get -y install mongodb-10gen
    
  5. Verifique que MongoDB se esté ejecutando ingresando el siguiente comando:

     ps aux | grep mongo
    

Nota :MongoDB usa /var/lib/mongodb como la ruta de datos predeterminada. Si desea cambiar esta ruta, puede cerrar la instancia de MongoDB y actualizar el archivo de configuración en /etc/mongodb.conf .

Configurar un servidor Node.js

Si sus servicios están respaldados por Node.js en lugar de Python, siga los siguientes pasos para configurar un servidor Node.js en su instancia de nube:

  1. Instale Node.js ingresando el siguiente comando:

     sudo apt-get -y install nodejs npm
    
  2. Pruebe la instalación usando el siguiente comando para obtener la versión de Node.js que está ejecutando:

     node --version
    

Instalar OpenStack Swift (opcional)

Si planea usar Cloud Files para transferir sus datos, use los siguientes pasos para instalar el cliente OpenStack® Swift para habilitar el acceso desde su servidor:

  1. Instale el cliente Swift ingresando el siguiente comando:

     sudo apt-get install python-novaclient glance-client swift
    
  2. Configure las variables de entorno necesarias ejecutando los siguientes comandos, sustituyendo su nombre de usuario y la clave de la interfaz de programación de aplicaciones (API):

     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 .bashrc o .bash\_profile archivo, luego vuelva a cargar el archivo con la siguiente source comando, sustituyendo .bash\_profile 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

Esta sección le muestra cómo hacer una copia de seguridad de los datos de AWS en Rackspace Cloud Files. El ejemplo usa un contenedor existente llamado AppData.

Primero, recupere sus datos de EC2. Puede transferir los datos directamente de una de las siguientes maneras:

  • Utilice el protocolo de transferencia de archivos SSH (SFTP) de rsyncor.

  • Utilice el cliente OpenStack Swift para transferir sus datos a Cloud Files y luego transfiéralos desde Cloud Files al servidor de la nube.

Para usar Cloud Files, siga estos pasos preparatorios:

  1. Usando SSH, conéctese a su instancia EC2 ingresando el siguiente comando:

    ssh -i your_private_key.pem [email protected]
    
  2. Realice un volcado de MongoDB. Usa el -host y -port opciones si MongoDB se está ejecutando en una instancia diferente, como se muestra en el siguiente ejemplo:

    mongodump --host mongodb1.yourdomain.com --port 3017 --username $USERNAME --password $PASSWORD --out ~/backup/mongodump-2013-05-03
    tar czvf backbonedb-2013-05-03.tar.gz ~/backup/db/mongodump-2013-05-03/*
    
  3. Utilice los siguientes comandos para hacer una copia de seguridad de su aplicación y cualquier recurso que necesite, incluidos los registros y otros directorios:

    # Backup backbone resources
    sudo tar cvzf ~/backup/app/backhone.tar.gz /usr/share/tomcat/webapps/YOURAPP/*
    # Backup node.js resources
    sudo tar cvzf ~/backup/app/nodejs.tar.gz /usr/local/nodejs/YOURAPP/*
    
  4. Si usa Cloud Files para transferir sus archivos, use uno de los siguientes métodos para realizar la transferencia. Si usa rsync o SFTP, complete la transferencia y pase a la sección final de este artículo.

    • Sube tus archivos al contenedor de Cloud Files usando el cliente Swift y los siguientes comandos:

      swift upload AppData backbonedb-2013-05-03.tar.gz
      swift upload AppData backhone.tar.gz
      swift upload AppData nodejs.tar.gz
      
    • Use los siguientes pasos para cargar sus datos en Cloud Files usando el Panel de control de la nube:

      1. Inicie sesión en el Panel de control de la nube.

      2. En la barra de navegación superior, haga clic en Seleccione un producto> RackspaceCloud .

      3. Seleccione Almacenamiento> Archivos> nombre del contenedor para abrir su contenedor.

      4. Haz clic en Subir archivos .

      5. Haz clic en Examinar y seleccione los archivos que desea cargar. Luego haga clic en Abrir o Seleccionar (dependiendo de su navegador y sistema).

      6. Haz clic en Subir archivo .

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

Si cargó sus datos en Cloud Files, transfiéralos a CloudServers siguiendo los siguientes pasos:

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

  2. Instale y configure la interfaz de línea de comandos (CLI) de Swift como se describe en la sección "Instalar paquetes de software".

  3. Ejecute la swift list comando y asegúrese de ver el nuevo contenedor que creó en los resultados.

  4. Descargue 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 en los archivos en la nube de Rackspace" y restáurelo localmente mediante los siguientes comandos:

    swift download AppData backbonedb-2013-05-03.tar.gz
    gunzip < backbonedb-2013-05-03.tar.gz | mongorestore --host mongodb1.yourdomain.com --port 3017 --username user --password pass
    
  5. Descargue los datos (Backbone.js y Node.js) y restáurelos usando los siguientes comandos:

    sudo service tomcat7 stop #stop tomcat server
    swift download AppData backbone.tar.gz
    # restore / deflate backbone
    cd /usr/share/tomcat/webapps
    sudo tar xvf backbone.tar.gz
    # restore node.js
    swift download AppData nodejs.tar.gz
    sudo mkdir -p /usr/local/nodejs/YOURAPP
    cd /usr/local/nodejs
    sudo tar xvf nodejs.tar.gz
    
  6. Inicie los servicios de la aplicación utilizando los siguientes comandos:

    sudo service tomcat7 start
    cd /usr/local/nodejs/YOURAPP/
    sudo node server.js
    

Prueba tu aplicación

Vaya a https:/// en una ventana del navegador para acceder y probar su aplicación.

Siguiente paso

Consideraciones posteriores a la migración al migrar desde Amazon Web Services

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

  • Migrar una aplicación .NET desde Amazon Web Services
  • Migrar una aplicación web Java desde Amazon Web Services

Linux
  1. Cómo instalar y usar MongoDB en Ubuntu 20.04

  2. Cómo instalar y proteger MongoDB en Debian 11

  3. Cómo instalar MongoDB en Ubuntu 20.04 y CentOS 8

  4. Cómo instalar y asegurar MongoDB 4 en CentOS 8

  5. Pasos de alto nivel para migrar desde Amazon Web Services

Cómo instalar TermPair para compartir y controlar terminales en tiempo real desde el navegador web

Cómo instalar el servidor web Hiawatha en CentOS 7

Instalar y configurar phpMyAdmin

Migrar una aplicación .NET desde Amazon Web Services

Migrar una aplicación web Java desde Amazon Web Services

Aprovisione recursos en la nube al migrar desde Amazon Web Services