Lambda を利用した分散 Web 負荷テストツール Goad を使ってみた
AWS Lambda を使用して複数 Region から分散して Web 負荷テストが
実行できるツール Goad を使ってみたので、ご紹介させて頂きます。
公式サイトに Demo があるので、自分のサイトにもお試しができます。
■Goad インストール
・適当な場所にバイナリをダウンロードして解凍するだけです。
$ wget https://github.com/gophergala2016/goad/releases/download/gopher-gala/goad-gopher-gala-linux-x86-64.zip
$ unzip goad-gopher-gala-linux-x86-64.zip
Archive: goad-gopher-gala-linux-x86-64.zip
inflating: goad
■Goad の使い方
・option 参照してみると、こんな感じです。
$ ./goad –help
Usage of ./goad:
-c uint
number of concurrent requests (default 10)
-m string
HTTP method (default “GET”)
-n uint
number of total requests to make (default 1000)
-r string
AWS regions to run in (comma separated, no spaces) (default “us-east-1,eu-west-1,ap-northeast-1″)
-t uint
request timeout in seconds (default 15)
-u string
URL to load test (required)
■Goad の実行
・実行前に、Credential を環境変数にセットします。
export AWS_ACCESS_KEY_ID=”AKXXXXXXXXXXXXXXXXXX”
export AWS_SECRET_ACCESS_KEY=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
・AWSで作成したインスタンス(t2.micro)に対して、3箇所(us-east-1,eu-west-1,ap-northeast-1)から
load testing 実行
$ ./goad -c 10 -n 10000 -r us-east-1,eu-west-1,ap-northeast-1 -m GET -u http://54.249.83.184
Regional results
Region: ap-northeast-1
TotReqs TotBytes AvgTime AvgReq/s AvgKbps/s
3334 63 MB 0.004s 849.60 15591.43
Slowest Fastest Timeouts TotErrors
0.013s 0.001s 0 0
Region: us-east-1
TotReqs TotBytes AvgTime AvgReq/s AvgKbps/s
1936 36 MB 0.464s 7.34 134.62
Slowest Fastest Timeouts TotErrors
0.482s 0.293s 0 0
Region: eu-west-1
TotReqs TotBytes AvgTime AvgReq/s AvgKbps/s
1352 25 MB 0.661s 5.75 105.49
Slowest Fastest Timeouts TotErrors
0.456s 0.436s 0 0
Overall
TotReqs TotBytes AvgTime AvgReq/s AvgKbps/s
6622 124 MB 0.272s 431.07 7910.76
Slowest Fastest Timeouts TotErrors
0.482s 0.001s 0 0
HTTPStatus Requests
200 6622
■Apache Access ログ確認
52.16.167.156 – – [27/Jan/2016:05:27:16 +0000] “GET / HTTP/1.1” 200 18792 “-” “Mozilla/5.0 (compatible; Goad/1.0; +https://goad.io)”
52.16.167.156 – – [27/Jan/2016:05:27:17 +0000] “GET / HTTP/1.1” 200 18792 “-” “Mozilla/5.0 (compatible; Goad/1.0; +https://goad.io)”
52.16.167.156 – – [27/Jan/2016:05:27:17 +0000] “GET / HTTP/1.1” 200 18792 “-” “Mozilla/5.0 (compatible; Goad/1.0; +https://goad.io)”
54.172.10.160 – – [27/Jan/2016:05:27:17 +0000] “GET / HTTP/1.1” 200 18792 “-” “Mozilla/5.0 (compatible; Goad/1.0; +https://goad.io)”
54.172.10.160 – – [27/Jan/2016:05:27:17 +0000] “GET / HTTP/1.1” 200 18792 “-” “Mozilla/5.0 (compatible; Goad/1.0; +https://goad.io)”
・AWS コンソールから確認すると Function が作成されている
■CloudWatch で負荷確認
AWSアカウントがあれば ab 並にお手軽に負荷テストができるので、是非お試しください。