4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IDCFクラウドでLBでの負荷分散をしてみる

Last updated at Posted at 2014-11-23

こちらで仮想マシンの立ち上げを試してみました。
今度は、仮想マシンを2台立ち上げて負荷分散設定をしてみます。

環境は以下のとおりです。

  • クライアントPC:MacOS X 10.9.5
  • 使用した仮想マシンタイプ:light.S1
  • 立ち上げた仮想マシンの名前:test-web-1, test-web-2

仮想マシンの立ち上げまでを済ませ、各仮想マシンにApacheをインストール・稼働させている体で進めます。

LB設定を入れる

クラウドコンソールから対象となるIPアドレスを選択して、ロードバランサーのタブから以下の設定を追加します。

管理名 パブリックポート プライベートポート アルゴリズム 接続維持 仮想マシン
test-lb 80 80 roundrobin なし test-web-1,test-web-2

ファイアウォールで、追加したLB設定のパブリックポートの口開けを設定します。

コメント ソースCIDR タイプ ポートレンジ
tes-lb My IPを指定※ TCP 80

※テスト用環境のため、外部からアクセス出来ないようにMyIP指定としています。

これでabとかでグローバルIPに対してリクエストを投げると、2つの仮想マシンにリクエストが入ることが確認できました。
(IPはxxxとしています)

ab -n 100 -c 100 http://xxx.xxx.xxx.xx/

リモートIPの取得

ロードバランサ通すと、access_logに載るリモートホストがロードバランサのIPとなってしまいます。
プロキシ通してるのと同じなので、当たり前といえば当たり前ですね。

10.3.0.133 - - [12/Nov/2014:19:57:51 +0900] "GET / HTTP/1.0" 200 130 "-" "ApacheBench/2.3"

AWSのELBとかも同じですが、 X-Forwarded-For ヘッダが
IDCFクラウドでも使用できるようです。

ということで、LogFormatに「X-Forwarded-For」を追加してみます。

httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined

結果(IPはxxxとしてます)

10.3.0.133 - - [13/Nov/2014:13:59:36 +0900] "GET / HTTP/1.0" 200 130 "-" "ApacheBench/2.3" xxx.xxx.xxx.xx

と出力されることが確認できました。

しかし、HTTPSでは「X-Forwarded-For」は使用できないそうです。

SSLアクセラレータの機能も仮想ルータでは提供されていないようなので、LB分散した先のWEBサーバ(Nginx)をアクセラレータとしようと考えていたのですが。。。
自前でLB立てて運用というのも、それはそれで面倒ですしね。
ELBのように、仮想ルータ(LB機能側)でSSLアクセラレータの機能が搭載されることを期待したいです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?