Bagian sebelumnya: Sediakan sumber daya cloud saat bermigrasi dari Amazon Web Services
Skenario ini menunjukkan cara memigrasikan aplikasi Backbone.js, Node.js, dan MongoDB® dari Amazon Web Services (AWS) ke Rackspace Cloud. Dibutuhkan sekitar 30 menit untuk menyelesaikannya.
Diagram berikut menunjukkan topologi aplikasi:
Prasyarat
Skenario ini memiliki prasyarat berikut:
- Stack aplikasi di AWS dengan akses root atau hak istimewa yang sesuai untuk masing-masing instans dan layanan.
- Akun yang valid dan aktif di Rackspace Cloud.
Persiapan
Selesaikan langkah-langkah berikut sebelum Anda memulai skenario:
- 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 Amazon Elastic Compute Cloud (EC2) Anda selain Backbone.js, Node.js, dan MongoDB.
- Buat daftar semua layanan Amazon tambahan yang digunakan aplikasi Anda, seperti Simple Email Service (SES) untuk email atau Relational DatabaseService (RDS) untuk database.
- Jika Anda belum melakukannya, buat instance Cloud Server dan semua layanan Rackspace Cloud yang mendukung.
Instal paket perangkat lunak
Bagian ini memberikan petunjuk untuk menginstal paket perangkat lunak yang diperlukan dan opsional.
Instal Git dan cURL
Anda perlu menggunakan Git dan cURL untuk mendapatkan komponen dependen seperti Node.js.
Jalankan perintah berikut untuk menginstal git dan cURL:
sudo apt-get -y install git curl
Instal Python (opsional)
Ubuntu® versi 12.0.4 Dukungan Jangka Panjang (LTS) termasuk Python®versi 2.7.2. Jika Anda memerlukan versi yang berbeda, Anda dapat menginstalnya dari halaman unduhan Python.
Instal OpenJDK
Gunakan langkah-langkah berikut untuk menginstal OpenJDK™:
-
Menggunakan Secure Shell (SSH), sambungkan ke instance Server Cloud dengan menggunakan URL PublicNet dan kata sandi root.
-
Instal OpenJDK 7 dengan memasukkan perintah berikut:
sudo apt-get -y install openjdk-7-jre
-
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-amd64
:/etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java*
Instal Tomcat 7 di server awan
Gunakan langkah-langkah berikut untuk menginstal Apache® Tomcat®:
-
Masukkan perintah berikut untuk menginstal Tomcat 7:
sudo apt-get -y install tomcat7
Jika Anda ingin menginstal versi Tomcat yang berbeda atau menginstal Tomcat secara manual, pilih versi dari halaman Unduhan Perangkat Lunak Tomcat 7.
-
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 ). -
Ubah direktori menjadi
/usr/share
(atau direktori yang ingin Anda gunakan) dan unduh file biner dengan memasukkan perintah berikut: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 Tomcat diekstrak, hapus
tar.gz
file untuk menghemat ruang dengan memasukkan perintah berikut: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 tepat 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 menggunakan 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, pastikan iptables tidak mengganggu konektivitas.
Untuk mempelajari tentang iptables, lihat Pengantar iptables.
-
Uji Tomcat dengan mencari alamat Internet Protocol (IP) untuk cloudserver dari Rackspace Cloud Control Panel dan membuka URL di browser (misalnya, https://
:8080/ ).Halaman arahan Apache Tomcat muncul.
Catatan :Anda dapat memulai dan menghentikan Tomcat dengan menggunakan perintah berikut:
sudo /sbin/service tomcat stop sudo /sbin/service tomcat start
Instal MongoDB di server cloud Anda
Anda dapat menemukan petunjuk untuk menginstal MongoDB di Rackspace Cloud di situs web Dokumentasi MongoDB.
Untuk penerapan produksi, Anda harus menggunakan set replika dengan setidaknya tiga node.
Untuk instalasi single-node, lakukan langkah-langkah berikut:
-
Tambahkan kunci GNU Privacy Guard (GPG) ke
apt-get
untuk membuat tepercaya sumber dengan memasukkan perintah berikut:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
-
Gunakan perintah berikut untuk membuat
10gen
khusus file repositori yang berisi lokasi file biner 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'
-
Perbarui
apt-get
untuk mengambil paket baru dengan memasukkan perintah berikut:sudo apt-get -y update
-
Instal MongoDB dengan memasukkan perintah berikut:
sudo apt-get -y install mongodb-10gen
-
Verifikasi bahwa MongoDB berjalan dengan memasukkan perintah berikut:
ps aux | grep mongo
Catatan :MongoDB menggunakan /var/lib/mongodb
sebagai jalur data default. Jika Anda ingin mengubah jalur ini, Anda dapat mematikan instance MongoDB dan memperbarui file konfigurasi di /etc/mongodb.conf
.
Siapkan server Node.js
Jika layanan Anda didukung oleh Node.js alih-alih Python, gunakan langkah-langkah berikut untuk menyiapkan server Node.js di instans cloud Anda:
-
Instal Node.js dengan memasukkan perintah berikut:
sudo apt-get -y install nodejs npm
-
Uji instalasi dengan menggunakan perintah berikut untuk mendapatkan versi Node.js yang Anda jalankan:
node --version
Instal OpenStack Swift (opsional)
Jika Anda berencana menggunakan Cloud Files untuk mentransfer data Anda, gunakan langkah-langkah berikut untuk menginstal klien OpenStack® Swift untuk mengaktifkan akses dari server Anda:
-
Instal klien Swift dengan memasukkan perintah berikut:
sudo apt-get install python-novaclient glance-client swift
-
Setel variabel lingkungan yang diperlukan dengan menjalankan perintah berikut, dengan mengganti nama pengguna dan kunci antarmuka pemrograman aplikasi (API):
export ST_USER=<yourLoginUsername> export ST_KEY=<yourApiKey> export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
Anda mungkin ingin mendefinisikan variabel ini di
.bashrc
atau.bash\_profile
file, lalu muat ulang file dengansource
berikut perintah, menggantikan.bash\_profile
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
Bagian ini menunjukkan cara mencadangkan data dari AWS ke Rackspace Cloud Files.Contohnya menggunakan wadah yang ada bernama AppData.
Pertama, ambil data Anda dari EC2. Anda dapat mentransfer data secara langsung dengan salah satu cara berikut:
-
Gunakan rsyncor SSH File Transfer Protocol (SFTP).
-
Gunakan klien OpenStack Swift untuk mentransfer data Anda ke Cloud Files, lalu transfer dari Cloud Files ke Cloud Server.
Untuk menggunakan File Cloud, ikuti langkah-langkah persiapan berikut:
-
Menggunakan SSH, sambungkan ke instans EC2 Anda dengan memasukkan perintah berikut:
ssh -i your_private_key.pem [email protected]
-
Lakukan dump dari MongoDB. Gunakan
-host
dan-port
options jika MongoDB berjalan pada instance yang berbeda, seperti yang ditunjukkan pada contoh berikut: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/*
-
Gunakan perintah berikut untuk mencadangkan aplikasi Anda dan semua sumber daya yang dibutuhkan aplikasi, termasuk log dan direktori lain:
# 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/*
-
Jika Anda menggunakan File Cloud untuk mentransfer file Anda, gunakan salah satu metode berikut untuk melakukan transfer. Jika Anda menggunakan rsync atau SFTP, selesaikan transfer dan lewati ke bagian akhir artikel ini.
-
Unggah arsip Anda ke wadah Cloud Files dengan menggunakan klien Swift dan perintah berikut:
swift upload AppData backbonedb-2013-05-03.tar.gz swift upload AppData backhone.tar.gz swift upload AppData nodejs.tar.gz
-
Gunakan langkah-langkah berikut untuk mengunggah data Anda ke File Cloud dengan menggunakan Panel Kontrol Cloud:
-
Masuk ke Panel Kontrol Cloud.
-
Di bilah navigasi atas, klik Pilih Produk> RackspaceCloud .
-
Pilih Penyimpanan> File> Nama penampung untuk membuka wadah Anda.
-
Klik Unggah File .
-
Klik Jelajahi dan pilih file yang ingin Anda unggah. Kemudian klik Buka atau Pilih (tergantung pada browser dan sistem Anda).
-
Klik Unggah File .
-
-
Pulihkan data dari File Cloud ke Server Cloud
Jika Anda mengunggah data Anda ke Cloud Files, transfer ke CloudServers dengan menggunakan langkah-langkah berikut:
-
Menggunakan SSH, sambungkan ke instance Server Cloud dengan menggunakan URLPublicNet dan kata sandi root.
-
Instal dan konfigurasikan antarmuka baris perintah (CLI) Swift seperti yang dijelaskan di bagian “Menginstal paket perangkat lunak”.
-
Jalankan
swift list
perintah dan pastikan Anda melihat wadah baru yang Anda buat di hasil. -
Unduh dump database dari cadangan yang Anda ambil di bagian “Cadangkan data dari AWS ke File Cloud Rackspace” dan pulihkan secara lokal dengan menggunakan perintah berikut:
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
-
Unduh data (Backbone.js dan Node.js) dan pulihkan dengan menggunakan perintah berikut:
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
-
Mulai layanan aplikasi dengan menggunakan perintah berikut:
sudo service tomcat7 start cd /usr/local/nodejs/YOURAPP/ sudo node server.js
Uji aplikasi Anda
Navigasikan ke https://
Langkah selanjutnya
Pertimbangan pascamigrasi saat bermigrasi dari Amazon Web Services
Untuk skenario migrasi lainnya, lihat artikel berikut:
- Migrasikan aplikasi .NET dari Amazon Web Services
- Migrasikan aplikasi web Java dari Amazon Web Services