Webアプリケーションサーバの構築/EC2(2)
Apache Tomcat 7の起動
Tomcat 7のインストールおよび設定が完了したら、次のコマンドでTomcat 7サーバを起動します。
$ sudo service tomcat7 start Starting tomcat7: [ OK ]
EC2インスタンスを再起動した後も、Tomcat 7を自動起動させるため、次のコマンドを実行します。
$ sudo chkconfig tomcat7 on $ chkconfig --list |grep tomcat tomcat7 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Tomcat 7のインストールが完了したら動作確認をします。
Tomcat 7はポート番号8080を使用して通信を行いますので、次の書式でブラウザからアクセスします。
例えば、EC2インスタンスのPublic IPが54.238.252.107のときは、次のようなアクセスになります。
Webアプリケーションのデプロイ
まず、ダウンロードサンプルのwarファイルをEclipseなどのIDEで開きます。そして、サンプルのデータベース接続先のコードを次のように変更します。
public class TestModel { ~中略~ // 1.データベースの接続先情報を指定 private final static String URI = "jdbc:mysql://(RDSのEndpoint):3306/testdb"; // 2.データベースに接続するときのユーザ名とパスワードを指定 private final static String DBUSER = "dbuser"; private final static String PASSWORD = "password";
コードの説明をします。
1.データベースの接続先情報を指定
AWSのRDSに接続するための接続情報を次の書式で設定します。
例えば、RDSのEndpointがtestdb.xxx.rds.amazonaws.comでデータベースの名前がtestdbの場合は、
jdbc:mysql://testdb.xxx.rds.amazonaws.com:3306/testdb
と指定します。
2. データベースに接続するときのユーザ名とパスワードを指定
データベースに接続するためのユーザ名とパスワードを指定します。これはRDSインスタンスを生成したときに、AWSマネジメントコンソールで指定したMaster UsernameとMaster Passwordのことです。
コードの修正が終わったら、warファイルを作成します。Eclipseを使用している場合、[ファイル]―[エクスポート]で作成できます。
次に、このwarファイルをEC2インスタンスにデプロイします。デプロイとは、開発環境で作成したアプリケーションを実行環境に配置することです。TeraTermでTomcat 7をインストールしたEC2インスタンスにログインします。TeraTermのメニューで[ファイル]-[SSH SCP]を選択し、作成したAWSTest.warをアップロードします。
EC2インスタンスで次のコマンドを実行し、アップロードしたAWSTest.warをTomcat 7インストールフォルダのwebapps配下にコピーします。
$ sudo cp /home/ec2-user/AWSTest.war /usr/share/tomcat7/webapps/
以上でWebアプリケーションのサーバへの配置が終わりました。
動作確認
Web アプリケーションのデプロイとデータベースの作成が完了したら、サンプルWebアプリケーションの動作確認をします。
次のURLにブラウザから次の書式でアクセスします。
例えば、EC2インスタンスのPublic IPが54.238.184.158にインストールしたときは、次のようなアクセスになります。
正しくアクセスできると、EC2上にデプロイしたサンプルアプリから、RDS上に登録されたデータが取得できているのが分かります。
おわりに
今回の記事では、Amazon社が提供するクラウドサービスであるAWSの主要なサービスである、仮想サーバEC2と仮想リレーショナルデータベースRDSの使いかたを紹介しました。クラウドのIaaSサービスを上手に使うと、短時間で容易にWebシステムを構築できます。さらに、クラウドの持つ負荷分散機能やプライベートネットワーク構築機能/自動リソース増強機能などを組み合わせて使えば、さらに柔軟なインフラを構築することができます。これからも、クラウドを使って夢のあるシステムを作ってくださいね。