ALB + VPC 対応版 Lambdaのメモ

公開日:2018-12-05
最終更新:2018-12-05
※この記事は外部サイト(https://qiita.com/Ricordanza/items/b34a4e3...)からのクロス投稿です

はじめに

AWS re:Invent 2018 でALBのバックエンドにLambdaがつかえるようになったという発表があったので色々と試したメモ。
API Gatewayを使った場合との性能比較なんかは今回はしてません。

ALB + VPC対応版 Lambdaでアクセスの増加に対してかかる時間をメモしてみました。

Lambdaのコードや設定はここを参考にしています。

tl;dr

  • ヘルスチェックをするとLambdaに定期的にアクセスがいくため、実行可能なコンテナが常にある状態になっている
  • 接続数が増えるとLambdaのコンテナを増やすコストが発生しているようで処理時間が増える
  • 同じ条件で複数回アクセスするとアクセスを裁く用意ができているようで処理時間は短縮される
  • Lambdaの同時実行数を超えるアクセスをおこなうと502 Bad Gatewayになる
  • API Gatewayのように30秒制限はないのでその気になればLambdaのタイムアウト時間15分まで接続しっぱなしってのも可能(API設計としてありえないけど15分Lambdaに処理させて同期で結果を返すという芸当も可能)

ざっくり計測

前提

  • ALB、Lambdaは東京リージョンに作成
  • LambdaはPython3.6、メモリ128MB、東京リージョンのデフォルトVPCに構築
  • ALBのヘルスチェックとLambdaの同時実行数はデフォルトのまま

同時接続1 総リクエスト数1 一回目

$ ab -c 1 -n 1 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      1  
Time taken for tests:   0.075 seconds  
Complete requests:      1  
Failed requests:        0  
Total transferred:      430 bytes  
HTML transferred:       274 bytes  
Requests per second:    13.37 [#/sec] (mean)  
Time per request:       74.796 [ms] (mean)  
Time per request:       74.796 [ms] (mean, across all concurrent requests)  
Transfer rate:          5.61 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       17   17   0.0     17      17  
Processing:    58   58   0.0     58      58  
Waiting:       58   58   0.0     58      58  
Total:         75   75   0.0     75      75  

同時接続10 総リクエスト数10 一回目

$ ab -c 10 -n 10 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      10  
Time taken for tests:   9.962 seconds  
Complete requests:      10  
Failed requests:        0  
Total transferred:      4300 bytes  
HTML transferred:       2740 bytes  
Requests per second:    1.00 [#/sec] (mean)  
Time per request:       9961.548 [ms] (mean)  
Time per request:       996.155 [ms] (mean, across all concurrent requests)  
Transfer rate:          0.42 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   17   1.3     16      18  
Processing:    41 6893 4714.7   9811    9945  
Waiting:       41 6893 4714.6   9811    9945  
Total:         56 6910 4714.7   9826    9961  

Percentage of the requests served within a certain time (ms)  
  50%   9826  
  66%   9857  
  75%   9909  
  80%   9919  
  90%   9961  
  95%   9961  
  98%   9961  
  99%   9961  
 100%   9961 (longest request)  

## 同時接続10 総リクエスト数10 二回目  
$ ab -c 10 -n 10 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      10  
Time taken for tests:   0.264 seconds  
Complete requests:      10  
Failed requests:        0  
Total transferred:      4300 bytes  
HTML transferred:       2740 bytes  
Requests per second:    37.88 [#/sec] (mean)  
Time per request:       263.963 [ms] (mean)  
Time per request:       26.396 [ms] (mean, across all concurrent requests)  
Transfer rate:          15.91 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   16   1.1     15      19  
Processing:    39   68  62.4     53     245  
Waiting:       39   68  62.4     53     245  
Total:         55   84  63.5     68     264  

Percentage of the requests served within a certain time (ms)  
  50%     68  
  66%     68  
  75%     71  
  80%     72  
  90%    264  
  95%    264  
  98%    264  
  99%    264  
 100%    264 (longest request)  

同時接続100 総リクエスト数100 一回目

$ ab -c 100 -n 100 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   10.240 seconds  
Complete requests:      100  
Failed requests:        0  
Total transferred:      43000 bytes  
HTML transferred:       27400 bytes  
Requests per second:    9.77 [#/sec] (mean)  
Time per request:       10239.684 [ms] (mean)  
Time per request:       102.397 [ms] (mean, across all concurrent requests)  
Transfer rate:          4.10 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       22   31   3.9     33      37  
Processing:    60 4872 4441.7   2279   10187  
Waiting:       60 4872 4441.8   2279   10187  
Total:         82 4903 4443.9   2303   10221  

Percentage of the requests served within a certain time (ms)  
  50%   2303  
  66%   9357  
  75%   9533  
  80%   9609  
  90%   9923  
  95%  10087  
  98%  10190  
  99%  10221  
 100%  10221 (longest request)  

同時接続100 総リクエスト数100 二回目

$ ab -c 100 -n 100 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   9.495 seconds  
Complete requests:      100  
Failed requests:        0  
Total transferred:      43000 bytes  
HTML transferred:       27400 bytes  
Requests per second:    10.53 [#/sec] (mean)  
Time per request:       9494.665 [ms] (mean)  
Time per request:       94.947 [ms] (mean, across all concurrent requests)  
Transfer rate:          4.42 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   26   5.0     27      33  
Processing:   375  549 916.2    421    9479  
Waiting:      375  549 916.3    420    9479  
Total:        406  575 914.9    447    9494  

Percentage of the requests served within a certain time (ms)  
  50%    447  
  66%    454  
  75%    459  
  80%    472  
  90%    482  
  95%   1132  
  98%   1238  
  99%   9494  
 100%   9494 (longest request)  

同時接続100 総リクエスト数100 三回目

$ ab -c 100 -n 100 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   0.187 seconds  
Complete requests:      100  
Failed requests:        0  
Total transferred:      43000 bytes  
HTML transferred:       27400 bytes  
Requests per second:    535.31 [#/sec] (mean)  
Time per request:       186.808 [ms] (mean)  
Time per request:       1.868 [ms] (mean, across all concurrent requests)  
Transfer rate:          224.79 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   30  10.6     33      45  
Processing:    56  108  19.5    116     147  
Waiting:       56  108  19.5    116     147  
Total:         71  139  25.4    143     179  

Percentage of the requests served within a certain time (ms)  
  50%    143  
  66%    154  
  75%    160  
  80%    162  
  90%    167  
  95%    171  
  98%    176  
  99%    179  
 100%    179 (longest request)  

同時接続100 総リクエスト数1000 一回目

$ ab -c 100 -n 1000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 100 requests  
Completed 200 requests  
Completed 300 requests  
Completed 400 requests  
Completed 500 requests  
Completed 600 requests  
Completed 700 requests  
Completed 800 requests  
Completed 900 requests  
Completed 1000 requests  
Finished 1000 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   1.157 seconds  
Complete requests:      1000  
Failed requests:        0  
Total transferred:      430000 bytes  
HTML transferred:       274000 bytes  
Requests per second:    864.10 [#/sec] (mean)  
Time per request:       115.727 [ms] (mean)  
Time per request:       1.157 [ms] (mean, across all concurrent requests)  
Transfer rate:          362.85 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   34   6.9     35      55  
Processing:    26   74  22.8     69     229  
Waiting:       26   66  23.4     60     220  
Total:         64  108  22.6    104     263  

Percentage of the requests served within a certain time (ms)  
  50%    104  
  66%    109  
  75%    113  
  80%    116  
  90%    129  
  95%    154  
  98%    186  
  99%    197  
 100%    263 (longest request)  

同時接続100 総リクエスト数1000 二回目

$ ab -c 100 -n 1000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 100 requests  
Completed 200 requests  
Completed 300 requests  
Completed 400 requests  
Completed 500 requests  
Completed 600 requests  
Completed 700 requests  
Completed 800 requests  
Completed 900 requests  
Completed 1000 requests  
Finished 1000 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   1.432 seconds  
Complete requests:      1000  
Failed requests:        0  
Total transferred:      430000 bytes  
HTML transferred:       274000 bytes  
Requests per second:    698.54 [#/sec] (mean)  
Time per request:       143.156 [ms] (mean)  
Time per request:       1.432 [ms] (mean, across all concurrent requests)  
Transfer rate:          293.33 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   44  22.4     39     144  
Processing:    35   90  34.3     77     190  
Waiting:       35   79  31.2     66     174  
Total:         61  134  41.8    118     250  

Percentage of the requests served within a certain time (ms)  
  50%    118  
  66%    140  
  75%    158  
  80%    178  
  90%    202  
  95%    214  
  98%    225  
  99%    236  
 100%    250 (longest request)  

同時接続100 総リクエスト数10000 一回目

$ ab -c 100 -n 10000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 1000 requests  
Completed 2000 requests  
Completed 3000 requests  
Completed 4000 requests  
Completed 5000 requests  
Completed 6000 requests  
Completed 7000 requests  
Completed 8000 requests  
Completed 9000 requests  
Completed 10000 requests  
Finished 10000 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   11.897 seconds  
Complete requests:      10000  
Failed requests:        0  
Total transferred:      4300000 bytes  
HTML transferred:       2740000 bytes  
Requests per second:    840.54 [#/sec] (mean)  
Time per request:       118.971 [ms] (mean)  
Time per request:       1.190 [ms] (mean, across all concurrent requests)  
Transfer rate:          352.96 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       14   41  27.3     35    1201  
Processing:    34   77  33.0     67     323  
Waiting:       33   66  27.1     59     295  
Total:         51  118  47.1    105    1282  

Percentage of the requests served within a certain time (ms)  
  50%    105  
  66%    115  
  75%    126  
  80%    134  
  90%    174  
  95%    212  
  98%    279  
  99%    295  

同時接続100 総リクエスト数10000 二回目

$ ab -c 100 -n 10000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 1000 requests  
Completed 2000 requests  
Completed 3000 requests  
Completed 4000 requests  
Completed 5000 requests  
Completed 6000 requests  
Completed 7000 requests  
Completed 8000 requests  
Completed 9000 requests  
Completed 10000 requests  
Finished 10000 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      100  
Time taken for tests:   10.961 seconds  
Complete requests:      10000  
Failed requests:        0  
Total transferred:      4300000 bytes  
HTML transferred:       2740000 bytes  
Requests per second:    912.31 [#/sec] (mean)  
Time per request:       109.612 [ms] (mean)  
Time per request:       1.096 [ms] (mean, across all concurrent requests)  
Transfer rate:          383.10 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       14   38  17.2     34     290  
Processing:    36   71  27.3     65     377  
Waiting:       34   61  21.4     57     355  
Total:         65  109  37.7    101     479  

Percentage of the requests served within a certain time (ms)  
  50%    101  
  66%    109  
  75%    115  
  80%    121  
  90%    137  
  95%    166  
  98%    201  
  99%    332  
 100%    479 (longest request)  

同時接続10000 総リクエスト数10000

$ ab -c 10000 -n 10000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
apr_socket_recv: Connection refused (111)  

## 同時接続1000 総リクエスト数1000  
$ ab -c 1000 -n 1000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 100 requests  
Completed 200 requests  
Completed 300 requests  
Completed 400 requests  
Completed 500 requests  
Completed 600 requests  
Completed 700 requests  
Completed 800 requests  
Completed 900 requests  
Completed 1000 requests  
Finished 1000 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      1000  
Time taken for tests:   1.442 seconds  
Complete requests:      1000  
Failed requests:        0  
Total transferred:      430000 bytes  
HTML transferred:       274000 bytes  
Requests per second:    693.25 [#/sec] (mean)  
Time per request:       1442.481 [ms] (mean)  
Time per request:       1.442 [ms] (mean, across all concurrent requests)  
Transfer rate:          291.11 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       61  184  82.7    185     332  
Processing:   340  735 191.1    780    1088  
Waiting:      328  733 193.6    778    1088  
Total:        402  919 256.0    945    1407  

Percentage of the requests served within a certain time (ms)  
  50%    945  
  66%    999  
  75%   1076  
  80%   1100  
  90%   1278  
  95%   1329  
  98%   1396  
  99%   1401  
 100%   1407 (longest request)  

同時接続2000 総リクエスト数2000

$ ab -c 2000 -n 2000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
apr_socket_recv: Connection refused (111)  

## 段階的にリクエストを増やす  
$ ab -c 110 -n 110 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient).....done  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      110  
Time taken for tests:   0.104 seconds  
Complete requests:      110  
Failed requests:        0  
Total transferred:      47300 bytes  
HTML transferred:       30140 bytes  
Requests per second:    1056.39 [#/sec] (mean)  
Time per request:       104.128 [ms] (mean)  
Time per request:       0.947 [ms] (mean, across all concurrent requests)  
Transfer rate:          443.60 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       15   27   9.0     28      51  
Processing:    35   52   5.8     52      80  
Waiting:       35   50   6.0     51      79  
Total:         66   79   7.4     78      97  

Percentage of the requests served within a certain time (ms)  
  50%     78  
  66%     81  
  75%     84  
  80%     85  
  90%     91  
  95%     92  
  98%     95  
  99%     96  
 100%     97 (longest request)  
$ ab -c 1100 -n 1100 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 110 requests  
Completed 220 requests  
Completed 330 requests  
Completed 440 requests  
Completed 550 requests  
Completed 660 requests  
Completed 770 requests  
Completed 880 requests  
Completed 990 requests  
Completed 1100 requests  
Finished 1100 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      1100  
Time taken for tests:   1.141 seconds  
Complete requests:      1100  
Failed requests:        0  
Total transferred:      473000 bytes  
HTML transferred:       301400 bytes  
Requests per second:    964.03 [#/sec] (mean)  
Time per request:       1141.044 [ms] (mean)  
Time per request:       1.037 [ms] (mean, across all concurrent requests)  
Transfer rate:          404.82 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       58  114  49.5    108     215  
Processing:   229  484 207.8    385    1008  
Waiting:      215  473 212.9    373    1008  
Total:        295  597 227.0    525    1103  

Percentage of the requests served within a certain time (ms)  
  50%    525  
  66%    598  
  75%    730  
  80%    867  
  90%    996  
  95%   1069  
  98%   1086  
  99%   1089  
 100%   1103 (longest request)  
$ ab -c 1500 -n 1500 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 150 requests  
Completed 300 requests  
Completed 450 requests  
Completed 600 requests  
Completed 750 requests  
Completed 900 requests  
Completed 1050 requests  
Completed 1200 requests  
Completed 1350 requests  
Completed 1500 requests  
Finished 1500 requests  


Server Software:        awselb/2.0  
Server Hostname:        xxxxx.ap-northeast-1.elb.amazonaws.com  
Server Port:            80  

Document Path:          /  
Document Length:        274 bytes  

Concurrency Level:      1500  
Time taken for tests:   1.760 seconds  
Complete requests:      1500  
Failed requests:        0  
Total transferred:      645000 bytes  
HTML transferred:       411000 bytes  
Requests per second:    852.43 [#/sec] (mean)  
Time per request:       1759.684 [ms] (mean)  
Time per request:       1.173 [ms] (mean, across all concurrent requests)  
Transfer rate:          357.95 [Kbytes/sec] received  

Connection Times (ms)  
              min  mean[+/-sd] median   max  
Connect:       72  190  98.4    165     367  
Processing:   434 1052 246.4   1115    1351  
Waiting:      422 1037 242.8   1095    1331  
Total:        531 1242 281.7   1314    1668  

Percentage of the requests served within a certain time (ms)  
  50%   1314  
  66%   1377  
  75%   1399  
  80%   1421  
  90%   1575  
  95%   1635  
  98%   1659  
  99%   1661  
 100%   1668 (longest request)  
$ ab -c 2000 -n 2000 http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>  
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/  
Licensed to The Apache Software Foundation, http://www.apache.org/  

Benchmarking xxxxx.ap-northeast-1.elb.amazonaws.com (be patient)  
Completed 200 requests  
Completed 400 requests  
Completed 600 requests  
apr_socket_recv: Connection refused (111)  
Total of 633 requests completed  

Lambdaの実行時間が長い場合

Lambdaの実行時間内であれば正常に応答返す
ALBのアイドルタイムアウトは関係ない模様

Lambdaの最大実行時間を15分にして15分sleepした場合

$ time curl -v http://txxxxx.ap-northeast-1.elb.amazonaws.com/  0.01s user 0.01s system 0% cpu 5.259 total  
~ time curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
~ time curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
~ time curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
*   Trying 54.65.143.128...  
* TCP_NODELAY set  
* Connected to xxxxx.ap-northeast-1.elb.amazonaws.com (54.65.143.128) port 80 (#0)  
> GET / HTTP/1.1  
> Host: xxxxx.ap-northeast-1.elb.amazonaws.com  
> User-Agent: curl/7.54.0  
> Accept: */*  
>  
< HTTP/1.1 502 Bad Gateway  
< Server: awselb/2.0  
< Date: Wed, 05 Dec 2018 07:27:59 GMT  
< Content-Type: text/html  
< Content-Length: 138  
< Connection: keep-alive  
<  
<html>  
<head><title>502 Bad Gateway</title></head>  
<body bgcolor="white">  
<center><h1>502 Bad Gateway</h1></center>  
</body>  
</html>  
* Connection #0 to host xxxxx.ap-northeast-1.elb.amazonaws.com left intact  
curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com/  0.02s user 0.03s system 0% cpu 15:00.44 total  

Lambdaの最大実行時間を15分にして14分50秒sleepした場合

$ time curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com  
* Rebuilt URL to: http://xxxxx.ap-northeast-1.elb.amazonaws.com/  
*   Trying 54.65.11.214...  
* TCP_NODELAY set  
* Connected to xxxxx.ap-northeast-1.elb.amazonaws.com (54.65.11.214) port 80 (#0)  
> GET / HTTP/1.1  
> Host: xxxxx.ap-northeast-1.elb.amazonaws.com  
> User-Agent: curl/7.54.0  
> Accept: */*  
>  
< HTTP/1.1 200 OK  
< Server: awselb/2.0  
< Date: Wed, 05 Dec 2018 07:57:31 GMT  
< Content-Type: text/html; charset=utf-8  
< Content-Length: 297  
< Connection: keep-alive  
< body: ok  
<  
<html>  
    <head>  
    <title>Hello World!</title>  
    <style>  
    html, body {  
       margin: 0; padding: 0;  
       font-family: arial; font-weight: 700; font-size: 3em;  
       text-align: center;  
    }  
    </style>  
    </head>  
       <body>  
          <p>Hello World!</p>  
      </body>  
* Connection #0 to host xxxxx.ap-northeast-1.elb.amazonaws.com left intact  
    </html>curl -v http://xxxxx.ap-northeast-1.elb.amazonaws.com  0.02s user 0.03s system 0% cpu 14:50.26 total  
`
記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
@ricordanzaの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする