Rabbit Slide Show

CNDF2023

2023-08-03

Description

* https://event.cloudnativedays.jp/cndf2023/talks/1890 * https://github.com/unasuke/cndf2023-infra

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/

Other slides

ruby30th-lt ruby30th-lt
2023-02-25