はじめに
この記事はJAWS-UG関西女子会「はじめて女子応援企画!事例から学ぶもくもく&もぐもぐ会」で
もぐもぐ 1 もくもくする際のテキストとなります。
本記事での目標
- EC2でWEBサーバーを構築すること
- RDSでデータベースサーバを構築すること
- EC2インスタンスへEC-CUBEインストール及び疎通確認
- ELBでWEBサーバーの負荷分散をすること
EC2でWEBサーバーを構築すること
RDSでデータベースサーバを構築すること
ELBでWEBサーバーの負荷分散をすること
ELBでWEBサーバーの負荷分散をするまでのながれ
- セキュリティグループの設定
- ヘルスチェックファイルの設置
- ELBの作成・設定
- ELBを介しての疎通確認
ELBの用語について
- ELB:
- Elastic Load Balancerの略
- 負荷に応じてELB自身のスペックアップが自動でされます
- ※本手順では独自ドメインとの割当て方は省いています。
- 独自ドメインをしたい場合はサポートメンバーに言ってください!!
- 負荷に応じてELB自身のスペックアップが自動でされます
- ヘルスチェック:
- ELBで負荷分散しているサービスが正常に応答をしているかを判断すること
- ヘルスチェック応答がない場合、ELBは通信をそのサーバへ流さないようにする
- 切り離しをするわけではありません
- ヘルスチェック応答がない場合、ELBは通信をそのサーバへ流さないようにする
構築手順
1.セキュリティグループの設定
1.1.ELB用セキュリティグループに自分のIPからの通信許可設定をします。 ELB用セキュリティグループを選択してEditボタンをクリックします。 
1.2.Typeは「HTTP」をSourceは「My IP」を選択して「Save」ボタンをクリックします。 
1.3.次はWEBサーバー用セキュリティグループにELBからの通信許可設定をします。 
1.4.Typeは「HTTP」をSourceは「ELB用セキュリティグループ」を設定します。 
1.5.「Save」ボタンをクリックします。 
2.ヘルスチェックファイルの設置
2.1.WEB01にSSH接続して以下のコマンドを実行します。
vi /var/www/html/health.txt
Working! ←を入力して保存します
2.2.ブラウザでアクセスできることを確認します。 
2.3.WEB02にも同様の設定をします。
##3.ELBの作成・設定
3.1.EC2の左メニューで「Load Balancers」をクリックします。 
3.2.「Create Load Balancer」ボタンをクリックします。 
3.3.Load Balancer Nameを入力し、Enable advanced VPC configurationにチェックを入れます。 
3.4.Select Subnetsで負荷分散対象サーバーがあるサブネットを+ボタンをクリックして選択します。 
3.5.もう一つのサブネットも選択します。 
3.6.「Next…」ボタンをクリックします。 
3.7.ELBのセキュリティグループをここで割り当てます。 作成したELB用セキュリティグループを選択し「Next…」ボタンをクリックします。 
3.8.セキュリティの警告が出ますが「Next…」ボタンをクリックします。 
3.9.ping pathに「/health.txt」と入力し、Healthy Thresholdは「2」を選択し「Next…」ボタンをクリックします。 ping pathに入力されたファイルからの応答があればELBはサーバが正常にサービスが上がっていると判断します。 Health Check Intervalで指定された秒数間隔でELBはサーバへヘルスチェックを行います。 Unhealthy Thresholdで指定した回数応答がなかった場合にELBはサーバが異常であると判断し、通信を流さなくなります。 ELBの配下に組み込んだあとにHealthy Thresholdで指定した回数の応答があればELBはサーバのサービスが正常であると判断し、通信を流すようになります。 
3.10.ELBの配下に組込むEC2インスタンスを選択します。 WEB01とWEB02にチェックを入れ「Next…」ボタンをクリックします。 
3.11.タグを付けて「Review and Create」ボタンをクリックします。 
3.12.内容を確認し「Create」ボタンをクリックします。 
3.13.「Close」ボタンをクリックします。 
3.14.Instancesタブをクリックします。 
3.15.WEBサーバのStatusが「OutOfService」となっている場合はELBがサーバが正常に応答していないとみなしています。 作成したばかりなので1分ほど待ちましょう。 
3.16.右上のリロードボタンを何度か押してみましょう。 ヘルスチェックが成功したらStatusが「InService」となります。 いくら経ってもInServiceとならない場合、設定ミスかサーバで何か以上が発生している可能性があります。 
4.ELBを介しての疎通確認
4.1.WEB01にログインして以下のコマンドを実行します。
vi /var/www/html/index.html
以下の内容を入力して保存します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>JAWS-UG関西女子会もくもく勉強会</title>
</head>
<body>
<span style="font-size : 100pt">Hello World!!</span></br>
<span style="font-size : 100pt">from WEB01!</span></br>
</body>
</html>
4.2.ブラウザで直接WEB01にアクセスしてindex.htmlが見られることを確認します。 
4.3.WEB02にログインして以下のコマンドを実行します。 ポイントとしてWEB02では表示内容を少し変えています。
vi /var/www/html/index.html
以下の内容を入力して保存します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>JAWS-UG関西女子会もくもく勉強会</title>
</head>
<body>
<span style="font-size : 100pt">Hello World!!</span></br>
<span style="font-size : 100pt">from WEB02!</span></br>
</body>
</html>
4.4.ブラウザで直接WEB02にアクセスしてindex.htmlが見られることを確認します。 
4.5.DescriptionタブでDNS Nameに記載されているアドレスがELBのエンドポイントURLとなります。 
4.6.エンドポイントURLにブラウザからアクセスしてみましょう。 何度かリロードするとWEB01とWEB02の両方が表示されることがわかるかと思います。 
-
節子!それは懇親会や!! ↩