GNU/Linux >> Linux の 問題 >  >> Linux

Backbone.js、Node.js、MongoDBに基づくアプリケーションをAmazonWebServicesから移行します

前のセクション: アマゾンウェブサービスから移行するときにクラウドリソースをプロビジョニングする

このシナリオでは、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をインストール

次の手順を使用して、OpenJDK™をインストールします。

  1. Secure Shell(SSH)を使用して、PublicNetURLとrootパスワードを使用してCloudServersインスタンスに接続します。

  2. 次のコマンドを入力して、OpenJDK7をインストールします。

     sudo apt-get -y install openjdk-7-jre
    
  3. 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*
    
クラウドサーバーにTomcat7をインストールします

次の手順を使用して、Apache®Tomcat®をインストールします。

  1. 次のコマンドを入力して、Tomcat7をインストールします。

     sudo apt-get -y install tomcat7
    

    別のバージョンのTomcatをインストールする場合、またはTomcatを手動でインストールする場合は、Tomcat7ソフトウェアのダウンロードページからバージョンを選択してください。

  2. tar.gzのURLをコピーします ファイル(たとえば、 https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz

  3. ディレクトリを/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
    
  4. 次のコマンドを入力して、権限を変更します。

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  5. 次のコマンドを入力して、ファイルの内容を抽出します。

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  6. Tomcatが抽出されたら、tar.gzを削除します 次のコマンドを入力してスペースを節約するファイル:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  7. catalina.shで環境変数を設定します 次のコマンドを入力してファイルを作成します:

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  8. \#!/bin/shの直後に次の行を追加します :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  9. 変更を保存してファイルを終了します。

  10. 次のコマンドを使用して、Tomcatの起動を自動化します。

    cd /etc/init.d
    sudo vi tomcat
    
  11. 次の情報をファイルに追加します。 JAVA_HOMEであることを確認してください 、TOMCAT_HOMESTART_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
    
  12. 変更を保存してファイルを終了します。

  13. 次のコマンドを入力して、ファイルのアクセス許可を設定し、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
    
  14. Tomcatはポート8080で実行されているため、iptablesが接続に干渉しないようにしてください。

    iptablesについては、「iptablesの概要」を参照してください。

  15. Rackspace Cloudコントロールパネルからクラウドサーバーのインターネットプロトコル(IP)アドレスを検索し、ブラウザーでURLを開いてTomcatをテストします(例: https:// :8080 /

    ApacheTomcatのランディングページが表示されます。

    :次のコマンドを使用して、Tomcatを起動および停止できます。

    sudo /sbin/service tomcat stop
    sudo /sbin/service tomcat start
    
クラウドサーバーにMongoDBをインストールします

ラックスペースクラウドにMongoDBをインストールする手順については、MongoDBドキュメントのWebサイトを参照してください。

実稼働環境では、少なくとも3つのノードを持つレプリカセットを使用する必要があります。

シングルノードインストールの場合は、次の手順を実行します。

  1. GNU Privacy Guard(GPG)キーをapt-getに追加します 信頼できるを作成する 次のコマンドを入力してソースを作成します:

     sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
    
  2. 次のコマンドを使用して、カスタムの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'
    
  3. apt-getを更新します 次のコマンドを入力して、新しいパッケージを取得します。

     sudo apt-get -y update
    
  4. 次のコマンドを入力して、MongoDBをインストールします。

     sudo apt-get -y install mongodb-10gen
    
  5. 次のコマンドを入力して、MongoDBが実行されていることを確認します。

     ps aux | grep mongo
    

:MongoDBは/var/lib/mongodbを使用します デフォルトのデータパスとして。このパスを変更したい場合は、MongoDBインスタンスをシャットダウンし、/etc/mongodb.confにある構成ファイルを更新できます。 。

Node.jsサーバーをセットアップする

サービスがPythonではなくNode.jsによってサポートされている場合は、次の手順を使用して、クラウドインスタンスにNode.jsサーバーをセットアップします。

  1. 次のコマンドを入力して、Node.jsをインストールします。

     sudo apt-get -y install nodejs npm
    
  2. 次のコマンドを使用してインストールをテストし、実行しているNode.jsのバージョンを取得します。

     node --version
    

OpenStack Swiftのインストール(オプション)

Cloud Filesを使用してデータを転送する場合は、次の手順を使用してOpenStack®Swiftクライアントをインストールし、サーバーからのアクセスを有効にします。

  1. 次のコマンドを入力して、Swiftクライアントをインストールします。

     sudo apt-get install python-novaclient glance-client swift
    
  2. 次のコマンドを実行し、ユーザー名とアプリケーションプログラミングインターフェイス(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
    
  3. swift listと入力します データを保持するために作成したコンテナが表示されることを確認してください。

AWSからRackspaceクラウドファイルにデータをバックアップ

このセクションでは、AWSからRackspace Cloudファイルにデータをバックアップする方法を示します。この例では、AppDataという名前の既存のコンテナを使用しています。

まず、EC2からデータを取得します。次のいずれかの方法でデータを直接転送できます。

  • rsyncor SSHファイル転送プロトコル(SFTP)を使用します。

  • OpenStackSwiftクライアントを使用してデータをCloudFilesに転送してから、CloudFilesからCloudServerに転送します。

クラウドファイルを使用するには、次の準備手順に従います。

  1. SSHを使用して、次のコマンドを入力してEC2インスタンスに接続します。

    ssh -i your_private_key.pem [email protected]
    
  2. 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/*
    
  3. 次のコマンドを使用して、アプリケーションと、ログやその他のディレクトリなど、アプリケーションに必要なリソースをバックアップします。

    # 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/*
    
  4. クラウドファイルを使用してファイルを転送している場合は、次のいずれかの方法を使用して転送を実行します。 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
      
    • クラウドコントロールパネルを使用してデータをクラウドファイルにアップロードするには、次の手順を使用します。

      1. クラウドコントロールパネルにログインします。

      2. 上部のナビゲーションバーで、[製品の選択> RackspaceCloud]をクリックします 。

      3. ストレージ>ファイル>コンテナ名を選択します コンテナを開きます。

      4. ファイルのアップロードをクリックします 。

      5. 参照をクリックします アップロードするファイルを選択し、開くをクリックします。 または選択 (ブラウザとシステムによって異なります)。

      6. ファイルのアップロードをクリックします 。

クラウドファイルからクラウドサーバーにデータを復元する

データをCloudFilesにアップロードした場合は、次の手順を使用してデータをCloudServersに転送します。

  1. SSHを使用し、PublicNetURLとルートパスワードを使用してCloudServersインスタンスに接続します。

  2. 「ソフトウェアパッケージのインストール」セクションの説明に従って、Swiftコマンドラインインターフェイス(CLI)をインストールして構成します。

  3. swift listを実行します コマンドを実行し、作成した新しいコンテナが結果に表示されることを確認します。

  4. 「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
    
  5. データ(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
    
  6. 次のコマンドを使用して、アプリケーションサービスを開始します。

    sudo service tomcat7 start
    cd /usr/local/nodejs/YOURAPP/
    sudo node server.js
    
アプリケーションをテストする

https:// / に移動します ブラウザウィンドウでアプリケーションにアクセスしてテストします。

次のステップ

アマゾンウェブサービスから移行する際の移行後の考慮事項

その他の移行シナリオについては、次の記事を参照してください。

  • アマゾンウェブサービスから.NETアプリケーションを移行する
  • アマゾンウェブサービスからJavaウェブアプリケーションを移行する

Linux
  1. Linuxにs3cmdをインストールし、Amazons3バケットを管理する

  2. Ubuntu20.04およびCentOS8にMongoDBをインストールする方法

  3. Ubuntu18.04にRedisをインストールして保護する方法

  1. Ubuntu20.04にMongoDBをインストールして使用する方法

  2. アマゾンウェブサービスから移行するためのハイレベルな手順

  3. アマゾンウェブサービスから移行する際の移行後の考慮事項

  1. Debian11にMongoDBをインストールして保護する方法

  2. Ubuntu20.04にMongoDBをインストールする方法

  3. CentOS8にMongoDB4をインストールして保護する方法