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

Server Load Balancer:ALB を使用した gRPC サービスの負荷分散

最終更新日:Apr 04, 2026

gRPC は、パフォーマンスに優れたオープンソースのリモートプロシージャコール (RPC) フレームワークです。バックエンドサービス間の通信に gRPC を使用する場合、Application Load Balancer (ALB) を利用して統一されたイングレスを作成し、トラフィックの負荷分散を行うことができます。gRPC は HTTP/2 プロトコルを介して通信します。現在、ALB は HTTPS リスナーを介して暗号化されたクライアントトラフィックを受け入れ、gRPC プロトコルで設定されたサーバーグループにプレーンテキストリクエストを転送することで gRPC をサポートしています。

背景情報

gRPC は、パフォーマンスに優れたオープンソースのリモートプロシージャコール (RPC) フレームワークです。インターフェース定義言語 (IDL) として Protocol Buffers を使用し、HTTP/2 を介して通信します。

gRPC は分散システムにおけるサービス間通信に使用されます。異なるサービス間の言語の壁を解消し、自動生成コードを備えた IDL を提供することで、開発者はリモートサービスを容易に定義し、呼び出すことができます。バイナリエンコーディングと HTTP/2 の多重化機能を利用することで、gRPC は高性能、低レイテンシー、効率的なデータ転送を実現し、高速で信頼性の高いリモート呼び出しを可能にします。

gRPC は、マイクロサービスアーキテクチャ、多言語間通信、大規模分散システムなどのシナリオに適しています。高性能と低レイテンシーが求められるシナリオで特に優れています。また、ユニキャスト呼び出し、クライアントサイドストリーミング、サーバーサイドストリーミング、双方向ストリーミングなど、複数の呼び出しタイプをサポートしており、さまざまなビジネスニーズに柔軟に対応できます。

gRPC の詳細については、「gRPC 公式ドキュメント」をご参照ください。

シナリオ例

ある企業が、中国 (杭州) リージョン内の Virtual Private Cloud (VPC) に gRPC サービスをデプロイします。同じ VPC 内に、ALB インスタンスと gRPC プロトコルをサポートするバックエンドサーバーグループを作成します。ALB インスタンスには HTTP/2 が有効化された HTTPS リスナーが設定され、サーバーグループには gRPC ヘルスチェックが設定されます。

クライアントは ALB インスタンスを介して gRPC サービスにアクセスする必要があります。

前提条件

ステップ 1:サーバーグループの作成とサーバーの追加

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

  2. 上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、ALB > サーバーグループを選択します。

  4. サーバーグループページで、サーバーグループの作成をクリックします。

  5. サーバーグループの作成ダイアログボックスで、次のパラメーターを設定し、作成をクリックします。

    このトピックでは、この例に関連するパラメーターのみを説明します。その他のパラメーターについては、デフォルト値を使用するか、必要に応じて設定してください。

    パラメーター

    説明

    サーバーグループタイプ

    サーバーグループのタイプを選択します。この例では、サーバーが選択されています。

    VPC

    ALB インスタンスがデプロイされている VPC を選択します。この VPC 内のサーバーのみがサーバーグループに追加できます。

    バックエンドサーバープロトコル

    [gRPC] を選択します。

    ヘルスチェック

    この例では、ヘルスチェックを有効にします。

    ヘルスチェックの設定

    編集をクリックし、ヘルスチェック設定を構成します:

    • ヘルスチェックプロトコル[gRPC] を選択します。

    • ヘルスチェック方法[POST] を選択します。

    • ヘルスチェックステータスコード:正常な状態を示すステータスコードを選択します。このコードは、バックエンドの gRPC サービスの設定と一致している必要があります。この例では、12 を使用します。

  6. サーバーグループページで、作成したサーバーグループを見つけ、その ID をクリックします。

  7. バックエンドサーバータブをクリックし、バックエンドサーバーの追加をクリックします。

  8. バックエンドサーバーの追加パネルで、作成した ECS インスタンスを選択し、次へをクリックします。

  9. ポート/重みステップで、各 ECS インスタンスのポートと重みを設定し、OKをクリックします。

    説明

    ECS インスタンスに設定するポートは、gRPC サービスが使用するポートと一致している必要があります。また、セキュリティグループルールでこれらのポートでのトラフィックが許可されていることを確認してください。

ステップ 2:HTTPS リスナーの設定

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

  2. 上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、インスタンスをクリックします。

  4. インスタンスページで、ターゲットインスタンスを見つけ、操作列のリスナーの作成をクリックします。

  5. リスナーの設定ページで、次のパラメーターを設定します。その他のパラメーターについては、デフォルト値を使用するか、必要に応じて設定し、次へをクリックします。

    パラメーター

    説明

    リスナープロトコルの選択

    [HTTPS] を選択します。

    リスナーポート

    この例では、ポート 443 を使用します。

    説明
    • サーバーグループのプロトコルを gRPC に設定する場合、リスナーは HTTPS を使用する必要があります。

    • gRPC は HTTP/2 を介して通信します。サーバーグループのプロトコルが gRPC に設定されている場合、HTTPS リスナーで HTTP/2 を有効にする必要があります。ALB ではこの機能はデフォルトで有効になっています。HTTP/2 の有効化を有効のままにしてください。

  6. SSL 証明書の設定ページで、次のパラメーターを設定します。その他のパラメーターについては、デフォルト値を使用するか、必要に応じて設定し、次へをクリックします。

    パラメーター

    説明

    サーバー証明書

    準備した SSL 証明書を選択します。

  7. サーバーグループの選択ページで、次のパラメーターを設定します。その他のパラメーターについては、デフォルト値を使用するか、必要に応じて設定し、次へをクリックします。

    パラメーター

    説明

    サーバーグループ

    作成した gRPC サーバーグループを選択します。

  8. 設定の確認ページで、パラメーターを確認し、送信をクリックします。

ステップ 3:DNS 名前解決の設定

  1. 左側のナビゲーションウィンドウで、ALB > インスタンスを選択します。

  2. インスタンスページで、ALB インスタンスのドメイン名をコピーします。

  3. 次の手順を実行して、CNAME レコードを作成します:

    説明

    ご利用のドメイン名が Alibaba Cloud Domains を使用して登録されていない場合は、DNS レコードを設定する前に、ドメイン名を Alibaba Cloud DNS に追加する必要があります。詳細については、「ドメイン名の管理」をご参照ください。

    1. Alibaba Cloud DNS コンソールにログインします。

    2. 権威 DNS 名前解決ページで、ご利用のドメイン名を見つけ、操作列の解決設定をクリックします。

    3. ドメイン名詳細ページの解決設定タブで、Add Recordをクリックします。

    4. Add Recordパネルで、パラメーターを設定し、OKをクリックします。次の表にパラメーターを説明します。

      パラメーター

      説明

      レコードタイプ

      ドロップダウンリストから CNAME を選択します。

      ホストレコード

      ドメイン名のプレフィックスを入力します。この例では、@ を入力します。

      説明

      ルートドメインを使用する場合は、@ を入力します。

      Query Source

      [デフォルト] を選択します。

      レコード値

      CNAME、つまり ALB インスタンスのドメイン名を入力します。

      TTL

      DNS サーバーにキャッシュされる CNAME レコードの生存時間 (TTL) 値を選択します。この例では、デフォルト値を使用します。

ステップ 4:接続性の検証

上記の手順を完了すると、クライアントは ALB を介してバックエンドサーバーにデプロイされた gRPC サービスにアクセスできるようになります。このセクションでは、クライアントから gRPC サービスへの接続をテストする方法について説明します。

説明

ブラウザから直接 gRPC サービスにアクセスすることはできません。grpcurl などのテストツールを使用してアクセスを検証してください。

クライアントで、次のコマンドを実行して ECS インスタンス上の gRPC サービスにアクセスします:grpcurl -insecure -v <domain_name>:<listener_port> <gRPC_service_name>/<method>

次の図に示すような応答があれば、クライアントが ALB を介してバックエンドの ECS インスタンス上の gRPC サービスにアクセスできることを示します。

image

参考