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 機能は全て無効の状態です。
$ hey -n 6000 -c 600 -q 10 -m POST -D ./a.json -T "application/json" -h2 https://
同時接続数600 &トータル6000リクエスト & 10秒以内
Requests/sec
と Response 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 を使うと良いのかなと思います。
しかし無料ってのがすごいな。マネタイズの仕組みを知りたい。