LoginSignup
8
1

More than 5 years have passed since last update.

Google Cloud Platform の Https Load Balancer のQUICプロトコルを試してみた

Last updated at Posted at 2018-06-23

QUICプロトコルを試したい

2018年6月13日の Google Cloud Platform ( GCP )のブログで、HTTPS LORD BALANCING のQUICプロトコルのサポートが紹介されました。
GCPのHTTPS LOAD BALANCING を利用している場合、QUICプロトコルに対応している Chrome ブラウザを使えば、速度UPを見込めるはずです。
そこで本記事では、GCP HTTPS LORD BALANCING + Google Compute Engine ( GCE )+ Chrome ブラウザを使って、プロトコルによるWEBブラウジング速度を比較しました。

本記事の目的

HTTP/1.1HTTP/2QUICプロトコルのWEBブラウジング速度を比較し、QUICプロトコルの有用性を確認する。

検証環境

以下の検証環境を使用しました。
◎WEBサーバ
 ・ Google Compute Engine ( GCE )
  - ゾーン:us-east1-b
  - マシンタイプ:f1-micro(vCPU x 1、メモリ 0.6 GB)
  - ディスク:標準の永続ディスク 10GB
  - OS・ソフトウェア:CentOS7 + Apache 2.4.6 + OpenSSL 1.0.2
◎WEBブラウザ
 ・ Google Chrome v67.0.3396.87
◎インターネット回線
 ・so-net光(参考速度 下り:448Mbps、上り:359Mbps)
◎測定曜日・時刻
 ・土曜日 21時30分前後

お断り

本記事ではGCPGCE インスタンス作成手順HTTP(S) LOAD BALANCING の作成手順は省略します。
また、CentOS7にApache 2.4.6、OpenSSL 1.0.2のインストール、検証のための設定手順も省略します。

確認方法

WEBブラウザに表示するファイル

WEBサーバに以下のサイズの画像ファイルと、画像ファイルをリンクしたindex.htmlファイルを置きました。
 ・index.html (サイズ:174B)
 ・test.png (サイズ:9KB × 1 ファイル をリンク)
 ・jpegtest.jpg (サイズ:237KB × 5 ファイルをリンク = 1,185KB)

プロトコル設定

HTTP/1.1HTTP/2QUICプロトコルを、以下のように設定しました。

HTTP/1.1
 ・HTTP/1.1は、HTTPS LOAD BALANCING では利用できないため、直接WEBサーバにHTTPSでアクセスする

HTTP/2
 ・HTTPS LOAD BALANCINGQUICネゴシエーション無効とする。
 ・HTTPS LOAD BALANCINGバックエンドサービスHTTPとする。

QUICプロトコル
 ・HTTPS LOAD BALANCINGQUICネゴシエーション有効とする。
 ・HTTPS LOAD BALANCINGバックエンドサービスHTTPとする。

Chrome ブラウザから"https://"で接続し、上記3プロトコルを5回ずつ計測しました。WEBブラウザのキャッシュは計測前にクリアしています。

HTTP/1.1のWEBブラウジング速度

HTTPS LOAD BALANCING では、HTTP/1.1の設定ができないため、WEBサーバに直接HTTPS接続して測定しました。

測定結果

Chrome DevTools を使って測定します。
ネットワークタブのprotocol欄"HTTP/1.1"と表示されています。(画像は1回目のみ載せます。)

result_https11.png

実際の計測結果です。

計測 結果
1回目 1.92 s
2回目 1.71 s
3回目 1.70 s
4回目 2.37 s
5回目 3.60 s
平均 2.26 s

HTTP/2のWEBブラウジング速度

HTTPS LOAD BALANCING の設定

フロントエンドのQUICネゴシエーション"無効"に設定して、Chrome ブラウザからhttpsで接続し測定します。

http2_lb_front.png

測定結果

ネットワークタブのprotocol欄"h2"(HTTP/2)と表示されています。右下にブラウジング速度が表示されています。(画像は1回目のみ載せます。)

result_http2.png

実際の測定結果です。

計測 結果
1回目 945 ms
2回目 1.03 s
3回目 793 ms
4回目 620 ms
5回目 889 ms
平均 855.4 ms

QUICプロトコルのWEBブラウジング速度

HTTPS LOAD BALANCING の設定

フロントエンドのQUICネゴシエーション"有効"に設定して、Chrome ブラウザからhttpsで接続し測定します。

QUIC_lb_front.png

測定結果

ネットワークタブのprotocol欄"http/2+QUIC/39"と表示されてQUIC プロトコルが使用されていることがわかります。右下にブラウジング速度が表示されています。(画像は1回目のみ載せます。)

result_QUIC.png

実際の測定結果です。

計測 結果
1回目 907 ms
2回目 796 ms
3回目 983 ms
4回目 728 ms
5回目 798 ms
平均 842.4 ms

結果

今回の3プロトコルの速度比較は想定通り、以下の順になりました。
  QUICプロトコル(842.4 ms) < HTTP/2(855.4 ms) < HTTP/1.1(2.26 s)

現在、GCP の HTTPS LOAD BALANCING を利用しているWEBサービス・システムは、QUICプロトコルに対応したChrome ブラウザを使用するだけで、より高速なWEBブラウジングが期待できると考えます。(GCPの設定変更等は各自の責任において行ってください。)

おわりに

期待通りの結果ではありましたが、QUICプロトコルHTTP/2は微妙な差でした。しかし、QUICプロトコルUDPベースであることから、本記事の検証より更に大量かつサイズが大きい画像をリンクしているファイルのWEBブラウジングやトラフィックが混んでいる時にその特性を活かし、有用性は更に高まると考えます。(時間ができたら検証します)

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1