Amazon Web Service では、ロードバランシング機能を使ったサーバの冗長化を容易に構成できます。ここでは、EC2インスタンスを2台用いた Elastic Load Balancing(ELB)の構成方法を記載します。
1.EC2インスタンスの作成
今回はまず最初に、EC2インスタンスを作成します。作成するインスタンスは複数個欲しいので、EC2インスタンス1号機と2号機の合計2個準備する事にします。
なお、作成する2個のEC2インスタンスは、同じアベイラビリティゾーンに属する設定にします。
2.作成したEC2インスタンスで、apache設定を行い、httpdデーモンを起動する。
yumでapacheをインストールし、apache設定を行います。
その後、簡単なテスト用ページ(index.html)を作成します。
作成するindex.htmlはとてもシンプルなページをEC2インスタンス毎に用意します。以下は1号機に配置するindex.htmlの例です。
<HTML> <TITLE>EC2インスタンス1号機</TITLE> <BODY> <H1>Test Server 1</H1> </BODY> </HTML>
以上で、EC2インスタンス側の準備は一旦終了です。
3.ELB作成
次にELBを作成します。
「Load Balancers」メニューから「Create Load Balancer」ボタンをクリックすると、作成ウィザードが始まります。
まず最初の画面では、名前、ポート設定、プロトコル設定を行います。
次の画面では、ヘルスチェックのオプション設定を行います。ヘルスチェック方法や、LBでEC2の状況を判断する為の間隔や条件について設定します。
次の画面では、LBに含めるEC2インスタンスを選択します。ここでは既に作成済の2個のEC2インスタンスを含めます。各EC2インスタンスは同じアベイラビリティゾーンになっています。
次のレビュー画面で「Create」ボタンをクリックすると、ロードバランサーの作成処理が走ります。数分待つと、ロードバランサーが作成されます。
作成したロードバランサーの画面は以下のような感じです。
まずは、Description画面です。この画面では、LBのDNS名が参照できます。なお、LBに設定されるIPアドレスは時間が過ぎると変更される為、LBのアドレスに対してDNS公開名を設定する際は、CNAMEレコードとして作成する等の対応になります。
次はロードバランシング対象のインスタンス一覧画面です。
次はヘルスチェックの設定内容画面です。
次はロードバランサーでのリスナー設定です。
4.バランシング確認
LBに設定されているDNS名を使って、ブラウザでアクセスしてみると、EC2インスタンスに設定したindex.htmlファイルの内容が確認できます。
なお、EC2インスタンス上のaccessログを参照すると、以下のようなログエントリになっていました。
10.152.133.160 - - [14/Jul/2013:04:50:57 +0000] "GET /index.html HTTP/1.1" 200 79 "-" "ELB-HealthChecker/1.0" 10.152.133.160 - - [14/Jul/2013:04:51:27 +0000] "GET /index.html HTTP/1.1" 200 79 "-" "ELB-HealthChecker/1.0" 10.152.133.160 - - [14/Jul/2013:04:51:57 +0000] "GET /index.html HTTP/1.1" 200 79 "-" "ELB-HealthChecker/1.0" 10.152.133.160 - - [14/Jul/2013:04:52:27 +0000] "GET /index.html HTTP/1.1" 200 79 "-" "ELB-HealthChecker/1.0"
ヘルスチェック間隔は30秒で設定していましたので、しっかり30秒毎にヘルスチェックがされているようです。エージェント名は「ELB-HealthChecker/1.0」となっていました。
Pingback: AWSについてのまとめ | kokonotsu.log