ELBのスケールアウトの検証

下記のELBのスケールアウトについて、実際に検証してみた。

サーバ構成はこんな感じ。

クライアント×4は以下のスクリプトでサーバに負荷をかける。

export HOST=XXX.ap-southeast-1.elb.amazonaws.com
while true
do
  date
  dig $HOST
  httperf --hog --server=$HOST --num-conns=50000 --rate=500 --timeout=5 --uri=/__XXX__
  echo '-----'
done

ループすることでDNSラウンドロビンが聞くようにする。


で、結果。


最初はELBのIPは1つだけ。


;; ANSWER SECTION:
XXX.ap-southeast-1.elb.amazonaws.com. 54 IN A XXX.XXX.XXX.112


5分ぐらい経つと3つのIPアドレスにアクセスするようになる。


;; ANSWER SECTION:
XXX.ap-southeast-1.elb.amazonaws.com. 54 IN A XXX.XXX.XXX.112

;; ANSWER SECTION:
XXX.ap-southeast-1.elb.amazonaws.com. 54 IN A XXX.XXX.XXX.48

;; ANSWER SECTION:
XXX.ap-southeast-1.elb.amazonaws.com. 54 IN A XXX.XXX.XXX.26


ELBのIPアドレスの増加に伴ってサーバのスループットもあがっていく。


23:42:51 | 42.5532
23:46:23 | 47.1698
23:48:26 | 81.3008
23:50:05 | 101.01
23:51:00 | 181.818
23:51:43 | 232.558


クライアントで観測できるスループットも、最初このくらいだったのが


Reply rate [replies/s]: min 117.0 avg 169.3 max 240.4 stddev 63.8 (3 samples)
Reply time [ms]: response 518.9 transfer 796.9
Reply size [B]: header 234.0 content 75079.0 footer 0.0 (total 75313.0)
Reply status: 1xx=0 2xx=1866 3xx=0 4xx=0 5xx=679

2倍くらいになる。


Reply rate [replies/s]: min 131.4 avg 310.4 max 405.6 stddev 155.1 (3 samples)
Reply time [ms]: response 100.6 transfer 212.9
Reply size [B]: header 279.0 content 102400.0 footer 0.0 (total 102679.0)
Reply status: 1xx=0 2xx=4656 3xx=0 4xx=0 5xx=0