yujiro's blog

「インターネット上で正しい答えを得る最善の方法は、質問することではない。間違った答えを投稿することだ」by ウォード・カニンガム

ELB導入

はじめに

かなり前に書いたものです。(2017年12月)

個人esa からの転記。

目標

EC2 を複数作って、ELBに登録し、アクセスを分散させてみる。

手順

まず、EC2インスタンスを2つ作る。

ssh ログインして nginx をそれぞれにいれて グローバルIP でアクセスできるようにしておく。

ここでは 片方がTest01 、 もう片方で Test02 と出力されるようにした。

$ curl http://[globalip of instance01]

Test01
$ curl http://[globalip of instance02]

Test02

その後ロードバランサーの設定をする。

EC2ダッシュボードから左サイドバーにある「ロードバランサー」を選択

ロードバランサー」の作成

ロードバランサーの種類の選択」画面で「Application Load Balancer」を選択して「作成」ボタン。

名前を決める。ここでは Test01 にした。

01.png (356.6 kB)

同じ画面の下の方の「アベイラビリティーゾーン」の項目で最低2つのサブネットを選択する。=> 次の手順(セキュリティ設定の構成)へ

そのまま右下の「セキュリティグループの設定」をクリック。

セキュリティグループを選ぶ(これは後で変えられる)。次へ。

「ルーティングの設定」画面もそのままでOK

ヘルスチェックの詳細設定は間隔やタイムアウトの秒数を指定する。(これも後で変えられるので適当でよい)

ここにはELB がインスタンスにアクセスする間隔と、死活判定をするタイムアウトの秒数を指定。 例えば、タイムアウトが5秒、間隔が10秒だったら、ELBが10秒に1回インスタンスにアクセスして、5秒間応答がなかったらそのインスタンスは死んでいるという判断をし、ELBがそのインスタンス以外へのアクセスをするようになる。

よければ、「ターゲットの登録」に進む。

インスタンスを下記の画像のように登録する。それで「確認」=> 作成となる。

02.png (437.8 kB)

作成したら、ロードバランサー一覧画面にDNS名があるので、その名前でアクセスしてみる。

03.png (450.2 kB)

更新すると、先程インスタンスに設定したnginxの Test01, Test02 という文字列が切り替わるはず。

どちらかのインスタンスの nginx を殺してみると、もう片方のインスタンスのみにアクセスをするようになる。