みなさん。こんにちは。サニービュー事業部の小寺です。
Amazon CloudFrontが HTTP/3のサポートを開始しました。
https://aws.amazon.com/jp/about-aws/whats-new/2022/08/amazon-cloudfront-supports-http-3-quic/
そもそもHTTP/3とは?どうやって設定するのか等、お伝えします。
今更聞けない?HTTP/3とは
HTTP/3は、HTTP/2 よりウェブサイトの表示速度をさらに高速化するための 通信プロトコル QUICを使ったバージョンです。HTTP/3では、通信の効率化に向けた工夫が数多く実装され、Webコンテンツの表示が高速化できます。
もともとQUIC(Quick UDP Internet Connections)は、GoogleがWebアクセスを高速化するために開発したTCP(Transmission Control Protocol)の代替となる技術です。TCP(Transmission Control Protocol)ではなく、UDP(User Datagram Protocol)に基づくプロトコルです。
従来のHTTP/2 はリクエストの多重化と優先度の制御を行うことで、HTTP/1 よりも高速化できるようになっています。さらに進化したHTTP/3 では、リクエストの多重化と暗号化を「QUIC」が行い、ハンドシェイクは TLS で行う構造になっているので、セキュリティ面も進化しています。
Amazon CloudFrontでHTTP/3を有効化する
CloudFront の HTTP/3 サポートは、Rust での新しいオープンソース QUIC プロトコル実装である s2n-quic の上に構築がされているとのことです。
早速、AWSコンソールから設定をしてみました。
(1) CloudFrontのディストリビューションより「新規作成」をクリックします。
(2)次の画面の「設定」でデフォルトでは、「HTTP/3」はオフになっているので、チェックボックスにチェックを入れます。
設定はこの作業のみで完了です。既存のディストリビューションもHTTP/3を有効化したいときは、「設定」の編集から同じ手順で対応します。
既に作成済のものが自動的にHTTP/3が有効化されているわけではないです。
どこで対応しているの?
HTTP/3は、世界中の 410 以上の CloudFront エッジロケーションすべてで利用ができます。HTTP/3を使うための追加料金はかかりません。
まとめ
AWSでの設定は簡単にできますね。ご紹介させていただいた通り、HTTP/3とそれ以前のバージョンでは通信方式が大きく変わります。CloudFront の HTTP/3 実装はクライアント側の接続の移行をサポートしているので、CloudFrontを使ってアプリケーションへの影響が少なくHTTP/3を利用できそうですね。
CloudFrontの利用者が配信で HTTP/3 を有効にした場合、最初の 1 バイトを受信するまでの時間が最大10%、ページのロード時間が最大15% 改善されるとのことです。さらに、配信で HTTP/3 を有効にすると、ハンドシェイクの失敗が減少するため、信頼性も向上します。今後、社内でも活用していきたい機能の一つです。