前 AWS入門 EC2を使ったWebサーバー構築
次 AWS入門 Elastic IPを使った独自ドメインでのサイト運用
ELBを使った負荷分散
- 可用性の向上と処理速度の向上を同時に行うため、サーバの処理を負荷分散する。
- AWSが提供する負荷分散機能であるELBを使い、システム全体が停止しない仕組みを作る。
カスタムAMIによるEC2インスタンスの生成
- OSを含むEC2インスタンスのフルバックアップのことをカスタムAMIと呼び、それをもとに複数のEC2インスタンスを起動できる。
1/3. カスタムAMIの作成
- EC2ダッシュボードから、AMIイメージを取得したいEC2インスタンスを選択し、一旦停止する。
- 右クリック→「イメージ」→「イメージの作成」をクリックする。
- イメージ名に任意の名前を設定する。127文字まで。
- 説明は、イメージの説明を入れる。日本語は不可。255文字まで。
- イメージの作成をクリックする。
- カスタムAMIの確認
2/3. カスタムAMIからEC2インスタンスの起動
- 右クリック→「作成」をクリックする。
- これ以降は、前回のEC2インスタンスの作成と同じ。AWS入門 EC2を使ったWebサーバー構築
- タグの名前を、
http-node1
、http-node2
の2台のEC2インスタンスを作成する。
- 2台のインスタンスが作成された。
3/3. 動作確認
- 2台のどちらにアクセスしているか確認のために、サイトの一部を書き換える。
- SSHでログインして、
/var/www/html/index.html
を修正する。
$ ssh -i ~/.ssh/AWSkeypair.pem ec2-user@IPアドレス
$ sudo vim /var/www/html/index.html
- サイトが書き換わったことを確認する。
## ELBによる負荷分散システム構築
1/8. ロードバランサーの作成
-
http-node1
、http-node2
を両方起動する。 - EC2メニューから、「ロードバランサー」→「ロードバランサーの作成」をクリックする。
- 本の情報が古いので、Classic Load Balancerの「作成」をクリックする。
2/8. ロードバランサーの定義
- ロードバランサー名を「http-ELB」とした。
- ロードバランサーのネットワークが、「デフォルトVPC」のまま。
- セキュリティグループの割り当てをクリック。
3/8. セキュリティグループの割り当て
- 80番ポートを通すように、セキュリティグループを作成する。
- セキュリティグループ名「ELB-SecGP」、説明「ELB Group」とした。
4/8. セキュリティ設定の構成
- ELBではSSL証明書をインストールすることで、HTTPS通信が有効になる。ここでは、HTTPのみなので、そのまま「ヘルスチェックの設定」をクリックする。
5/8. ヘルスチェックの設定
- 今回はこのまま、「EC2インスタンスの追加」をクリックする。
6/8. EC2インスタンスの追加
-
http-node1
、http-node2
を選択して、「タグの追加」をクリックする。
7/8. タグの追加
- タグを「Name = WebSample-ELB」とした。
8/8. ロードバランサーの作成
- 確認して、「作成」をクリックする。
- ロードバランサーが作成された。
ELBの動作確認
- インスタンスが2台とも「InService」になっていればOK。
- ブラウザからDNS名にアクセスするとタイミングによって、
http-node1
、http-node2
に割り振られているのがわかる。
- やってみると、そんなに難しくないですね。