Edited at

【JAWS-UG関西女子会】#2 ELB+EC2+RDSでECサイトをつくろう ~ELB作成編~

More than 3 years have passed since last update.


はじめに

この記事はJAWS-UG関西女子会「はじめて女子応援企画!事例から学ぶもくもく&もぐもぐ会」で

もぐもぐ 1 もくもくする際のテキストとなります。


本記事での目標


  • EC2でWEBサーバーを構築すること

  • RDSでデータベースサーバを構築すること

  • EC2インスタンスへEC-CUBEインストール及び疎通確認

  • ELBでWEBサーバーの負荷分散をすること

以下のような構成となります。

ELB000301.JPG


EC2でWEBサーバーを構築すること

こちらを参照して下さい


RDSでデータベースサーバを構築すること

こちらを参照して下さい


ELBでWEBサーバーの負荷分散をすること


ELBでWEBサーバーの負荷分散をするまでのながれ


  1. セキュリティグループの設定

  2. ヘルスチェックファイルの設置

  3. ELBの作成・設定

  4. ELBを介しての疎通確認


ELBの用語について


ELB:

Elastic Load Balancerの略

負荷に応じてELB自身のスペックアップが自動でされます
※本手順では独自ドメインとの割当て方は省いています。

独自ドメインをしたい場合はサポートメンバーに言ってください!!






ヘルスチェック:

ELBで負荷分散しているサービスが正常に応答をしているかを判断すること
 
ヘルスチェック応答がない場合、ELBは通信をそのサーバへ流さないようにする
 
切り離しをするわけではありません





構築手順


1.セキュリティグループの設定

 

1.1.ELB用セキュリティグループに自分のIPからの通信許可設定をします。

ELB用セキュリティグループを選択してEditボタンをクリックします。

ELB000265.png

 

1.2.Typeは「HTTP」をSourceは「My IP」を選択して「Save」ボタンをクリックします。

ELB000266.png

 

1.3.次はWEBサーバー用セキュリティグループにELBからの通信許可設定をします。

ELB000267.png

 

1.4.Typeは「HTTP」をSourceは「ELB用セキュリティグループ」を設定します。

ELB000268.png

 

1.5.「Save」ボタンをクリックします。

ELB000269.png


2.ヘルスチェックファイルの設置

 

2.1.WEB01にSSH接続して以下のコマンドを実行します。

vi /var/www/html/health.txt

Working! ←を入力して保存します

 

2.2.ブラウザでアクセスできることを確認します。

ELB000270.png

2.3.WEB02にも同様の設定をします。


3.ELBの作成・設定

 

3.1.EC2の左メニューで「Load Balancers」をクリックします。

ELB000271.png

 

3.2.「Create Load Balancer」ボタンをクリックします。

ELB000272.png

 

3.3.Load Balancer Nameを入力し、Enable advanced VPC configurationにチェックを入れます。

ELB000273.png

 

3.4.Select Subnetsで負荷分散対象サーバーがあるサブネットを+ボタンをクリックして選択します。

ELB000274.png

 

3.5.もう一つのサブネットも選択します。

ELB000275.png

 

3.6.「Next…」ボタンをクリックします。

ELB000276.png

 

3.7.ELBのセキュリティグループをここで割り当てます。

作成したELB用セキュリティグループを選択し「Next…」ボタンをクリックします。

ELB000277.png

 

3.8.セキュリティの警告が出ますが「Next…」ボタンをクリックします。

ELB000278.png

 

3.9.ping pathに「/health.txt」と入力し、Healthy Thresholdは「2」を選択し「Next…」ボタンをクリックします。

ping pathに入力されたファイルからの応答があればELBはサーバが正常にサービスが上がっていると判断します。

Health Check Intervalで指定された秒数間隔でELBはサーバへヘルスチェックを行います。

Unhealthy Thresholdで指定した回数応答がなかった場合にELBはサーバが異常であると判断し、通信を流さなくなります。

ELBの配下に組み込んだあとにHealthy Thresholdで指定した回数の応答があればELBはサーバのサービスが正常であると判断し、通信を流すようになります。

ELB000279.png

 

3.10.ELBの配下に組込むEC2インスタンスを選択します。

WEB01とWEB02にチェックを入れ「Next…」ボタンをクリックします。

ELB000280.png

 

3.11.タグを付けて「Review and Create」ボタンをクリックします。

ELB000281.png

 

3.12.内容を確認し「Create」ボタンをクリックします。

ELB000282.png

 

3.13.「Close」ボタンをクリックします。

ELB000283.png

 

3.14.Instancesタブをクリックします。

ELB000284.png

 

3.15.WEBサーバのStatusが「OutOfService」となっている場合はELBがサーバが正常に応答していないとみなしています。

作成したばかりなので1分ほど待ちましょう。

ELB000285.png

 

3.16.右上のリロードボタンを何度か押してみましょう。

ヘルスチェックが成功したらStatusが「InService」となります。

いくら経ってもInServiceとならない場合、設定ミスかサーバで何か以上が発生している可能性があります。

ELB000286.png


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が見られることを確認します。

ELB000287.png

 

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が見られることを確認します。

ELB000288.png

 

4.5.DescriptionタブでDNS Nameに記載されているアドレスがELBのエンドポイントURLとなります。

ELB000289.png

 

4.6.エンドポイントURLにブラウザからアクセスしてみましょう。

何度かリロードするとWEB01とWEB02の両方が表示されることがわかるかと思います。

ELB000290.JPG





  1. 節子!それは懇親会や!!