Important
Azure Application GatewayでのHTTP/3サポートは現在プレビュー段階です。 プレビュー段階では、この機能の機能、可用性、およびその他の側面が、フィードバックに応じて変更される可能性があります。
このプレビュー バージョンは、サービス レベル アグリーメントなしで提供され、運用環境のワークロードには推奨されません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。
詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
Azure Application Gatewayは、ハイパーテキスト転送プロトコルの最新バージョンであるHTTP/3をサポートしています。 HTTP/3は接続層としてTCPの代わりにUDPベースのトランスポートプロトコルであるQUICを使用します。 HTTP/3は、特にモバイルやロスのあるネットワーク上のクライアント向けに、インターネット接続アプリケーションでの接続性能と信頼性の向上に役立ちます。
HTTP/3は単一の往復(1-RTT)で接続を確立できるため、以前のHTTPバージョンと比べて接続設定遅延を削減するのに役立ちます。 また、TCPヘッドオブラインブロックなしで、単一の接続上で複数のストリームを多重化することもサポートしています。
HTTP/3はQUICと組み込みのTLS 1.3セキュリティを使用しています。
QUICベースのHTTP/3機能とユースケース
Application GatewayのHTTP/3サポートは、インターネット対応アプリケーション向けにQUICベースの機能を提供し、接続確立の高速化、独立したストリーム処理、ネットワーク間の接続移行などが含まれます。
接続確立の高速化
QUICはTCPの三者ハンドシェイクを1-RTTハンドシェイクに置き換えることで、接続確立の遅延を削減します。 この短縮により、接続設定時間を大幅に短縮し、特にレイテンシに敏感なアプリケーションにおいて初期ページロードのパフォーマンスを向上させることができます。
ウェブアプリケーション、メッセージングプラットフォーム、音声アシスタント、取引ベースのシステム、モバイルバンキング、通知サービス、APIなどのワークロードは、接続開始の高速化とユーザーの遅延の軽減により恩恵を受けることができます。
独立したHTTPストリーム
HTTP/3は単一のQUIC接続上で複数のストリームを多重化することをサポートしています。 TCPベースのプロトコルでは、パケットの損失や遅延が同じ接続上での後続パケットの配信をブロックすることがあり、これをヘッド・オブ・ライン・ブロッキングと呼びます。 QUICはストリームを独立して処理するため、あるストリームにパケットロスが起きても他のストリームの進行が妨げられません。 この動作は、ウェブ閲覧、インスタントメッセージング、IoT通信、APIトラフィック、金融取引などのワークロードに対するレスポンシブ性を向上させることができます。
接続移行
QUICは、クライアントのIPアドレスとポートだけでなく、接続識別子を用いて接続移行をサポートします。 このサポートにより、クライアントがネットワークを変更したり新しいIPアドレスを受け取った場合でも接続を継続できます。
QUIC接続移行は、トラフィックを新しい接続として扱うことなく、クライアントのIPアドレスやポートを変更することを可能にします。 この変更により、クライアントがセルラーからWi-Fiへとネットワーク間を移動する際の新しい接続設定やTLSハンドシェイクを避けることができます。
制限事項
公開プレビュー中は以下の制限が適用されます:
- マルチサイトリスナーはサポートされていません。
- IPv6リスナーや相互認証はサポートされていません。
- Web Application Firewall(WAF)ゲートウェイはHTTP/3リスナーを使用できません。
- Public-Private IP Same Port 機能は HTTP/3 リスナーにはサポートされていません。
- Azure PowerShell、Azure CLI、Terraform はこの機能をサポートしていません。 サポートは一般提供で予定されています。
HTTP/3の有効化
HTTP/3はリスナーレベルで設定し、アプリケーションゲートウェイレベルでは設定しません。 新しいリスナーを作成する時や既存のリスナーを更新することで、個々のBasicリスナーでHTTP/3を有効にすることができます。 HTTP/3を有効にするにはAzureポータルかREST APIを使ってください。 REST APIを使用する場合は、APIバージョン2023-02-01以降を使用してください。
HTTP/3はQUICを使用し、TLS 1.3が必要です。 HTTP/3を有効にするには、リスナーはTLS 1.3をサポートする事前定義されたTLSポリシーを使用する必要があります。 現在、2022年のTLSポリシーのみがTLS 1.3をサポートしています。 2022年の事前定義TLSポリシーを設定しておらず、リスナーがTLS 1.3をサポートしないデフォルトポリシーを使っている場合、HTTP/3を有効にすることはできません。 リスナーでHTTP/3を有効にすると、そのリスナーにのみ適用されます。
HTTP/3はフロントエンドクライアント接続にのみ適用されます。 バックエンド接続は引き続きHTTP/1.1を使用しています。
パブリックプレビューでは、AzureポータルまたはREST APIを使ってアプリケーションゲートウェイリスナーでHTTP/3を有効にすることができます。
Azureポータルを使ってHTTP/3を設定
パブリックプレビュー中は、Azureポータルの新しいアプリケーションゲートウェイ作成フローの一部としてリスナーでHTTP/3を有効にすることはできません。 ポータルでHTTP/3を設定するには、まずアプリケーションゲートウェイを作成し、新規または既存のリスナーでHTTP/3を有効にしてください。
- Azureポータルでアプリケーションゲートウェイを開きます。
- 設定の中からリスナーを選択します。
- 既存のBasicリスナーを選択するか、新しいBasicリスナーを追加してください。
- リスナーのHTTP/3を有効にしてください。 保存を選びます。
- HTTP/3をサポートするクライアントを使ってアプリケーションゲートウェイに接続してください。
REST APIを使ってHTTP/3を設定できます
REST APIを使ってHTTP/3を設定するには、Network Resource Provider APIバージョン 2023-02-01以降をご利用ください。
既存のアプリケーションゲートウェイリソース構成を取得してください。 参考文献: Application Gateways - Get
httpListenersコレクションでHTTP/3を有効にしたいリスナーを更新してください。enableHttp3プロパティをtrueに設定します。"enableHttp3": truePUTリクエストを使ってアプリケーションゲートウェイリソースを更新します。 参考文献: アプリケーションゲートウェイ - 作成または更新
HTTP/3をサポートするクライアントを使ってアプリケーションゲートウェイに接続してください。