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:
-
Stellen Sie mit Secure Shell (SSH) eine Verbindung zur Cloud Servers-Instanz her, indem Sie die RackspacePublicNet-URL und das Root-Passwort verwenden.
-
Geben Sie das Root-Passwort ein, um sich anzumelden.
-
Installieren Sie OpenJDK 7, indem Sie den folgenden Befehl eingeben:
sudo yum install java-1.7.0-openjdk-devel
-
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:
-
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 ). -
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
-
Ändern Sie die Berechtigungen, indem Sie den folgenden Befehl eingeben:
sudo chmod 775 apache-tomcat-7.0.39.tar.gz
-
Extrahieren Sie den Dateiinhalt, indem Sie den folgenden Befehl eingeben:
sudo tar zxvf apache-tomcat-7.0.39.tar.gz
-
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
-
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
-
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
-
Speichern Sie Ihre Änderungen und beenden Sie die Datei.
-
Automatisieren Sie den Start von Tomcat, indem Sie die folgenden Befehle eingeben:
cd /etc/init.d sudo vi tomcat
-
Fügen Sie der Datei die folgenden Informationen hinzu. Stellen Sie sicher, dass
JAVA_HOME
,TOMCAT_HOME
,START_TOMCAT
undSTOP_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
-
Speichern Sie Ihre Änderungen und beenden Sie die Datei.
-
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
-
Da Tomcat auf Port 8080 ausgeführt wird, müssen Sie sicherstellen, dass iptables die Konnektivität nicht beeinträchtigt.
-
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.
-
Verwenden Sie den folgenden Befehl, um den OpenStack Swift-Client zu installieren:
sudo yum install python-novaclient python-glanceclient swift
-
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 folgendensource
neu laden Befehl, ersetzen Sie.bash\_profile
für.bashrc
ggf.:source .bashrc
-
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:
-
Verwenden Sie die folgenden Befehle, um über SSH eine Verbindung zu Ihrer EC2-Instance herzustellen:
ssh -i yourPrivateKey.pem [email protected]
-
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
-
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/*
-
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:
-
Über Produkt auswählen Wählen Sie im Dropdown-Menü RackspaceCloud> Storage> Files> containerName um Ihren Container zu öffnen.
-
Klicken Sie auf Dateien hochladen .
-
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).
-
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:
-
Stellen Sie mit SSH eine Verbindung zur Cloud Servers-Instanz her, indem Sie die PublicNetURL und das Root-Passwort verwenden.
-
Installieren und konfigurieren Sie die Swift-Befehlszeilenschnittstelle (CLI), indem Sie die Schritte im Abschnitt „Softwarepakete installieren“ dieses Artikels befolgen.
-
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. -
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>
-
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
-
Kopieren Sie die extrahierten Webanwendungsinhalte in die lokalen Tomcat
webapps
Verzeichnis und ändern Sie die Anwendungseigenschaften (einschließlichjdbc.url
, der Datenbank-Benutzername, das Datenbank-Passwort und andere Eigenschaften). -
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
-
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