CloudFlareって無料で使えて機能も多くてよく使っています。
目玉な機能の1つにSSLが無料で使える機能がありますが
ベンチマークを取る機会があったので記事にでもしようと思います。

 

CloudFlare -> Crypto SSL

CloudflareのSSLオプションには3種類あります。

Flexible SSL

CloudFlare – Origin server 間は HTTP で通信し、
エンドユーザーと CloudFlare 間は HTTPS で通信する

 

Full SSL

エンドユーザー – CloudFlare 間だけでなく、
CloudFlare – Origin server 間も HTTPS で通信する(オレオレ証明書でOK)

 

Full SSL (strict)

Full SSL と同様
オレオレ証明書ではなく認証局から発行されたきちんとした証明書が必要

 

 

ベンチマーク

今回はFull(strict)以外で比較を行います。

DBと連携しているAPIサーバーに対して、
インターネットの向こう側からGo言語で書かれたheyというツールを使って
ベンチマークを行います。

CloudFlare の Cache 機能は全て無効の状態です。

https://github.com/rakyll/hey

$ hey -n 6000 -c 600 -q 10 -m POST -D ./a.json -T "application/json" -h2 https://
同時接続数600 &トータル6000リクエスト & 10秒以内

Requests/secResponse timeの平均を見ていきたいと思います。

 

HTTP + CloudFlare(Proxied)

Summary:
Total:        5.0279 secs
Slowest:      3.2032 secs
Fastest:      0.0176 secs
Average:      0.4119 secs
Requests/sec: 1193.3303
Status code distribution:
[200] 6000 responses
Response time histogram:
0.018 [1]     |
0.336 [2239]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.655 [3410]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.973 [25]    |
1.292 [1]     |
1.610 [179]   |∎∎
1.929 [123]   |∎
2.248 [9]     |
2.566 [0]     |
2.885 [8]     |
3.203 [5]     |

Requests/sec : 1193.3303
Average: 0.4119 secs

 

HTTP (No Proxied)

Summary:
Total:        4.7277 secs
Slowest:      2.7705 secs
Fastest:      0.0187 secs
Average:      0.3751 secs
Requests/sec: 1269.1202
Status code distribution:
[200] 6000 responses
Response time histogram:
0.019 [1]     |
0.294 [2644]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.569 [2922]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.844 [97]    |∎
1.119 [0]     |
1.395 [126]   |∎∎
1.670 [128]   |∎∎
1.945 [71]    |∎
2.220 [5]     |
2.495 [0]     |
2.770 [6]     |

Requests/sec : 1269.1202
Average : 0.3751 secs

 

HTTPS + CloudFlare(Flexible)

Summary:
Total:        5.3223 secs
Slowest:      2.3040 secs
Fastest:      0.0183 secs
Average:      0.4390 secs
Requests/sec: 1127.3389
Status code distribution:
[200] 6000 responses
Response time histogram:
0.018 [1]     |
0.247 [1317]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.475 [2479]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.704 [1866]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.933 [20]    |
1.161 [1]     |
1.390 [14]    |
1.618 [105]   |∎∎
1.847 [120]   |∎∎
2.075 [76]    |∎
2.304 [1]     |

Requests/sec : 1127.3389
Average : 0.4390 secs

 

HTTPS + CloudFlare(Full)

Summary:
Total:        5.1285 secs
Slowest:      4.0366 secs
Fastest:      0.0187 secs
Average:      0.3988 secs
Requests/sec: 1169.9248
Status code distribution:
[200] 6000 responses
Response time histogram:
0.019 [1]     |
0.421 [4560]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.822 [1125]  |∎∎∎∎∎∎∎∎∎∎
1.224 [0]     |
1.626 [148]   |∎
2.028 [125]   |∎
2.429 [2]     |
2.831 [18]    |
3.233 [11]    |
3.635 [7]     |
4.037 [3]     |

Requests/sec : 1169.9248
Average : 0.3988 secs

 

HTTPS (No Proxied)

Summary:
Total:        4.9323 secs
Slowest:      3.1960 secs
Fastest:      0.0194 secs
Average:      0.4015 secs
Requests/sec: 1216.4785
Status code distribution:
[200] 6000 responses
Response time histogram:
0.019 [1]     |
0.337 [2792]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.655 [2857]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.972 [34]    |
1.290 [1]     |
1.608 [104]   |∎
1.925 [183]   |∎∎∎
2.243 [24]    |
2.561 [0]     |
2.878 [0]     |
3.196 [4]     |

Requests/sec : 1216.4785
Average : 0.4015 secs

 

 まとめ


CloudFlareを通さない方がレスポンスタイムも Requests/sec も良い結果ではあるが
言ってしまえばほぼ誤差の範囲

今回は対象のサーバーがAPIサーバーだったのでアレですがこれがWebサイトだったりしたら
CloudFlareを通したほうが絶対に良いでしょう。こっちでキャッシュを持つよりCloudFlareに丸投げしたほうが気が楽ですし。

何よりオリジンサーバーのグローバルIPを隠せるのは大きいので
特にデメリットが見つからなければ CloudFlare を使うと良いのかなと思います。

しかし無料ってのがすごいな。マネタイズの仕組みを知りたい。