ELBの状況を確認
それでは、作成したELBの状況を確認してみましょう。ELBからEC2のインスタンスにアクセスできる状態の時は、[Instance]タブの[Status]が[InService]になっています。これは、ELBがヘルスチェックを行って、EC2インスタンスが正しく応答を返した状態であることを表しています。逆に、EC2インスタンスが正しい応答を返さなかったときは、[Status]が[OutOfService]になります。
次の例を見てください。
ここからは、2つのノードがそれぞれ次の状態であることがわかります
- http-node1:インスタンスが応答を返した
- http-node2:インスタンスが応答を返さなかった
なお、インスタンスがELBから利用できるまでに、しばらく時間がかかる場合があります。
2台ともEC2のインスタンスが[InService]状態になったら、ELBにアクセスします。ELBの[Description]タグをクリックし、ELBに割り当てられている[DNS Name]を確認します。
このURLにブラウザからアクセスしてみてください。アクセスするタイミングによって、http-node1とhttp-node2にリクエストが振り分けられているのが分かります。なお、通常の運用で負荷分散を行うときには、サーバを同じ構成にするのが定石ですが、今回は動作確認のため、http-node2のindex.htmlを一部変更しています。
このように非常に簡単な手順で、負荷分散システムを構築することができるというのは、クラウド導入大きなメリットの1つです。
今回は、2台のサーバを使って負荷分散する構成を構築しましたが、台数が増えたときも同じ手順でインフラを構築できます。また、セキュリティの構成については、今回の手順ではインターネットから直接Webサーバへのアクセスができる設定になっています。しかし、ELBを導入する場合であれば、Webサーバに対するアクセスをELBからのみ限定にしたほうがよりセキュアになります。
おわりに
今回は、EC2インスタンスで作成したLinuxサーバにApache httpdをインストールしてWebサーバを構築し、さらに、同じ構成のWebサーバをもう1台構築して、2台のWebサーバの間で負荷分散する手順を説明しました。クラウド導入で得られるメリットがお分かりいただけたと思います。
次回は、AWSのRDBMS機能を提供するサービス「RDS」を使ったサーバサイドJavaのWebアプリケーションシステムを構築する手順を説明します。