AWSは8月15日(米国時間)、同社が提供するCDNサービス「Amazon CloudFront」でHTTP/3をサポートしたことを発表しました。HTTP/3はトランスポートレイヤにTCPではなく「QUIC」というUDPベースのプロトコルを採用していますが、CloudFrontではQUICの実装にAWSがオープンソースとして公開したRustベースのAPI「s2n-quic」を使っている点が特徴となっています。
- Amazon CloudFront now supports HTTP/3 powered by QUIC
- New – HTTP/3 Support for Amazon CloudFront(AWS News Blog)
- s2n-quic(GitHub)
2022年6月に「RFC 9114」として勧告されたばかりのHTTP/3はQUICを採用することで、既存のTCP/TLSベースのHTTPが抱えていたHoL(Head of Line Blocking)や通信時のオーバーヘッドを大幅に低減し、パフォーマンスの高速化を実現します。勧告からあまり時間が経っていないにもかかわらず、すでに世界中の多くの企業が自社のWebサイトをHTTP/3に対応させており、今回のCloudFrontにおけるサポートは、そうした急速なHTTP/3の拡がりのタイミングを適切にとらえたといえます。
前述したように、CloudFrontのHTTP/3サポートでは、QUICの実装にAWSが開発したRustベースのs2n-quicを使っています。s2n-quicはシンプルで使いやすく、高速なAPIをめざして設計されており、Rustで書かれていることでパフォーマンスやスレッド、メモリの安全性といったメリットを受けやすくなっている点が特徴です。なお、AWSは2015年にオープンソースの暗号化ライブラリ「s2n(signal to noise)」を公開しましたが、これはTLSベースのAPIでした。AWSは2022年2月にs2n-quicがアナウンスされたタイミングでs2nを「s2n-tls」にリネームし、現在はs2n-tls、s2n-quic、そして巨大な整数クラスを扱う「s2n-bignum」をあわせた、AWSのオープンソース暗号化ライブラリファミリ「s2n」として位置づけています。ファミリ内のAPI間では互換性が保たれており、s2n-quicはTLS 1.3ハンドシェイクでs2n-tlsに依存しています。
すでにCloudFrontのユーザであるSnapやZillow、Audible、Skyscannerといった企業がアーリーアクセスプログラムでHTTP/3サポートを利用しており、その中でも大規模ユーザであるSnapは、全世界で3億人以上が利用するソーシャルネットワークアプリ「Snapchat」において、レイテンシを20%低減できたと報告しています。Snapchatでは毎日54億以上のスナップ(写真や動画)がネットワーク上を流れていきますが、QUICが利用可能になったことで、コンテンツの送受信におけるレイテンシとパケットロスが劇的に大幅に低減、「Snapchatが世界中の人々にとってより良い存在になった」とコメントしています。
CloudFrontのHTTP/3サポートは、世界410カ所以上のエッジロケーションから利用可能になっており、CloudFrontユーザであれば無料で利用することができます。設定方法についてはAWSのほか、すでにクラスメソッドの公開ブログでも詳しく紹介されているので、これらを参考にHTTP/3という新しいプロトコルにトライしてみることをお勧めします。