前のセクション: アマゾンウェブサービスから移行するときにクラウドリソースをプロビジョニングする
このシナリオでは、Backbone.js、Node.js、MongoDB®アプリケーションをAmazon Web Services(AWS)からRackspaceCloudに移行する方法を示します。完了するまでに約30分かかります。
次の図は、アプリケーションのトポロジを示しています。
このシナリオには、次の前提条件があります。
- ルートアクセスまたは個々のインスタンスとサービスに対する適切な権限を持つAWS上のアプリケーションスタック。
- RackspaceCloudで有効で有効なアカウント。
シナリオを開始する前に、次の手順を実行してください。
- アプリケーションやデータベースのリソースなど、移行するリソースを特定します。
- Backbone.js、Node.js、MongoDB以外のAmazon Elastic Compute Cloud(EC2)インスタンスにインストールされている必要なすべてのソフトウェアパッケージのリストを作成します。
- メール用のSimpleEmailService(SES)やデータベース用のRelational DatabaseService(RDS)など、アプリケーションが使用するすべての追加のAmazonサービスのリストを作成します。
- まだ作成していない場合は、CloudServerインスタンスとサポートするRackspaceCloudサービスを作成します。
このセクションでは、必須およびオプションのソフトウェアパッケージをインストールする手順について説明します。
GitとcURLをインストールする
Node.jsなどの依存コンポーネントを取得するには、GitとcURLを使用する必要があります。
次のコマンドを実行して、gitとcURLをインストールします。
sudo apt-get -y install git curl
Pythonのインストール(オプション)
Ubuntu®バージョン12.0.4ロングタームサポート(LTS)には、Python®バージョン2.7.2が含まれています。別のバージョンが必要な場合は、Pythonダウンロードページからインストールできます。
次の手順を使用して、OpenJDK™をインストールします。
-
Secure Shell(SSH)を使用して、PublicNetURLとrootパスワードを使用してCloudServersインスタンスに接続します。
-
次のコマンドを入力して、OpenJDK7をインストールします。
sudo apt-get -y install openjdk-7-jre
-
JAVA_HOME
の場所を特定します 次のコマンドを入力して:ll /etc/alternatives/java
次の出力例では、
JAVA_HOME
/usr/lib/jvm/jre-1.7.0-openjdk-amd64
にあります。 :/etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java*
次の手順を使用して、Apache®Tomcat®をインストールします。
-
次のコマンドを入力して、Tomcat7をインストールします。
sudo apt-get -y install tomcat7
別のバージョンのTomcatをインストールする場合、またはTomcatを手動でインストールする場合は、Tomcat7ソフトウェアのダウンロードページからバージョンを選択してください。
-
tar.gz
のURLをコピーします ファイル(たとえば、 https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz 。 -
ディレクトリを
/usr/share
に変更します (または使用するディレクトリ)そして、次のコマンドを入力してバイナリファイルをダウンロードします: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
-
次のコマンドを入力して、権限を変更します。
sudo chmod 775 apache-tomcat-7.0.39.tar.gz
-
次のコマンドを入力して、ファイルの内容を抽出します。
sudo tar zxvf apache-tomcat-7.0.39.tar.gz
-
Tomcatが抽出されたら、
tar.gz
を削除します 次のコマンドを入力してスペースを節約するファイル:sudo rm apache-tomcat-7.0.39.tar.gz
-
catalina.sh
で環境変数を設定します 次のコマンドを入力してファイルを作成します:cd /usr/share/apache-tomcat-7.0.39/bin sudo vi catalina.sh
-
\#!/bin/sh
の直後に次の行を追加します :JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
-
変更を保存してファイルを終了します。
-
次のコマンドを使用して、Tomcatの起動を自動化します。
cd /etc/init.d sudo vi tomcat
-
次の情報をファイルに追加します。
JAVA_HOME
であることを確認してください 、TOMCAT_HOME
、START_TOMCAT
、およびSTOP_TOMCAT
正しいディレクトリを参照してください。#!/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
-
変更を保存してファイルを終了します。
-
次のコマンドを入力して、ファイルのアクセス許可を設定し、Tomcatをシステムサービスとして設定し、設定をテストします。
sudo chmod 755 tomcat sudo /sbin/chkconfig --add tomcat sudo /sbin/chkconfig --level 234 tomcat on sudo /sbin/chkconfig --list tomcat
出力は次の例のようになります。
tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
-
Tomcatはポート8080で実行されているため、iptablesが接続に干渉しないようにしてください。
iptablesについては、「iptablesの概要」を参照してください。
-
Rackspace Cloudコントロールパネルからクラウドサーバーのインターネットプロトコル(IP)アドレスを検索し、ブラウザーでURLを開いてTomcatをテストします(例: https://
:8080 / 。ApacheTomcatのランディングページが表示されます。
注 :次のコマンドを使用して、Tomcatを起動および停止できます。
sudo /sbin/service tomcat stop sudo /sbin/service tomcat start
ラックスペースクラウドにMongoDBをインストールする手順については、MongoDBドキュメントのWebサイトを参照してください。
実稼働環境では、少なくとも3つのノードを持つレプリカセットを使用する必要があります。
シングルノードインストールの場合は、次の手順を実行します。
-
GNU Privacy Guard(GPG)キーを
apt-get
に追加します 信頼できるを作成する 次のコマンドを入力してソースを作成します:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
-
次のコマンドを使用して、カスタムの
10gen
を作成します 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'
-
apt-get
を更新します 次のコマンドを入力して、新しいパッケージを取得します。sudo apt-get -y update
-
次のコマンドを入力して、MongoDBをインストールします。
sudo apt-get -y install mongodb-10gen
-
次のコマンドを入力して、MongoDBが実行されていることを確認します。
ps aux | grep mongo
注 :MongoDBは/var/lib/mongodb
を使用します デフォルトのデータパスとして。このパスを変更したい場合は、MongoDBインスタンスをシャットダウンし、/etc/mongodb.conf
にある構成ファイルを更新できます。 。
Node.jsサーバーをセットアップする
サービスがPythonではなくNode.jsによってサポートされている場合は、次の手順を使用して、クラウドインスタンスにNode.jsサーバーをセットアップします。
-
次のコマンドを入力して、Node.jsをインストールします。
sudo apt-get -y install nodejs npm
-
次のコマンドを使用してインストールをテストし、実行しているNode.jsのバージョンを取得します。
node --version
OpenStack Swiftのインストール(オプション)
Cloud Filesを使用してデータを転送する場合は、次の手順を使用してOpenStack®Swiftクライアントをインストールし、サーバーからのアクセスを有効にします。
-
次のコマンドを入力して、Swiftクライアントをインストールします。
sudo apt-get install python-novaclient glance-client swift
-
次のコマンドを実行し、ユーザー名とアプリケーションプログラミングインターフェイス(API)キーを置き換えて、必要な環境変数を設定します。
export ST_USER=<yourLoginUsername> export ST_KEY=<yourApiKey> export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
これらの変数を
.bashrc
で定義することをお勧めします または.bash\_profile
ファイルを作成し、次のsource
を使用してファイルをリロードします コマンド、.bash\_profile
に置き換えます 必要に応じて:source .bashrc
-
swift list
と入力します データを保持するために作成したコンテナが表示されることを確認してください。
AWSからRackspaceクラウドファイルにデータをバックアップ
このセクションでは、AWSからRackspace Cloudファイルにデータをバックアップする方法を示します。この例では、AppDataという名前の既存のコンテナを使用しています。
まず、EC2からデータを取得します。次のいずれかの方法でデータを直接転送できます。
-
rsyncor SSHファイル転送プロトコル(SFTP)を使用します。
-
OpenStackSwiftクライアントを使用してデータをCloudFilesに転送してから、CloudFilesからCloudServerに転送します。
クラウドファイルを使用するには、次の準備手順に従います。
-
SSHを使用して、次のコマンドを入力してEC2インスタンスに接続します。
ssh -i your_private_key.pem [email protected]
-
MongoDBのダンプを実行します。
-host
を使用します および-port
次の例に示すように、MongoDBが別のインスタンスで実行されている場合のオプション: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/*
-
次のコマンドを使用して、アプリケーションと、ログやその他のディレクトリなど、アプリケーションに必要なリソースをバックアップします。
# 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/*
-
クラウドファイルを使用してファイルを転送している場合は、次のいずれかの方法を使用して転送を実行します。 rsyncまたはSFTPを使用している場合は、転送を完了して、この記事の最後のセクションにスキップしてください。
-
Swiftクライアントと次のコマンドを使用して、アーカイブをCloudFilesコンテナにアップロードします。
swift upload AppData backbonedb-2013-05-03.tar.gz swift upload AppData backhone.tar.gz swift upload AppData nodejs.tar.gz
-
クラウドコントロールパネルを使用してデータをクラウドファイルにアップロードするには、次の手順を使用します。
-
クラウドコントロールパネルにログインします。
-
上部のナビゲーションバーで、[製品の選択> RackspaceCloud]をクリックします 。
-
ストレージ>ファイル>コンテナ名を選択します コンテナを開きます。
-
ファイルのアップロードをクリックします 。
-
参照をクリックします アップロードするファイルを選択し、開くをクリックします。 または選択 (ブラウザとシステムによって異なります)。
-
ファイルのアップロードをクリックします 。
-
-
データをCloudFilesにアップロードした場合は、次の手順を使用してデータをCloudServersに転送します。
-
SSHを使用し、PublicNetURLとルートパスワードを使用してCloudServersインスタンスに接続します。
-
「ソフトウェアパッケージのインストール」セクションの説明に従って、Swiftコマンドラインインターフェイス(CLI)をインストールして構成します。
-
swift list
を実行します コマンドを実行し、作成した新しいコンテナが結果に表示されることを確認します。 -
「AWSからRackspaceCloudファイルへのデータのバックアップ」セクションで取得したバックアップからデータベースダンプをダウンロードし、次のコマンドを使用してローカルに復元します。
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
-
データ(Backbone.jsとNode.js)をダウンロードし、次のコマンドを使用して復元します:
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
-
次のコマンドを使用して、アプリケーションサービスを開始します。
sudo service tomcat7 start cd /usr/local/nodejs/YOURAPP/ sudo node server.js
https://
アマゾンウェブサービスから移行する際の移行後の考慮事項
その他の移行シナリオについては、次の記事を参照してください。
- アマゾンウェブサービスから.NETアプリケーションを移行する
- アマゾンウェブサービスからJavaウェブアプリケーションを移行する