はじめに
前回は、AWSの提供する仮想サーバサービスであるEC2を使ってWebサーバを構築する手順をご紹介しました。今回は、AWSでWebアプリケーションサーバとデータベースサーバを構築し、サーバサイドJavaのプログラムを動かすためのインフラ構築手順を説明します。
対象読者
本記事は、次の方を対象にしています。
- クラウドシステムがはじめての人
- JavaによるWebシステムのプログラミングを行ったことがある人
- システム基盤について勉強したいと思っている人
データベース連携するWebアプリケーションの構成
AWSのサービスを使って、データベース連携するサーバサイドJavaのWebアプリケーションを実行する環境は、いくつか考えられます。AWSでは前回ご紹介した仮想サーバサービスのほかに、リレーショナルデータベースの機能を提供する「RDS」や、PaaSサービスである「Elastic Beanstalk」などがあります。
ここで、主なインフラ構成のパターンをご紹介します。
1.EC2とRDSを利用する方法
EC2上にWebアプリケーションサーバをインストールし、データをAWSのRDSに格納する方法です。図のように、サーバサイドJavaのプログラムはWebAPサーバにデプロイします。
RDSを利用すると、EC2とRDSでネットワーク経由のデータのやり取りが発生します。また、RDSを使うとデータベースサーバを簡単に構築できますが、データベースサーバのOSにログインできませんので、追加プラグインのインストールなどができません。
2.EC2にWebアプリケーションサーバとデータベースサーバを構築する方法
EC2のインスタンスにWebアプリケーションサーバとデータベースサーバをインストールする方法です。図のように、サーバサイドJavaのプログラムとデータベースを同一のインスタンスで起動します。
EC2にデータベースサーバをインストールする手間が発生しますが、RDSを利用するときに比べて、データベースの設定の自由度が増します。
EC2とRDSでネットワーク経由のデータのやり取りが発生しませんが、同一のインスタンスで2つのサーバ機能を動作させるのでその分負荷がかかります。
なお、図では、同一のインスタンスにWebアプリケーションサーバとデータベースサーバをインストールしていますが、パフォーマンスや冗長性の観点から、別のEC2インスタンスに構築することもできます。
3.Elastic Beanstalkを利用する方法
AWSが提供するPaaSであるElastic Beanstalkは、EC2/ S3/ELB/Auto Scalingなどの環境を自動で生成し、Webアプリケーションを容易に構築できるサービスです。Elastic BeanstalkはJavaだけでなく、.NET/PHP/Python/Ruby/Node.jsなどの言語での開発もサポートしています。
本記事では、1のEC2とRDSを使ったインフラ構成を構築する手順を、実際にサンプルアプリを使いながら説明します。