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

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

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

この記事では、Apache®Tomcat®およびJava™ベースのSpring WebアプリケーションをAmazon®WebServices®(AWS)からRackspaceCloudに移行する方法を説明します。この例は、完了するまでに約30分かかります。

この例では、SpringPetClinicSampleApplicationを使用しています。

次の図は、アプリケーションのトポロジを示しています。

前提条件

この記事の例に従うには、次の前提条件が必要です。

  • ApacheTomcatでSpringWebアプリケーションを実行しているルートアクセスを備えたAWS上のAmazonElasticCompute Cloud(EC2)インスタンス。
  • RackspaceCloudで有効で有効なアカウント。
準備

演習の手順を実行する前に、次の手順を実行してください。

  • アプリケーションやデータベースのリソースなど、移行するリソースを特定します。
  • Springアプリケーションを除き、EC2インスタンスにインストールされている必要なすべてのソフトウェアパッケージのリストを作成します。
  • アプリケーションが使用するすべての追加のAmazonサーバーのリストを作成します(たとえば、電子メールの場合はSimple Email Server(SES)、データベースの場合はRelational Database Service(RDS))。
  • まだ作成していない場合は、CloudServerインスタンスとサポートするRackspaceCloudサービスを作成します。
ソフトウェアパッケージをインストールする

次のソフトウェアパッケージをインストールします。

  • Oracle®OpenJavaDevelopmentKit(OpenJDK™)
  • Apache Tomcat
  • OpenStack®Swift(オプション)
クラウドにOpenJDKをインストールする

クラウドにOpenJDKをインストールするには、次の手順を実行します。

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

  2. ログインするにはrootパスワードを入力してください。

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

    sudo yum install java-1.7.0-openjdk-devel
    
  4. JAVA_HOMEの場所を特定します 次のコマンドを入力して:

    ll /etc/alternatives/java
    

    次の出力例では、JAVA_HOME /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
    
クラウドサーバーにTomcatをインストールする

次の手順を使用して、Tomcatをクラウドサーバーにインストールします。

  1. 使用するTomcatのバージョンをTomcat7SoftwareDownloadsページから右クリックし、tar.gzのURLをコピーします。 ファイル(たとえば、 https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz

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

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

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  5. Tomcatを抽出した後、次のコマンドを使用してtar.gzを削除します。 ファイルと空き容量:

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

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

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

  9. 次のコマンドを入力して、Tomcatの起動を自動化します。

     cd /etc/init.d
     sudo vi tomcat
    
  10. 次の情報をファイルに追加します。 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
    
  11. 変更を保存してファイルを終了します。

  12. 次のコマンドを入力して、ファイルのアクセス許可を設定し、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
    
  13. Tomcatはポート8080で実行されているため、iptablesが接続に干渉しないことを確認する必要があります。

  14. Tomcatをテストするには、クラウドコントロールパネルでCloudServerのインターネットプロトコル(IP)アドレスを検索し、ブラウザでURLを開きます(例:https://<ipAddress>:8080/ )。 ApacheTomcatのランディングページが表示されます。

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

    sudo /sbin/service tomcat stop
    sudo /sbin/service tomcat start
    

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

Cloud Filesを使用してデータを転送する場合は、OpenStackSwiftを使用してサーバーからのアクセスを有効にする必要があります。このセクションの手順に従って、OpenStackSwiftをインストールおよび構成します。

  1. 次のコマンドを使用して、OpenStackSwiftクライアントをインストールします。

     sudo yum install python-novaclient python-glanceclient swift
    
  2. 次のコマンドを実行し、Rackspace Cloudアカウントのユーザー名と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に置き換えます for .bashrc 必要に応じて:

         source .bashrc
    
  3. swift listと入力します データを保持するために作成したコンテナが表示されることを確認してください。

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

AWSEC2からデータを取得します。次のいずれかの方法を使用してデータを転送できます。

  • rsyncまたはSSHファイル転送プロトコル(SFTP)を使用してデータを直接転送します。
  • OpenStackSwiftクライアントを使用してデータをCloudFilesに転送してから、CloudFilesからCloudServerにデータを転送します。

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

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

    ssh -i yourPrivateKey.pem [email protected]
    
  2. 次のコマンドを使用して、データベースダンプを実行します。

    mysqldump -h <rdsHostname> -u <rdsUsername> -p --triggers --routines --databases petclinic | gzip > ~/petclinic.sql.gz
    
  3. 次のコマンドを使用して、アプリケーションと、ログやその他のディレクトリなど、アプリケーションに必要なその他のリソースをバックアップします。

    # Ensure that you have the correct tomcat7 directory
    sudo tar cvzf ~/tomcat.tar.gz /usr/share/tomcat7/webapps/*
    
  4. クラウドファイルを使用してファイルを転送している場合は、次のいずれかの方法を使用して転送を実行します。 rsyncまたはSFTPを使用してファイルを直接転送する場合は、この記事の最後のセクションにスキップしてください。

    • 次のコマンドを入力して、アーカイブをCloudFilesコンテナ(Tomcat)にアップロードします。 この例では)Swiftクライアントを使用して:

      swift upload Tomcat petclinic.sql.gz
      swift upload Tomcat tomcat.tar.gz
      
    • 次の手順を使用して、クラウドコントロールパネルからクラウドファイルにデータをアップロードします。

      1. 製品の選択から ドロップダウンメニューで、RackspaceCloud>ストレージ>ファイル>containerNameを選択します コンテナを開きます。

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

      3. 参照をクリックします 、アップロードする1つまたは複数のファイルを選択し、[開く]をクリックします。 、選択 、または選択 (使用しているブラウザとシステムによって異なります)。

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

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

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

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

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

  3. swift listを実行できることを確認してください コマンドを実行して、結果で作成した新しいコンテナを確認します。

  4. 次のコマンドを使用して、この記事の「AWSからRackspaceクラウドファイルへのデータのバックアップ」セクションで取得したバックアップからデータベースダンプをダウンロードし、ローカルに復元します。

    swift download Tomcat petclinic.sql.gz
    gunzip < petclinic.sql.gz | mysql -u <cloudDatabaseUsername> -p -h <cloudDatabaseHostname>
    
  5. 次のコマンドを使用して、Tomcatを停止し、アプリケーションファイルをダウンロードして抽出します。

    sudo /sbin/service tomcat stop
    swift download Tomcat tomcat.tar.gz
    tar -zxvf tomcat.tar.gz
    
  6. 抽出したWebアプリケーションのコンテンツをローカルのTomcatwebappsにコピーします ディレクトリを作成し、アプリケーションのプロパティを変更します(jdbc.urlを含む) 、データベースユーザー名、データベースパスワード、およびその他のプロパティ)。

  7. Spring Framework Petclinicサンプルで、次のファイルをコメントアウトします。

     petclinic/WEB-INF/classes/db/mysql/initDB.sql
     petclinic/WEB-INF/classes/db/mysql/populateDB.sql
    
  8. 次のコマンドを使用してTomcatを再起動します。

    sudo /sbin/service tomcat start
    
アプリケーションをテストする

https://<cloudServerIPAddress>:8080/petclinicでブラウザのWebアプリケーションにアクセスします 。

次のステップ

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

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

  • アマゾンウェブサービスから.NETアプリケーションを移行する
  • Amazon WebServicesからBackbone.js、Node.js、MongoDBに基づいてアプリケーションを移行します

Linux
  1. 解析からラックスペースへの移行

  2. アマゾンウェブサービスからRackspaceCloudに移行する

  3. Pitchfork-Rackspace CloudAPIWebアプリケーション

  1. クラウドファイルにCORSを設定する

  2. アマゾン ウェブ サービス コンソールでインスタンスにエフェメラル ストレージが接続されているかどうかを判断していますか?

  3. Java から Syscall を呼び出す

  1. CentOS8からRockyLinux8に移行する方法

  2. Rackspaceクラウドでアプリケーションを構築する

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