Bagian sebelumnya: Sediakan sumber daya cloud saat bermigrasi dari AmazonWebServices
Artikel ini menunjukkan cara memigrasikan aplikasi web Spring berbasis Apache® Tomcat® dan Java™ dari Amazon® Web Services®(AWS) ke Rackspace Cloud. Contoh ini membutuhkan waktu sekitar 30 menit untuk diselesaikan.
Contoh menggunakan Spring PetClinic SampleApplication.
Gambar berikut menunjukkan topologi aplikasi:
Prasyarat
Prasyarat berikut diperlukan untuk mengikuti contoh dalam artikel ini:
- Instans Amazon Elastic Compute Cloud (EC2) di AWS dengan akses rootyang menjalankan aplikasi web Spring di Apache Tomcat.
- Akun yang valid dan aktif di Rackspace Cloud.
Persiapan
Lakukan langkah-langkah berikut sebelum Anda mencoba mengikuti langkah-langkah dalam latihan:
- Identifikasi sumber daya yang ingin Anda migrasikan, termasuk sumber daya aplikasi dan basis data.
- Buat daftar semua paket perangkat lunak yang diperlukan yang diinstal pada instans EC2 Anda, selain aplikasi Spring Anda.
- Buat daftar semua server Amazon tambahan yang digunakan aplikasi (misalnya, Simple Email Server (SES) untuk email atau Relational Database Service (RDS) untuk database).
- Jika Anda belum melakukannya, buat instance Cloud Server dan semua layanan Rackspace Cloud yang mendukung.
Instal paket perangkat lunak
Instal paket perangkat lunak berikut:
- Oracle® Open Java Development Kit (OpenJDK™)
- Apache Tomcat
- OpenStack® Swift (opsional)
Instal OpenJDK di awan
Selesaikan langkah-langkah berikut untuk menginstal OpenJDK di cloud:
-
Menggunakan Secure Shell (SSH), sambungkan ke instance Cloud Server dengan menggunakan URL RackspacePublicNet dan kata sandi root.
-
Masukkan kata sandi root untuk masuk.
-
Instal OpenJDK 7 dengan memasukkan perintah berikut:
sudo yum install java-1.7.0-openjdk-devel
-
Tentukan lokasi
JAVA_HOME
dengan memasukkan perintah berikut:ll /etc/alternatives/java
Pada contoh output berikut,
JAVA_HOME
terletak di/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
Instal Tomcat di Server Cloud
Gunakan langkah-langkah berikut untuk menginstal Tomcat di Server Cloud:
-
Klik kanan versi Tomcat yang ingin Anda gunakan dari halaman Unduhan Perangkat Lunak Tomcat 7 dan salin URL
tar.gz
file (misalnya,https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ). -
Masukkan perintah berikut untuk mengubah direktori ke
/usr/share
(atau direktori yang ingin Anda gunakan) dan unduh file biner: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
-
Ubah izin dengan memasukkan perintah berikut:
sudo chmod 775 apache-tomcat-7.0.39.tar.gz
-
Ekstrak isi file dengan memasukkan perintah berikut:
sudo tar zxvf apache-tomcat-7.0.39.tar.gz
-
Setelah Anda mengekstrak Tomcat, gunakan perintah berikut untuk menghapus
tar.gz
file dan kosongkan ruang:sudo rm apache-tomcat-7.0.39.tar.gz
-
Setel variabel lingkungan di
catalina.sh
file dengan memasukkan perintah berikut:cd /usr/share/apache-tomcat-7.0.39/bin sudo vi catalina.sh
-
Tambahkan baris berikut ke
catalina.sh
file segera setelah\#!/bin/sh
:JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
-
Simpan perubahan Anda dan keluar dari file.
-
Otomatiskan startup Tomcat dengan memasukkan perintah berikut:
cd /etc/init.d sudo vi tomcat
-
Tambahkan informasi berikut ke file. Pastikan
JAVA_HOME
,TOMCAT_HOME
,START_TOMCAT
, danSTOP_TOMCAT
lihat direktori yang benar:#!/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
-
Simpan perubahan Anda dan keluar dari file.
-
Setel izin file, siapkan Tomcat sebagai layanan sistem, dan uji penyiapan dengan memasukkan perintah berikut:
sudo chmod 755 tomcat sudo /sbin/chkconfig --add tomcat sudo /sbin/chkconfig --level 234 tomcat on sudo /sbin/chkconfig --list tomcat
Outputnya harus mirip dengan contoh berikut:
tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
-
Karena Tomcat berjalan pada port 8080, Anda perlu memastikan bahwa iptables tidak mengganggu konektivitas.
-
Untuk menguji Tomcat, cari alamat Internet Protocol (IP) untuk CloudServer di Cloud Control Panel dan buka URL di browser (misalnya,
https://<ipAddress>:8080/
). Halaman arahan Apache Tomcat akan muncul.Catatan :Anda dapat menghentikan dan memulai Tomcat dengan menggunakan perintah berikut:
sudo /sbin/service tomcat stop sudo /sbin/service tomcat start
Instal OpenStack Swift (opsional)
Jika Anda berencana menggunakan Cloud Files untuk mentransfer data Anda, Anda perlu menggunakan OpenStack Swift untuk mengaktifkan akses dari server Anda. Ikuti langkah-langkah di bagian ini untuk menginstal dan mengkonfigurasi OpenStack Swift.
-
Gunakan perintah berikut untuk menginstal klien OpenStack Swift:
sudo yum install python-novaclient python-glanceclient swift
-
Setel variabel lingkungan yang diperlukan dengan menjalankan perintah berikut, dengan mengganti nama pengguna akun Rackspace Cloud dan kunci API Anda:
export ST_USER=<yourLoginUsername> export ST_KEY=<yourApiKey> export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
Anda mungkin ingin mendefinisikan variabel-variabel ini di
.bashrc
. Anda atau.bash\_profile
mengajukan. Jika Anda melakukan langkah ini, Anda harus memuat ulang file dengansource
berikut perintah, menggantikan.bash\_profile
untuk.bashrc
jika perlu:source .bashrc
-
Ketik
swift list
dan pastikan Anda dapat melihat wadah yang Anda buat untuk menyimpan data Anda.
Cadangkan data dari AWS ke File Cloud Rackspace
Ambil data Anda dari AWS EC2. Anda dapat menggunakan salah satu metode berikut untuk mentransfer data:
- Transfer data secara langsung menggunakan rsync atau SSH File Transfer Protocol (SFTP).
- Gunakan klien OpenStack Swift untuk mentransfer data Anda ke Cloud Files, lalu transfer data dari Cloud Files ke Cloud Server.
Selesaikan langkah-langkah persiapan berikut untuk menggunakan File Cloud:
-
Gunakan perintah berikut untuk terhubung ke instans EC2 Anda dengan menggunakan SSH:
ssh -i yourPrivateKey.pem [email protected]
-
Lakukan dump database dengan menggunakan perintah berikut:
mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
-
Gunakan perintah berikut untuk mencadangkan aplikasi Anda dan semua sumber daya lain yang dibutuhkan aplikasi, termasuk log dan direktori lain:
# Ensure that you have the correct tomcat7 directory sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
-
Jika Anda menggunakan File Cloud untuk mentransfer file Anda, gunakan salah satu metode berikut untuk melakukan transfer. Jika Anda mentransfer file secara langsung menggunakan rsync atau SFTP, lewati ke bagian terakhir artikel ini.
-
Masukkan perintah berikut untuk mengunggah arsip Anda ke wadah CloudFiles (
Tomcat
dalam contoh ini) dengan menggunakan klienSwift:swift upload Tomcat petclinic.sql.gz swift upload Tomcat tomcat.tar.gz
-
Gunakan langkah-langkah berikut untuk mengunggah data Anda ke File Cloud melalui Panel Kontrol Cloud:
-
Dari Pilih Produk menu tarik-turun, pilih RackspaceCloud> Storage> Files> containerName untuk membuka wadah Anda.
-
Klik Unggah File .
-
Klik Jelajahi , pilih file atau file yang ingin Anda unggah, dan klik Buka , Pilih , atau Pilih (tergantung pada browser dan sistem yang Anda gunakan).
-
Klik Unggah File .
-
-
Pulihkan data dari File Cloud ke Server Cloud
Jika Anda mengunggah data Anda ke File Cloud, gunakan langkah-langkah berikut untuk mentransfernya ke Server Cloud Anda:
-
Menggunakan SSH, sambungkan ke instance Cloud Server dengan menggunakan PublicNetURL dan kata sandi root.
-
Instal dan konfigurasikan antarmuka baris perintah (CLI) Swift dengan mengikuti langkah-langkah di bagian “Menginstal paket perangkat lunak” di artikel ini.
-
Pastikan Anda dapat menjalankan
swift list
perintah dan lihat wadah baru yang Anda buat di hasil. -
Gunakan perintah berikut untuk mengunduh dump database dari cadangan yang Anda ambil di bagian “Cadangkan data dari AWS ke File Cloud Rackspace” pada artikel ini dan pulihkan secara lokal:
swift download Tomcat petclinic.sql.gz gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
-
Gunakan perintah berikut untuk menghentikan Tomcat dan mengunduh serta mengekstrak file aplikasi:
sudo /sbin/service tomcat stop swift download Tomcat tomcat.tar.gz tar -zxvf tomcat.tar.gz
-
Salin konten aplikasi web yang diekstrak ke Tomcat
webapps
lokal direktori dan memodifikasi properti aplikasi (termasukjdbc.url
, nama pengguna basis data, kata sandi basis data, dan properti lainnya). -
Dalam contoh Spring Framework Petclinic, beri komentar pada file berikut:
petclinic/WEB-INF/classes/db/mysql/initDB.sql petclinic/WEB-INF/classes/db/mysql/populateDB.sql
-
Gunakan perintah berikut untuk memulai ulang Tomcat:
sudo /sbin/service tomcat start
Uji aplikasi Anda
Akses aplikasi web di browser Anda dihttps://<cloudServerIPAddress>:8080/petclinic
.
Langkah selanjutnya
Pertimbangan pascamigrasi saat bermigrasi dari Amazon WebServices
Untuk skenario migrasi lainnya, lihat artikel berikut:
- Migrasikan aplikasi .NET dari Amazon WebServices
- Memigrasikan aplikasi berdasarkan Backbone.js, Node.js, dan MongoDB dari Layanan Web Amazon