連載
» 2010年02月17日 00時00分 公開

ユカイ、ツーカイ、カイハツ環境!(12):AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築 (2/3)

[岡本隆史,@IT]

Amazon EC2アカウントとAWS Toolkitの設定

 インストールが終わったら、AWS ToolkitとPuTTYをセットアップしましょう。

Amazon EC2のアカウントを作成

 AWS Toolkitを利用するには、EC2のアカウントの作成し、各種キー証明書を取得しておく必要があります。

 キーおよび証明書の取得は「Amazon Elastic Compute Cloud(Amazon EC2)」のサイトより行ってください。日本語での解説は、冒頭で紹介した記事「Amazon EC2/S3で作るWindows公開サーバ」などを参考にしてください。

AWS Toolkitの設定

 Eclipseのメニューの[ウィンドウ]→[設定]から設定画面を表示し、[AWS Toolkit]を選択すると、AWS Toolkitの設定が画面になります。

図1 AWS設定画面 図1 AWS設定画面(画像をクリックすると、拡大します)

 EC2のアカウント作成時に取得した情報に従い、[Account Number](アカウント番号)、[Access Key ID](アクセスキー)、[Secret Access Key](シークレットアクセスキー)を設定します。bundleイメージを利用する場合は、[証明書ファイル]と[Protected Key File](秘密鍵)も設定します。

PuTTYの設定

 EC2では、起動したインスタンスに対して、デフォルトではSSH接続の鍵認証しか利用できません。そのため、インスタンスへ接続するには、SSHクライアントに秘密鍵を設定する必要があります。AWS ToolkitではPuTTYを設定しておくと、インスタンスから簡単にSSH接続できるようになります。

 PuTTYを設定するには、設定画面の[AWS Toolkit]→[外部ツール]からPuTTYの設定を行います(図2)。インストール済みのPuTTYの実行ファイル(putty.exeもしくはputtyjp.exe)と、Puttyの鍵生成ツール(puttygen.exe)のパスを指定します。

図2 Putty設定画面 図2 Putty設定画面(画像をクリックすると、拡大します)

 これで、設定は終了です。

AWS Toolkitを使ってみよう

 [ウィンドウ]→[パースペクティブを開く]→[その他]から[Amazon EC2 Management]を選択し、[Amazon EC Management]パースペクティブに切り替えます(図3)。

図3 物理ビュー 図3 [Amazon EC2 Manegement]パースペクティブで表示されるビュー

 [Amazon EC2 Management]パースペクティブでは、下記表のビューを利用できます。

ビュー 説明
EC2 Instances EC2のインスタンス(仮想マシン)の一覧を表示
EC2 AMIs AMI(EC2で起動できるイメージ)の一覧を表示
EC2 Elastic Block Storage EBS(EC2で永続化できるストレージ)の管理(作成や削除、インスタンスへのアタッチ)
EC2 Serurity Groups セキュリティグループ(ファイアウォールの設定)の管理
表 [Amazon EC2 Management]パースペクティブで使えるビュー

Amazon EC2上にあるTomcatのクラスタを起動してみよう

 Tomcatのクラスタを作成し、Webアプリケーションをデプロイしてみましょう。AWS Toolkitでは、Eclipse WTP(Web Tools Platform)上で開発したWebアプリケーションをTomcatなどのアプリケーションサーバにデプロイするのと同じ要領でデプロイできます。

Webアプリを動かすサーバの選択

 動的Webプロジェクトとして作成したプロジェクトを右クリックして、[実行]→[サーバで実行]を選択します。サーバタイプの選択画面で[Amazon EC2 Tomcat v6.0 Cluster]を選択します(図4)。

図4 Tomcat Clusterの選択 図4 Tomcat Clusterの選択(画像をクリックすると、拡大します)

セキュリティの設定

 次に、クラスタサイズ(アプリケーションサーバを起動するインスタンス数。ここでは「3」を指定)とアプリケーションサーバを起動するインスタンスのキーペアやセキュリティグループ、Elastic IPを指定します(図5)。

図5 クラスタサイズとEC2の設定 図5 クラスタサイズとEC2の設定

 キーペア、セキュリティグループ、Elastic IPはこの画面で割り当てるだけでなく、作成もできます。セキュリティグループは、少なくともTCPの22番と8080番をアクセス可能にしておきます。必要に応じで、TCPの80番やデータベース用のポート、後述のSyslogを利用する場合はUDPの514番などをアクセス可能に設定してください。

簡単にAmazon EC2のTomcatにデプロイできました

 最後に、Tomcatにデプロイするプロジェクトを選択します。

図6 デプロイするプロジェクトの選択 図6 デプロイするプロジェクトの選択(画像をクリックすると、拡大します)

 起動すると、図7のように[サーバー]ビューにサーバの起動画面が表示されます。

図7 起動画面([サーバー]ビュー) 図7 起動画面([サーバー]ビュー)(画像をクリックすると、拡大します)

 起動の様子は[EC2 Instances]ビューで確認できます。

図8 [EC2 Instances]ビューの様子 図8 [EC2 Instances]ビューの様子(画像をクリックすると、拡大します)

 起動直後は、インスタンスの状態は「pending」になっていますが、起動が完了すると「running」になります。

 次ページでは、 Tomcat Clusterをさらに使いこなす方法として、Syslogによるログの集約とロードバランサの設定のカスタマイズ、セッション情報の共有化によるフェイルオーバについて紹介します。

コラム 「Tomcat Clusterで利用されるインスタンス」

図8の[EC2 Instances]ビューを見ると、クラスタサイズは3ですが、起動したインスタンスは4つとなっています。3つは負荷分散させるためのTomcatを起動するインスタンスですが、残りの1つはロードバランサ用のインスタンスで、ロードバランサ用のインスタンスの8080番ポートにアクセスすると、リクエストがTomcat用の各インスタンスへ負荷分散されるようになっています(図9)。

図9 AWS ToolkitのTomcatクラスタによる負荷分散の仕組み 図9 AWS ToolkitのTomcatクラスタによる負荷分散の仕組み

ロードバランサ用のインスタンス上では、負荷分散を行うためのソフトウェアである「haproxy」が動作しており、haproxyが負荷分散を行っています。

AWS Toolkitでは、データベースは起動してくれませんが、実際にWebアプリケーションを動作させる場合は、あらかじめ起動したデータベースを各Tomcat上のWebアプリケーションから参照するようにします。


Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。