Předchozí sekce: Poskytování cloudových zdrojů při migraci z AmazonWebServices
Tento článek ukazuje, jak migrovat webovou aplikaci Spring založenou na Apache® Tomcat® a Java™ z Amazon® Web Services® (AWS) do Rackspace Cloud. Dokončení tohoto příkladu trvá asi 30 minut.
Příklad používá Spring PetClinic SampleApplication.
Následující obrázek ukazuje topologii aplikace:
Předpoklady
Abyste mohli postupovat podle příkladu v tomto článku, jsou vyžadovány následující předpoklady:
- Instance Amazon Elastic Compute Cloud (EC2) na AWS s přístupem root, na které je spuštěna webová aplikace Spring na Apache Tomcat.
- Platný a povolený účet v cloudu Rackspace.
Příprava
Než se pokusíte postupovat podle kroků ve cvičení, proveďte následující kroky:
- Identifikujte prostředky, které chcete migrovat, včetně prostředků aplikací a databáze.
- Vytvořte seznam všech nezbytných softwarových balíčků, které jsou nainstalovány ve vaší instanci EC2, jiné než je vaše aplikace Spring.
- Vytvořte seznam všech dalších serverů Amazon, které aplikace používá (například Simple Email Server (SES) pro e-mail nebo Relational Database Service (RDS) pro databáze).
- Pokud jste to ještě neudělali, vytvořte instanci cloudového serveru a všechny podpůrné cloudové služby Rackspace.
Instalovat softwarové balíčky
Nainstalujte následující softwarové balíčky:
- Oracle® Open Java Development Kit (OpenJDK™)
- Apache Tomcat
- OpenStack® Swift (volitelné)
Instalovat OpenJDK do cloudu
Chcete-li nainstalovat OpenJDK do cloudu, proveďte následující kroky:
-
Pomocí Secure Shell (SSH) se připojte k instanci Cloud Servers pomocí adresy URL RackspacePublicNet a hesla root.
-
Pro přihlášení zadejte heslo uživatele root.
-
Nainstalujte OpenJDK 7 zadáním následujícího příkazu:
sudo yum install java-1.7.0-openjdk-devel
-
Určete umístění
JAVA_HOME
zadáním následujícího příkazu:ll /etc/alternatives/java
V následujícím příkladu výstupu
JAVA_HOME
se nachází na adrese/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
Instalovat Tomcat na cloudový server
Chcete-li nainstalovat Tomcat na cloudový server, použijte následující kroky:
-
Na stránce Tomcat 7Software Downloads klikněte pravým tlačítkem na verzi Tomcat, kterou chcete použít, a zkopírujte adresu URL
tar.gz
soubor (napříkladhttps://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ). -
Chcete-li změnit adresář na
/usr/share
, zadejte následující příkazy (nebo adresář, který chcete použít) a stáhněte si binární soubor: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
-
Změňte oprávnění zadáním následujícího příkazu:
sudo chmod 775 apache-tomcat-7.0.39.tar.gz
-
Extrahujte obsah souboru zadáním následujícího příkazu:
sudo tar zxvf apache-tomcat-7.0.39.tar.gz
-
Po extrahování Tomcatu použijte následující příkaz k odstranění
tar.gz
soubor a uvolněte místo:sudo rm apache-tomcat-7.0.39.tar.gz
-
Nastavte proměnné prostředí v
catalina.sh
soubor zadáním následujících příkazů:cd /usr/share/apache-tomcat-7.0.39/bin sudo vi catalina.sh
-
Přidejte následující řádek do
catalina.sh
soubor bezprostředně za\#!/bin/sh
:JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
-
Uložte změny a ukončete soubor.
-
Automatizujte spouštění Tomcat zadáním následujících příkazů:
cd /etc/init.d sudo vi tomcat
-
Přidejte do souboru následující informace. Ujistěte se, že
JAVA_HOME
,TOMCAT_HOME
,START_TOMCAT
aSTOP_TOMCAT
viz správné adresáře:#!/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
-
Uložte změny a ukončete soubor.
-
Nastavte oprávnění k souborům, nastavte Tomcat jako systémovou službu a otestujte nastavení zadáním následujících příkazů:
sudo chmod 755 tomcat sudo /sbin/chkconfig --add tomcat sudo /sbin/chkconfig --level 234 tomcat on sudo /sbin/chkconfig --list tomcat
Výstup by měl být podobný následujícímu příkladu:
tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
-
Protože Tomcat běží na portu 8080, musíte zajistit, aby iptables nerušilo připojení.
-
Chcete-li Tomcat otestovat, vyhledejte adresu internetového protokolu (IP) cloudového serveru v ovládacím panelu cloudu a otevřete adresu URL v prohlížeči (například
https://<ipAddress>:8080/
). Měly by se objevit vstupní stránky Apache Tomcat.Poznámka :Tomcat můžete zastavit a spustit pomocí následujících příkazů:
sudo /sbin/service tomcat stop sudo /sbin/service tomcat start
Instalovat OpenStack Swift (volitelné)
Pokud plánujete k přenosu dat používat Cloud Files, musíte k povolení přístupu ze serveru použít OpenStack Swift. Při instalaci a konfiguraci OpenStack Swift postupujte podle kroků v této části.
-
K instalaci klienta OpenStack Swift použijte následující příkaz:
sudo yum install python-novaclient python-glanceclient swift
-
Nastavte potřebné proměnné prostředí spuštěním následujících příkazů, které nahradí uživatelské jméno účtu Rackspace Cloud a klíč API:
export ST_USER=<yourLoginUsername> export ST_KEY=<yourApiKey> export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
Možná budete chtít definovat tyto proměnné v
.bashrc
nebo.bash\_profile
soubor. Pokud provedete tento krok, musíte znovu načíst soubor s následujícímsource
příkaz nahrazující.bash\_profile
pro.bashrc
v případě potřeby:source .bashrc
-
Zadejte
swift list
a ujistěte se, že vidíte kontejner, který jste vytvořili pro uložení vašich dat.
Zálohování dat z AWS do Rackspace Cloud Files
Získejte svá data z AWS EC2. K přenosu dat můžete použít jednu z následujících metod:
- Přenášejte data přímo pomocí rsync nebo SSH File Transfer Protocol (SFTP).
- Pomocí klienta OpenStack Swift přeneste svá data do Cloud Files a poté přeneste data z Cloud Files na Cloud Server.
Chcete-li používat Cloud Files, proveďte následující přípravné kroky:
-
K připojení k instanci EC2 pomocí SSH použijte následující příkazy:
ssh -i yourPrivateKey.pem [email protected]
-
Proveďte výpis databáze pomocí následujícího příkazu:
mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
-
Pomocí následujícího příkazu zálohujte svou aplikaci a jakékoli další zdroje, které aplikace potřebuje, včetně protokolů a dalších adresářů:
# Ensure that you have the correct tomcat7 directory sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
-
Pokud k přenosu souborů používáte Cloud Files, proveďte přenos jedním z následujících způsobů. Pokud přenášíte soubory přímo pomocí rsync nebo SFTP, přeskočte na poslední část tohoto článku.
-
Zadáním následujících příkazů nahrajete své archivy do kontejneru CloudFiles (
Tomcat
v tomto příkladu) pomocí klienta Swift:swift upload Tomcat petclinic.sql.gz swift upload Tomcat tomcat.tar.gz
-
Pomocí následujících kroků nahrajte svá data do Cloud Files prostřednictvím ovládacího panelu Cloud:
-
V části Vyberte produkt v rozbalovací nabídce vyberte RackspaceCloud> Úložiště> Soubory> Název kontejneru otevřete kontejner.
-
Klikněte na Nahrát soubory .
-
Klikněte na Procházet , vyberte soubor nebo soubory, které chcete nahrát, a klikněte na Otevřít , Vyberte nebo Vybrat (v závislosti na prohlížeči a systému, který používáte).
-
Klikněte na Nahrát soubor .
-
-
Obnovení dat z cloudových souborů na cloudové servery
Pokud jste svá data nahráli do Cloud Files, použijte k přenosu na váš cloudový server následující kroky:
-
Pomocí SSH se připojte k instanci Cloud Servers pomocí PublicNetURL a hesla root.
-
Nainstalujte a nakonfigurujte rozhraní příkazového řádku (CLI) Swift podle kroků v části „Instalace softwarových balíčků“ tohoto článku.
-
Ujistěte se, že můžete spustit
swift list
a ve výsledcích uvidíte nový kontejner, který jste vytvořili. -
Pomocí následujících příkazů stáhněte výpis databáze ze zálohy, kterou jste pořídili v části „Zálohování dat z AWS do souborů Rackspace Cloud Files“ v tomto článku, a obnovte jej lokálně:
swift download Tomcat petclinic.sql.gz gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
-
Chcete-li zastavit Tomcat a stáhnout a extrahovat soubory aplikace, použijte následující příkazy:
sudo /sbin/service tomcat stop swift download Tomcat tomcat.tar.gz tar -zxvf tomcat.tar.gz
-
Zkopírujte extrahovaný obsah webové aplikace do místních
webapps
Tomcat adresář a upravte vlastnosti aplikace (včetnějdbc.url
, uživatelské jméno databáze, heslo databáze a další vlastnosti). -
V ukázce Spring Framework Petclinic zakomentujte následující soubory:
petclinic/WEB-INF/classes/db/mysql/initDB.sql petclinic/WEB-INF/classes/db/mysql/populateDB.sql
-
Pomocí následujícího příkazu restartujte Tomcat:
sudo /sbin/service tomcat start
Otestujte svou aplikaci
Otevřete webovou aplikaci ve svém prohlížeči na adresehttps://<cloudServerIPAddress>:8080/petclinic
.
Další krok
Aspekty po migraci při migraci z Amazon WebServices
Další scénáře migrace naleznete v následujících článcích:
- Migrujte aplikaci .NET z Amazon WebServices
- Migrujte aplikaci založenou na Backbone.js, Node.js a MongoDB z Amazon WebServices