Global Accelerator (GA) インスタンスで構成されている HTTPS サービスのパフォーマンスを向上させるために HTTP/2 を使用する場合、GA インスタンスの HTTP/2 を構成できます。 HTTP/2 を有効にすると、HTTPS サービスは HTTP/2 の利点を利用して、サービスのパフォーマンスを大幅に向上させ、ネットワーク遅延とオーバーヘッドを削減し、アクセスエクスペリエンスを向上させることができます。
HTTP/2 とは
HTTP/2 接続ネゴシエーション
HTTPS 接続のネゴシエーションプロセス中に、アプリケーションデータを送信する前に、クライアントとサーバー間で TLS 接続を確立する必要があります。 HTTP/2 は、Application-Layer Protocol Negotiation (ALPN) メカニズムを使用して、クライアントとサーバーが使用するプロトコルバージョンをネゴシエーションできるようにします。
Global Accelerator インスタンスの HTTP/2 を有効にすると、Global Accelerator インスタンスは、クライアントから送信された ClientHello メッセージの ALPN フィールドのプロトコルバージョンとして h2 を指定します。 さらに、GA インスタンスは、サーバーから返された ServerHello メッセージの ALPN フィールドのプロトコルバージョンを無視し、HTTP/2 を強制的に使用してバックエンドサービスに接続します。
例
次のシナリオは例です。 米国 (シリコンバレー) リージョンに本社を置く企業は、仮想プライベートクラウド (VPC) 内の Elastic Compute Service (ECS) インスタンスに HTTPS Web サイトをデプロイします。 アプリケーションのほとんどのユーザーは、中国 (香港) リージョンからアプリケーションにアクセスします。 企業は、不安定なクロスボーダーネットワークが原因で発生する可能性のあるネットワーク遅延、ネットワークジッター、パケット損失などのネットワーク問題に対処するために Global Accelerator インスタンスを購入しました。
Web サイトのパフォーマンスをさらに向上させ、Web サイトへのアクセスを最適化するために、企業は GA インスタンスの HTTP/2 リスナーを構成することにしました。
Global Accelerator インスタンスのバックエンドサービスが HTTPS を使用している場合、HTTP/1.1 を使用してバックエンドサービスに接続します。 この場合、企業は Global Accelerator インスタンスの構成を変更して、HTTP/2 を使用してバックエンドサービスに接続する必要があります。 これにより、企業はパフォーマンス最適化における HTTP/2 の利点を利用できます。
制限
GA インスタンスの HTTP/2 を構成する場合、次の制限が適用されます。
デフォルトでは、[プロトコルバージョン] 選択機能は無効になっています。 この機能を使用するには、アカウントマネージャーにお問い合わせください。
WebSocket プロトコルはサポートされていません。
HTTP/2 プロトコルのサーバープッシュ機能はサポートされていません。
HTTP/2 に基づく gRPC リクエストは高速化できません。
前提条件
サーバー証明書は、SSL Certificates Service コンソールで購入またはアップロードされます。 詳細については、「公式証明書を購入する」および「SSL 証明書をアップロードして共有する」をご参照ください。
証明書はバックエンドサーバーにアップロードされます。 詳細については、「クラウドアシスタントを使用して ECS インスタンスにファイルをアップロードする」をご参照ください。
ポート 443 を使用する HTTPS サービスがデプロイされ、HTTP/2 が有効になっています。
バックエンドサーバーが属するセキュリティグループで TCP ポート 443 へのアクセスが許可されていることを確認してください。 詳細については、「セキュリティグループルールを追加する」をご参照ください。
Global Accelerator インスタンスが作成されます。NGINX サービスがデプロイされている ECS インスタンスは、GA インスタンスのエンドポイントとして指定されます。バックエンドサービスのプロトコルは HTTPS に設定されます。詳細については、「標準 GA インスタンスを作成および管理する」をご参照ください。
証明書に関連付けられているドメイン名は、Global Accelerator によって割り当てられた CNAME ドメイン名にマッピングされます。詳細については、「ドメイン名の CNAME レコードを追加する」をご参照ください。
HTTP/2 を構成する
このセクションでは、主要なパラメーターについてのみ説明します。その他のエンドポイントグループパラメーターの詳細については、「インテリジェントルーティングリスナーのエンドポイントグループを作成および管理する」をご参照ください。
GA コンソール にログオンします。
インスタンス ページで、管理する GA インスタンスを見つけ、操作 列の リスナーの設定 をクリックします。
リスナー タブで、管理するリスナーを見つけ、操作 列の エンドポイントグループの編集 をクリックします。
リスナーとプロトコルの設定 ステップで、[次へ] をクリックします。
エンドポイントグループの設定 ステップで、[プロトコルバージョン] に HTTP/2 を選択し、[次へ] をクリックします。
設定の確認 ステップで、構成を確認し、送信 をクリックします。
検証
エンドポイントグループ構成でプロトコルバージョンを HTTP/2 に設定する前後で、次の手順を実行して HTTP/2 が有効になっているかどうかを確認できます。
中国 (香港) リージョンのクライアントでブラウザを開き、
https://<高速化ドメイン名>
と入力します。次に、Enter キーを押して、バックエンドサービスにアクセスできるかどうかを確認します。米国 (シリコンバレー) リージョンのバックエンドサーバーにログオンします。 CLI を開き、次のコマンドを実行して、最新の訪問レコードを表示します。
レコードの詳細で、バックエンドサーバーにリクエストを送信するために使用されたプロトコルバージョンを確認できます。
tail -n 1 /var/log/nginx/access.log
次の図は、プロトコルバージョンを HTTP/2 に設定する前に返されたレコードを示しています。
次の図は、プロトコルバージョンを HTTP/2 に設定した後に返されたレコードを示しています。
参照資料
チュートリアル
エンドポイントグループを設定する方法の詳細については、「インテリジェントルーティングリスナーのエンドポイントグループを作成および管理する」をご参照ください。
サービス品質とシステム パフォーマンスを向上させるために HTTP から HTTP/3 にアップグレードするには、クライアントが使用する HTTP の最大バージョンを [HTTP/3] に設定できます。詳細については、「Enable HTTP/3 for GA」をご参照ください。
API リファレンス
CreateEndpointGroup: エンドポイントグループを作成します。
EndpointProtocolVersion
を使用して、バックエンド サービスへの接続に使用する HTTP バージョンを指定できます。UpdateEndpointGroup: エンドポイントグループを変更します。
EndpointProtocolVersion
を使用して、バックエンド サービスへの接続に使用する HTTP バージョンを指定できます。DeleteEndpointGroup: エンドポイントグループを削除します。