はじめに
この記事は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用セキュリティグループ」を設定します。
2.ヘルスチェックファイルの設置
2.1.WEB01にSSH接続して以下のコマンドを実行します。
vi /var/www/html/health.txt
Working! ←を入力して保存します
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.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.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の両方が表示されることがわかるかと思います。
-
節子!それは懇親会や!! ↩