すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:QUIC リスナーを使用した HTTP/3 のサポート

最終更新日:Aug 29, 2026

Application Load Balancer (ALB) インスタンスで QUIC リスナーを作成すると、互換性のあるクライアントが HTTP/3 経由で Service にアクセスできるようになります。HTTP/3 は、モバイルネットワーク、オンラインゲーム、ライブビデオストリーミングなど、複雑なネットワーク環境、変動する帯域幅、厳しいレイテンシー要件を持つシナリオに適しており、データの再送信と通信のレイテンシーを削減します。

仕組み

QUIC は UDP ベースのトランスポートプロトコルであり、HTTP/3 の基盤です。QUIC は、多重化、0-RTT ハンドシェイク、効率的な輻輳制御アルゴリズム、シームレスなコネクションマイグレーションをサポートしています。TLS と TCP 上で動作する HTTP/2 と比較して、QUIC 上の HTTP/3 はデータの再送信と通信のレイテンシーを大幅に削減します。QUIC の詳細については、公式の QUIC ドキュメントをご参照ください。

  • QUIC リスナーのみ — QUIC リスナーを作成すると、クライアントが HTTP/3 経由で Service にアクセスできるようになります。

  • QUIC リスナーと HTTPS リスナーの併用 — 一部のクライアントが HTTP/1.1 または HTTP/2 経由で Service にアクセスする必要がある場合は、QUIC リスナーと HTTPS リスナーを併用して、複数の HTTP プロトコルとの互換性を確保します。

    2つのリスナーを併用すると、ALB インスタンスは次の図に示すように動作します。QUIC リスナーと HTTPS リスナーは同じポートでリッスンし、同じ一連の転送ルールを使用します。ALB インスタンスがクライアントリクエストを受信すると、リクエストをバックエンド Service に転送する際に QUIC リスナーを優先します。クライアントが HTTP/3 をサポートしていない場合、ALB インスタンスは HTTPS リスナー経由でリクエストを転送します。

image

前提条件

  • AlbConfig リソースが作成されていること。詳細については、「ALB Ingress の開始」をご参照ください。

  • ALB Ingress を介して公開する Service の Ingress が作成されていること。

  • リスナーで利用可能な証明書があること。このトピックの例では、AlbConfig で証明書を ID で指定します。QUIC リスナーは、自動検出された証明書と Secret 証明書もサポートしています。詳細については、「HTTPS 経由の暗号化通信のための証明書の設定」をご参照ください。

  • kubectl がインストールされ、クラスターに接続されていること。

  • HTTP/3 をサポートする curl ビルドが検証用に利用できること。一部の curl ビルドは、デフォルトでは HTTP/3 をサポートしていません。

スタンドアロン QUIC リスナーの使用

すべてのクライアントが HTTP/3 をサポートしている場合は、スタンドアロン QUIC リスナーを使用します。この設定では、AlbConfig で 1 つの QUIC リスナーを宣言します。一部のクライアントが HTTP/1.1 または HTTP/2 経由で Service にアクセスする場合は、代わりに次のセクションで説明するように、QUIC リスナーと HTTPS リスナーを併用します。

ステップ1:AlbConfig での QUIC リスナーの作成

  1. 次のコマンドを実行して AlbConfig を変更します。

    kubectl edit albconfig <ALBCONFIG_NAME> # <ALBCONFIG_NAME> を AlbConfig の名前に置き換えます。
  2. QUIC リスナーを作成します。

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # QUIC リスナー
          certificates:
          - CertificateId: 756****-cn-hangzhou # 証明書 ID
            IsDefault: true

ステップ2:設定の確認

ALB Ingress を介して HTTP/3 経由で Service にアクセスし、QUIC リスナーが期待どおりに動作することを確認します。

  1. 次のコマンドを実行して Ingress を照会します。

    kubectl get ingress

    出力の HOSTS 列と ADDRESS 列を控えておきます。

  2. 次のコマンドを実行して、HTTP/3 経由で Service にアクセスします。demo.alb.ingress.topalb-********.alb.aliyuncs.com を、前の手順で取得した値に置き換えます。

    説明

    一部の curl ビルドは、デフォルトでは HTTP/3 をサポートしていません。HTTP/3 をサポートする curl ビルドを使用してください。

    curl --http3 -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old

QUIC リスナーと HTTPS リスナーの併用

一部のクライアントが HTTP/1.1 または HTTP/2 経由で Service にアクセスする場合は、QUIC リスナーと HTTPS リスナーを併用します。この設定では AlbConfig に両方のリスナーを宣言するため、最初にスタンドアロン QUIC リスナー設定を完了する必要はありません。

ステップ1:AlbConfig での QUIC リスナーと HTTPS リスナーの作成

  1. 次のコマンドを実行して AlbConfig を変更します。

    kubectl edit albconfig <ALBCONFIG_NAME> # <ALBCONFIG_NAME> を AlbConfig の名前に置き換えます。
  2. 同じポートに QUIC リスナーと HTTPS リスナーを作成し、quicConfig フィールドを HTTPS リスナーに追加します。

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # QUIC リスナー
          certificates:
          - CertificateId: 756****-cn-hangzhou # 証明書 ID
            IsDefault: true
        - port: 443
          protocol: HTTPS # HTTPS リスナー
          certificates:
          - CertificateId: 756****-cn-hangzhou # 証明書 ID
            IsDefault: true
          quicConfig:
            quicListenerId: "" # このフィールドは現時点では空のままにします。値はステップ3で指定します。
            quicUpgradeEnabled: false # 値をfalseに設定します。

ステップ2:Ingress へのアノテーションの追加

Ingress リソースにアノテーションを追加して、Ingress が複数のリスナーに適用されるようにします。

  1. 次のコマンドを実行して Ingress を編集します。

    kubectl edit ingress quic-ingress # quic-ingress をIngressの名前に置き換えます。
  2. annotations フィールドを Ingress に追加します。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: #...
      annotations:
        alb.ingress.kubernetes.io/listen-ports: '[{"QUIC": 443},{"HTTPS": 443}]' # 複数のリスナーを使用する場合、ALB Ingress が期待通りに動作するように、このアノテーションが必要です。
    spec:
      #...

ステップ3:リスナーの関連付け

QUIC リスナーを HTTPS リスナーに関連付け、ALB コンソールで関連付けが適用されていることを確認します。

  1. ALB コンソールにログインします。

  2. インスタンス ページで、対象の ALB インスタンスの ID をクリックします。リスナー タブで、[Listener Protocol/Port] が QUIC:443 のリスナーを見つけ、このリスナーの ID を控えておきます。

  3. AlbConfig で QUIC リスナーの ID を指定します。

    1. 次のコマンドを実行して AlbConfig を変更します。

      kubectl edit albconfig <ALBCONFIG_NAME> # <ALBCONFIG_NAME> を AlbConfig の名前に置き換えます。
    2. QUIC リスナーの ID を quicListenerId フィールドに指定し、quicUpgradeEnabled フィールドの値を true に変更します。

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: alb
      spec:
        config:
          #...
        listeners:
          - port: 443
            protocol: QUIC # QUIC リスナー
            certificates:
            - CertificateId: 756****-cn-hangzhou # 証明書 ID
              IsDefault: true
          - port: 443
            protocol: HTTPS
            certificates:
            - CertificateId: 756****-cn-hangzhou # 証明書 ID
              IsDefault: true 
            quicConfig: 
              quicListenerId: lsn-tnz740dr8p5h65**** # 特定のQUIC リスナーのリスナーID。
              quicUpgradeEnabled: true # 値をtrueに変更します。
  4. リスナーが関連付けられていることを確認します。

    1. ALB コンソールにログインします。

    2. [Instances] ページで、対象の ALB インスタンスの ID をクリックします。インスタンス詳細ページで、[Listener] タブをクリックします。リスナーリストで、対象の HTTPS リスナーの名前をクリックします。リスナーの詳細 タブで、関連付けられた QUIC リスナーを確認します。

ステップ4:設定の確認

ステップ3では、ALB コンソールでの関連付けを確認しました。このステップでは、クライアントから ALB Ingress を介して Service にアクセスし、ALB インスタンスが HTTP/3 と HTTPS の両方でリクエストを処理することを確認します。

  1. 次のコマンドを実行して Ingress を照会します。

    kubectl get ingress

    出力の HOSTS 列と ADDRESS 列を控えておきます。

  2. 次のコマンドを実行して、HTTP/3 経由で Service にアクセスします。demo.alb.ingress.topalb-********.alb.aliyuncs.com を、前の手順で取得した値に置き換えます。

    説明

    一部の curl ビルドは、デフォルトでは HTTP/3 をサポートしていません。HTTP/3 をサポートする curl ビルドを使用してください。

    curl --http3 -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old
  3. 次のコマンドを実行して、従来の HTTPS 経由で Service にアクセスします。demo.alb.ingress.topalb-********.alb.aliyuncs.com を、先ほどと同じ値に置き換えます。

    curl -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old

(オプション) ステップ5:関連付けの解除

HTTPS リスナーと QUIC リスナーを連携させる必要がなくなった場合は、関連付けを解除します。AlbConfig の他のフィールドは変更されません。

  1. 次のコマンドを実行して AlbConfig を変更します。

    kubectl edit albconfig <ALBCONFIG_NAME> # <ALBCONFIG_NAME> を AlbConfig の名前に置き換えます。
  2. quicListenerId フィールドをクリアし、quicUpgradeEnabled フィールドの値を false に変更して、変更を保存して終了します。

    # 前の内容は省略
        - port: 443
          protocol: HTTPS
          quicConfig:
            quicListenerId: "" # QUIC リスナーのリスナーIDをクリアします。
            quicUpgradeEnabled: false # 値をfalseに変更します。
    # 後の内容は省略

関連ドキュメント