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/