Fastly サービスで HTTP/3 を有効にする
最終更新日 2022-03-29
このガイドでは、Fastly サービスで HTTP/3 を有効にする方法をご説明します。
HTTP/3 について
HTTP/3 は、QUIC と呼ばれる Web トランスポートプロトコル標準を使用し、HTTP/1.1 および HTTP/2 接続からのアップグレードオプションとしてエンドユーザーのクライアントに提供できます。エンドユーザーのクライアントはまず古いバージョンの HTTP を使用して Fastly サービスに接続し、Fastly サービスが HTTP/3 を提供する場合にのみ HTTP/3 の使用を試みます。
以前のバージョンの HTTP で使用される TCP トランスポートプロトコルとは異なり、QUIC では TLS 1.3 を使用してすべての接続が保護されます。TLS 1.3 と同様に、QUIC はオプションの 0-RTT 機能をサポートし、再開された接続のレイテンシを削減することができます。
前提条件
Fastly のエッジクラウドサービスで HTTP/3 を使用するには、以下が必要です。
- スーパーユーザーの役割が割り当てられた Fastly ユーザーアカウント
- 適切に設定された Fastly サービスに追加された、HTTP/3 で使用する関連ドメイン
- 使用するドメインの DNS レコードを変更するアクセス権利
制限と主要な動作
- HTTP/3 のメリットが最も期待されるのがエンドユーザー接続であるため、現在 Fastly ではエンドユーザー接続のみにて HTTP/3 をサポートしています。Fastly とオリジンサーバー間の通信で HTTP/3 はサポートされません。
- HTTP/3 によって使用される QUIC トランスポートプロトコルでは、TLS 1.3 を使用してすべての接続を保護する必要があります。つまり、HTTP/3 を使用できるようドメインを設定する際、HTTP/1.1 または HTTP/2 を使用しているクライアントに TLS 1.3 を提供するようドメインを設定することになります。
Fastly サービスで HTTP/3 を有効にする
Fastly サービスで HTTP/3 を有効にするには、まずドメインに HTTP/3 を設定し、サービスがクライアント接続で HTTP/3 を提供するように設定します。
ドメインの HTTP/3 設定
新規ドメインに HTTP/3 を設定するには、新規ドメインに TLS 1.3 を設定するをご覧ください。
既存のドメインに HTTP/3 を設定するには、以下の手順を実行します。
- Fastly コントロールパネルにログインし、Secure リンクをクリックします。Secure ページでは、Fastly のセキュリティ製品の概要が表示されます。
- Manage certificates ボタンをクリックします。TLS domains ページが表示され、TLS が有効化された、または有効化可能なドメインが表示されます。
- HTLS/3 を提供するようにしたいドメインを探し、TLS configuration and DNS details の列をチェックし、HTTP/3 が有効化されているかどうかを確認します。
- 列に
HTTP/3 & TLS v1.3
または、HTTP/3 & TLS v1.3 + 0RTT
の値がある場合、ドメインはすでに HTTP/3 をサポートしています。次のセクションで、Fastly サービスからそのドメインへのトラフィックで HTTP/3 を使用できるようにします。 - 列に HTTP/3 値が表示されない場合、次のセクションに進む前に、手順に従ってこのドメインに対して TLS 1.31 を有効化します。
- 列に
Fastly サービスから HTTP/3 を提供する
HTTP/3 は、エンドユーザーの接続をアップグレードするオプションとして設計されています。つまり、エンドユーザーのクライアントはまず古いバージョンの HTTP を使用して Fastly サービスに接続し、Fastly サービスが HTTP/3 を提供する場合にのみ HTTP/3 の使用を試みます。
HTTP/3 スイッチをクリックし、サービスが HTTP/3 を提供するように設定します。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Settings をクリックします。Settings ページが表示されます。
- HTTP/3 スイッチをクリックし、サービスが HTTP/3 を提供するように設定します。
- Activate ボタンをクリックして設定変更をデプロイします。
(レギュラー VCL スニペットまたはカスタム VCL メソッドによって) VCL を直接使用してサービスを設定している場合、受信 (vcl_recv
) サブルーチンで次の VCL を使用して、サービスが HTTP/3 を提供するよう設定できます。
h3.alt_svc();
HTTP/3 トラフィックを Fastly に送信する
Fastly の専用 IP アドレスを使用しない限り、HTTP/3 を有効化するための最終ステップとして、以下の CNAME のいずれかを使用して、ドメインの DNS レコードがユーザーを HTTP/3 が有効化された正しい Fastly アドレスにルーティングすることを確認する必要があります。
0RTT は有効ですか? | IPv4 および IPv6 デュアルスタックルーティング | IPv4 のみのルーティング |
---|---|---|
はい | dualstack.n.sni.global.fastly.net | n.sni.global.fastly.net |
いいえ | dualstack.m.sni.global.fastly.net | m.sni.global.fastly.net |
Fastly サービスとのクライアント互換性テスト
HTTP/3 をサポートできるかどうかブラウザまたはその他のクライアントをテストしたい場合、Fastly が作成して公開している HTTP/3 テストページを使用して、クライアントによるサポートを検証することができます。クライアントを使用して https://http3.is にアクセスすると、結果として返されるページで HTTP/3 が正常に使用されてページがリクエストされたかどうかを確認できます。リクエストが HTTP/3 を使用しなかった場合、Fastly によってどの IETF 草案バージョンが 現在使用されているかも表示されます。サポートされているバージョンの情報を使用し、クライアントおよびクライアント設定を更新することができます。
正しく設定されている場合でも、HTTP/3 対応 Web サイトへのブラウザからの最初のリクエスト (またはブラウザの開発者が設定したタイムアウト期間後の最初のリクエスト) は、HTTP/3 の提供を受信したことが無いため、常に古い HTTP バージョンを使用することにご注意ください。最初のリクエスト後に HTTP/3 の成功ページが表示されない場合は、ブラウザでリロードを実行することで、それ以後のリクエストにて HTTP/3 を使用する機会を与えることができます。
HTTP/3 トラフィックを提供する
サービスが適切に設定された後、サービスのドメインに対するリクエストは、これらのプロトコルをサポートするクライアントから送信されている限り、HTTP/3 をサポートできるはずです。
QUIC 接続および HTTP/3 リクエストが成功すると、クライアントはそのドメインに対するそれ以降のすべてのリクエストと接続に QUIC と HTTP/3 を使用します。QUIC 接続や HTTP/3 リクエストにおいて問題が発生した場合、クライアントは TCP を介した標準の HTTP/1.1 または HTTP/2 接続に自動的にフォールバックします。これが優先事項である場合、選択したクライアントがこのフォールバックを実行することを確認する必要があります。
HTTP/3 トラフィックをモニタリングする
Fastly のリアルタイムログストリーミング機能および 履歴統計 を使用して、HTTP/3 リクエストをモニタリングすることができます。また、HTTP/3 および QUIC に関連するさまざまな VCL 変数を追加しました。
HTTP/3 の無効化
HTTP/3 が有効化されていない過去のサービスバージョンを有効化するか、新しいサービス設定バージョンを作成し、HTTP/3 スイッチを無効化することで、Fastly サービスで HTTP/3 サポートを無効化できます。