Text
Page: 1
パブリッククラウドにおける
QUIC現状確認2023年8月編
unasuke (Yusuke Nakamura)
CloudNative Days Fukuoka 2023
2023-08-03
Page: 2
自己紹介
Name: うなすけ
Work: フリーランス
Kaigi on Rails オーガナイザー (10/27-28 開催)
RubyでQUICを実装しようとしている
GitHub https://github.com/unasuke
ActivityPub https://mstdn.unasuke.com/@unasuke
X (Twitter) https://twitter.com/yu_suke1994
Page: 3
“QUIC” ?
QUIC is a secure general-purpose transport
protocol.
https://www.rfc-editor.org/rfc/rfc9000.html
2021年5月に標準化
UDPを用いる
QUICをゆっくり解説 – 新しいインターネット通信規格 | IIJ
Engineers Blog
Page: 4
実はもう身近なQUIC
https://www.youtube.com
https://fonts.google.com/
https://fonts.gstatic.com
気づいていないだけで、普段の通信の数割はもうQUICかも
Page: 5
最近のQUIC
QUIC Version 2 (2023-05)
https://www.rfc-editor.org/rfc/rfc9369.html
QUIC version 2 is meant to mitigate ossification
concerns and exercise the version negotiation
mechanisms.
IETF 117 San Francisco (2023-07-24〜)
draft-ietf-quic-multipath-05
draft-ietf-quic-load-balancers-16
draft-ietf-quic-reliable-stream-reset-01
etc
Page: 6
NGINX 1.25.0
https://nginx.org
Page: 7
このセッションで話すこと
静的WebサイトでQUICを使う
アプリケーションプロセスに対してQUICでアクセスする
AWS, GCP
NGINX, H2O
2023年8月時点での状況
Page: 8
このセッションで話さないこと
QUICをサービスに導入する際の注意事項
話者にQUICのproductionでの運用経験はありません
まだ仕様が固まってない(後述)
Page: 9
前準備
Open DevTools!
Page: 10
テスト用Webサイトについて
https://github.com/unasuke/cndf2023-infra
inspired by https://www.httpvshttps.com
HTTP/2との速度比較が目的ではない
同じ経路でHTTP/2とHTTP/3を両方用意するのがちょっと面倒
多分わかりやすい差が出ない
長くても2023年8月いっぱいまでしか動かしません
静的なものは残すかも
Page: 11
静的WebサイトでQUICを使う
Firebase Hosting (Fastly)
Cloudflare Pages
AWS CloudFront & S3
GCP Cloud Load Balancing & Cloud Storage
Page: 12
Firebase Hosting (Fastly)
https://firebase.cndf2023.unasuke.dev
Fastlyによる配信
https://firebase.google.com/terms/subprocessors
Page: 13
Cloudflare Pages
https://cndf2023.unasuke.dev
正確にはこれはCloudflareをCloudFrontの前段に配置したもの
Page: 14
AWS CloudFront & S3
https://aws-cloudfront-s3.cndf2023.unasuke.dev
CloudFrontは明示的にHTTP/3を有効にできる
https://aws.amazon.com/jp/about-aws/whats-new/2022/08/
amazon-cloudfront-supports-http-3-quic/
Page: 15
CloudFrontは明示的にHTTP/3を有効にできる
Page: 16
AWS CloudFront & S3 (HTTP/3 VS HTTP/2)
HTTP/3 (QUIC)
https://aws-cloudfront-s3.cndf2023.unasuke.dev
HTTP/2
https://aws-cloudfront-s3-http2.cndf2023.unasuke.dev
違いが体感できますか?
Page: 17
GCP Cloud Load Balancing & Cloud Storage
https://gcp-lb-storage.cndf2023.unasuke.dev
Cloud Storage単体でも……?
Page: 18
動的なアプリケーションでQUICを使う
AWS CloudFront & ALB & Fargate
AWS NLB & Fargate
GCP Cloud Load Balancing & Cloud Run
Page: 19
AWS CloudFront & ALB & Fargate
https://aws-cloudfront-fargate-nginx.cndf2023.unasuke.dev
nginx
https://aws-cloudfront-fargate-h2o.cndf2023.unasuke.dev
h2o
Page: 20
AWS NLB & Fargate
https://aws-nlb-fargate-nginx.cndf2023.unasuke.dev
nginx
https://aws-nlb-fargate-h2o.cndf2023.unasuke.dev
h2o
Page: 21
AWS NLB & Fargate
NLBとFargateの組み合わせでUDP通信ができるようになっている
(2020年)
AWS Fargate for Amazon ECS が Network Load Balancer を使
用した UDP ロードバランシングのサポートを開始
Page: 22
GCP Cloud Load Balancing & Cloud Run
https://gcp-lb-cloudrun-nginx.cndf2023.unasuke.dev
https://gcp-lb-cloudrun-h2o.cndf2023.unasuke.dev
Cloud Run単体でも……?
Page: 23
GCP Cloud Load Balancer
ロードバランサの機能比較 | 負荷分散 | Google Cloud
Cloud CDN とロード バランシングで QUIC を使用して HTTP/3 でコンテンツを
取得 | Google Cloud 公式ブログ
Page: 24
QUICをLoad Balancingするということ
https://datatracker.ietf.org/doc/draft-ietf-quic-load-
balancers/
HTTP/3をUDPロードバランサで分散するときの問題点 (AWS NLBで試
してみた) - ASnoKaze blog
インフラエンジニアなら気になるQUICのロードバランサ (方式編) | by
Jun-ya Kato | nttlabs | Medium
https://github.com/F5Networks/quic-lb
議論&実験中
Page: 25
余談: QUICを受け付ける
Alt-Srv ヘッダ
Alt-Svc: h3=":9443";
https://www.rfc-editor.org/rfc/rfc7838
https://datatracker.ietf.org/doc/draft-duke-httpbis-quic-
version-alt-svc/
DNS HTTPS レコード
https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-
https/
Page: 26
個人的所感
CDNを前段に挟める静的WebサイトでQUICを使うのはよさそう
趣味の範囲でもHTTP/3を使える
Web AppがQUICを受け付るのはまだ発展途上
標準化が見えてきている
HTTP/2で通信できていれば十分なのでは
HTTP/3にできなくて困るケースって?
静的assetsだけはHTTP/3というのは一手?
Page: 27
まとめ 2023年8月
実は既に日常生活でQUICが使われている
静的WebサイトでHTTP/3を有効にするのはすぐできる時代
大手CNDもHTTP/3での配信が可能
静的なassetsだけHTTP/3で配信というのはアリかも
QUIC-awareなload balancingはまだ議論段階
Page: 28
参考URL (1/3)
QUICをゆっくり解説 – 新しいインターネット通信規格 | IIJ
Engineers Blog
サイトの HTTP3 化と DNS HTTPS RR および Alt-Svc Header に
よるアドバタイズ | blog.jxck.io
AWS Fargate for Amazon ECS が Network Load Balancer
を使用した UDP ロードバランシングのサポートを開始
ロードバランサの機能比較 | 負荷分散 | Google Cloud
Cloud CDN とロード バランシングで QUIC を使用して HTTP/3 で
コンテンツを取得 | Google Cloud 公式ブログ
https://datatracker.ietf.org/doc/draft-ietf-quic-load-
balancers/
HTTP/3をUDPロードバランサで分散するときの問題点 (AWS NLBで
試してみた) - ASnoKaze blog
Page: 29
参考URL (2/3)
インフラエンジニアなら気になるQUICのロードバランサ (方式編) | by
Jun-ya Kato | nttlabs | Medium
QUIC-LBを読んでみる Zenn
https://github.com/F5Networks/quic-lb
HTTP/3でQUICv2を使うためのalt-svc拡張 - ASnoKaze blog
HTTPSの接続情報を通知する “HTTPS DNSレコード” の提案仕様
(2021/07更新) - ASnoKaze blog
https://datatracker.ietf.org/doc/draft-duke-httpbis-
quic-version-alt-svc/
https://www.rfc-editor.org/rfc/rfc7838
https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-
https/
Page: 30
参考URL (3/3)
https://http3-explained.haxx.se/