GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Migrieren Sie eine Java-Webanwendung von Amazon Web Services

Vorheriger Abschnitt: Bereitstellen von Cloud-Ressourcen bei der Migration von AmazonWebServices

Dieser Artikel zeigt Ihnen, wie Sie eine auf Apache® Tomcat® und Java™ basierende Spring-Webanwendung von Amazon® Web Services® (AWS) zu Rackspace Cloud migrieren. Dieses Beispiel dauert etwa 30 Minuten.

Das Beispiel verwendet die Spring PetClinic SampleApplication.

Die folgende Abbildung zeigt die Topologie der Anwendung:

Voraussetzungen

Die folgenden Voraussetzungen sind erforderlich, um dem Beispiel in diesem Artikel zu folgen:

  • Eine Amazon Elastic Compute Cloud (EC2)-Instance auf AWS mit Root-Zugriff, auf der die Spring-Webanwendung auf Apache Tomcat ausgeführt wird.
  • Ein gültiges und aktiviertes Konto auf Rackspace Cloud.

Vorbereitung

Führen Sie die folgenden Schritte aus, bevor Sie versuchen, die Schritte in der Übung auszuführen:

  • Identifizieren Sie die Ressourcen, die Sie migrieren möchten, einschließlich Anwendungs- und Datenbankressourcen.
  • Erstellen Sie eine Liste aller erforderlichen Softwarepakete, die außer Ihrer Spring-Anwendung auf Ihrer EC2-Instance installiert sind.
  • Erstellen Sie eine Liste aller zusätzlichen Amazon-Server, die die Anwendung verwendet (z. B. Simple Email Server (SES) für E-Mail oder Relational Database Service (RDS) für Datenbanken).
  • Falls noch nicht geschehen, erstellen Sie eine Cloud Server-Instanz und alle unterstützenden Rackspace Cloud-Dienste.

Softwarepakete installieren

Installieren Sie die folgenden Softwarepakete:

  • Oracle® Open Java Development Kit (OpenJDK™)
  • Apache-Tomcat
  • OpenStack® Swift (optional)

Installieren Sie OpenJDK in der Cloud

Führen Sie die folgenden Schritte aus, um OpenJDK in der Cloud zu installieren:

  1. Stellen Sie mit Secure Shell (SSH) eine Verbindung zur Cloud Servers-Instanz her, indem Sie die RackspacePublicNet-URL und das Root-Passwort verwenden.

  2. Geben Sie das Root-Passwort ein, um sich anzumelden.

  3. Installieren Sie OpenJDK 7, indem Sie den folgenden Befehl eingeben:

    sudo yum install java-1.7.0-openjdk-devel
    
  4. Bestimmen Sie den Speicherort von JAVA_HOME indem Sie den folgenden Befehl eingeben:

    ll /etc/alternatives/java
    

    In der folgenden Beispielausgabe JAVA_HOME befindet sich unter /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
    

Installieren Sie Tomcat auf dem Cloud-Server

Verwenden Sie die folgenden Schritte, um Tomcat auf dem Cloud-Server zu installieren:

  1. Klicken Sie mit der rechten Maustaste auf die Tomcat-Version, die Sie verwenden möchten, auf der Tomcat 7-Software-Downloadseite und kopieren Sie die URL von tar.gz Datei (zum Beispiel https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ).

  2. Geben Sie die folgenden Befehle ein, um das Verzeichnis in /usr/share zu ändern (oder das Verzeichnis, das Sie verwenden möchten) und laden Sie die Binärdatei herunter:

     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. Ändern Sie die Berechtigungen, indem Sie den folgenden Befehl eingeben:

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  4. Extrahieren Sie den Dateiinhalt, indem Sie den folgenden Befehl eingeben:

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  5. Verwenden Sie nach dem Extrahieren von Tomcat den folgenden Befehl, um tar.gz zu entfernen Datei und geben Sie Speicherplatz frei:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  6. Setzen Sie die Umgebungsvariablen in catalina.sh Datei, indem Sie die folgenden Befehle eingeben:

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  7. Fügen Sie die folgende Zeile zu catalina.sh hinzu Datei unmittelbar nach\#!/bin/sh :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  8. Speichern Sie Ihre Änderungen und beenden Sie die Datei.

  9. Automatisieren Sie den Start von Tomcat, indem Sie die folgenden Befehle eingeben:

     cd /etc/init.d
     sudo vi tomcat
    
  10. Fügen Sie der Datei die folgenden Informationen hinzu. Stellen Sie sicher, dass JAVA_HOME ,TOMCAT_HOME , START_TOMCAT und STOP_TOMCAT beziehen Sie sich auf die richtigen Verzeichnisse:

    #!/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. Speichern Sie Ihre Änderungen und beenden Sie die Datei.

  12. Legen Sie Dateiberechtigungen fest, richten Sie Tomcat als Systemdienst ein und testen Sie die Einrichtung, indem Sie die folgenden Befehle eingeben:

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

    Die Ausgabe sollte dem folgenden Beispiel ähneln:

     tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
    
  13. Da Tomcat auf Port 8080 ausgeführt wird, müssen Sie sicherstellen, dass iptables die Konnektivität nicht beeinträchtigt.

  14. Um Tomcat zu testen, suchen Sie die Internet Protocol (IP)-Adresse für den CloudServer im Cloud Control Panel und öffnen Sie die URL in einem Browser (z. B. https://<ipAddress>:8080/). ). Die Landingpage von Apache Tomcat sollte angezeigt werden.

    Hinweis :Sie können Tomcat mit den folgenden Befehlen stoppen und starten:

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

Installieren Sie OpenStack Swift (optional)

Wenn Sie Cloud Files zum Übertragen Ihrer Daten verwenden möchten, müssen Sie OpenStack Swift verwenden, um den Zugriff von Ihrem Server zu ermöglichen. Befolgen Sie die Schritte in diesem Abschnitt, um OpenStack Swift zu installieren und zu konfigurieren.

  1. Verwenden Sie den folgenden Befehl, um den OpenStack Swift-Client zu installieren:

     sudo yum install python-novaclient python-glanceclient swift
    
  2. Legen Sie die erforderlichen Umgebungsvariablen fest, indem Sie die folgenden Befehle ausführen und den Benutzernamen und den API-Schlüssel Ihres Rackspace Cloud-Kontos ersetzen:

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

    Möglicherweise möchten Sie diese Variablen in Ihrer .bashrc definieren oder.bash\_profile Datei. Wenn Sie diesen Schritt ausführen, müssen Sie die Datei mit der folgenden source neu laden Befehl, ersetzen Sie .bash\_profile für.bashrc ggf.:

         source .bashrc
    
  3. Geben Sie swift list ein und stellen Sie sicher, dass Sie den Container sehen können, den Sie für Ihre Daten erstellt haben.

Sichern Sie Daten von AWS in Rackspace Cloud Files

Rufen Sie Ihre Daten von AWS EC2 ab. Sie können eine der folgenden Methoden verwenden, um die Daten zu übertragen:

  • Übertragen Sie die Daten direkt mit rsync oder SSH File Transfer Protocol (SFTP).
  • Verwenden Sie den OpenStack Swift-Client, um Ihre Daten in Cloud Files zu übertragen, und übertragen Sie die Daten dann von Cloud Files auf den Cloud-Server.

Führen Sie die folgenden vorbereitenden Schritte aus, um Cloud-Dateien zu verwenden:

  1. Verwenden Sie die folgenden Befehle, um über SSH eine Verbindung zu Ihrer EC2-Instance herzustellen:

    ssh -i yourPrivateKey.pem [email protected]
    
  2. Führen Sie mit dem folgenden Befehl einen Datenbank-Dump durch:

    mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
    
  3. Verwenden Sie den folgenden Befehl, um Ihre Anwendung und alle anderen Ressourcen zu sichern, die die Anwendung benötigt, einschließlich Protokolle und andere Verzeichnisse:

    # Ensure that you have the correct tomcat7 directory
    sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
    
  4. Wenn Sie Cloud Files verwenden, um Ihre Dateien zu übertragen, verwenden Sie eine der folgenden Methoden, um die Übertragung durchzuführen. Wenn Sie Dateien direkt mit rsync oder SFTP übertragen, fahren Sie mit dem letzten Abschnitt dieses Artikels fort.

    • Geben Sie die folgenden Befehle ein, um Ihre Archive in den CloudFiles-Container hochzuladen (Tomcat in diesem Beispiel) mithilfe des Swift-Clients:

      swift upload Tomcat petclinic.sql.gz
      swift upload Tomcat tomcat.tar.gz
      
    • Führen Sie die folgenden Schritte aus, um Ihre Daten über das Cloud Control Panel in Cloud Files hochzuladen:

      1. Über Produkt auswählen Wählen Sie im Dropdown-Menü RackspaceCloud> Storage> Files> containerName um Ihren Container zu öffnen.

      2. Klicken Sie auf Dateien hochladen .

      3. Klicken Sie auf Durchsuchen , wählen Sie die Datei(en) aus, die Sie hochladen möchten, und klicken Sie auf Öffnen , Auswählen , oder Auswählen (je nach verwendetem Browser und System).

      4. Klicken Sie auf Datei hochladen .

Stellen Sie Daten aus Cloud-Dateien auf Cloud-Servern wieder her

Wenn Sie Ihre Daten in Cloud-Dateien hochgeladen haben, verwenden Sie die folgenden Schritte, um sie auf Ihren Cloud-Server zu übertragen:

  1. Stellen Sie mit SSH eine Verbindung zur Cloud Servers-Instanz her, indem Sie die PublicNetURL und das Root-Passwort verwenden.

  2. Installieren und konfigurieren Sie die Swift-Befehlszeilenschnittstelle (CLI), indem Sie die Schritte im Abschnitt „Softwarepakete installieren“ dieses Artikels befolgen.

  3. Stellen Sie sicher, dass Sie die swift list ausführen können Befehl und sehen Sie sich den neuen Container an, den Sie in den Ergebnissen erstellt haben.

  4. Verwenden Sie die folgenden Befehle, um den Datenbank-Dump aus der Sicherung herunterzuladen, die Sie im Abschnitt „Sichern von Daten von AWS in Rackspace Cloud-Dateien“ dieses Artikels erstellt haben, und stellen Sie ihn lokal wieder her:

    swift download Tomcat petclinic.sql.gz
    gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
    
  5. Verwenden Sie die folgenden Befehle, um Tomcat zu stoppen und die Anwendungsdateien herunterzuladen und zu extrahieren:

    sudo /sbin/service tomcat stop
    swift download Tomcat tomcat.tar.gz
    tar -zxvf tomcat.tar.gz
    
  6. Kopieren Sie die extrahierten Webanwendungsinhalte in die lokalen Tomcatwebapps Verzeichnis und ändern Sie die Anwendungseigenschaften (einschließlichjdbc.url , der Datenbank-Benutzername, das Datenbank-Passwort und andere Eigenschaften).

  7. Kommentieren Sie im Spring Framework Petclinic-Beispiel die folgenden Dateien aus:

     petclinic/WEB-INF/classes/db/mysql/initDB.sql
     petclinic/WEB-INF/classes/db/mysql/populateDB.sql
    
  8. Verwenden Sie den folgenden Befehl, um Tomcat neu zu starten:

    sudo /sbin/service tomcat start
    

Testen Sie Ihre Anwendung

Greifen Sie in Ihrem Browser unter https://<cloudServerIPAddress>:8080/petclinic auf die Webanwendung zu .

Nächster Schritt

Überlegungen nach der Migration bei der Migration von Amazon WebServices

Weitere Migrationsszenarien finden Sie in den folgenden Artikeln:

  • Migrieren Sie eine .NET-Anwendung von Amazon WebServices
  • Migrieren Sie eine Anwendung basierend auf Backbone.js, Node.js und MongoDB von Amazon WebServices

Linux
  1. Migrieren Sie von Parse zu Rackspace

  2. Migrieren Sie von Amazon Web Services zur Rackspace Cloud

  3. Pitchfork – die Rackspace Cloud API-Webanwendung

  4. Richten Sie CORS in Cloud Files ein

  5. Feststellen, ob ephemerer Speicher an eine Instance in der Amazon Web Services-Konsole angehängt ist?

Wie lade ich Songs vom Cloud Player von Amazon herunter?

So installieren Sie Java unter CentOS 8

Erstellen eines Cloud-Servers aus einer ISO

Migrieren Sie eine .NET-Anwendung von Amazon Web Services

Migrieren Sie eine Anwendung basierend auf Backbone.js, Node.js und MongoDB von Amazon Web Services

Stellen Sie Cloud-Ressourcen bereit, wenn Sie von Amazon Web Services migrieren