gRPC

gRPC Remote Procedure Call

gRPCとは

gRPC(gRPC Remote Procedure Call)とは、Googleが開発した高性能なオープンソースRPCフレームワークです。Protocol Buffers(protobuf)をインターフェース定義言語およびシリアライゼーション形式として使用し、HTTP/2上で効率的な通信を行います。

表:gRPCの要点まとめ
ひとことで言うとGoogleが開発した、高速・軽量な通信方式。
何がうれしいかデータを圧縮した形式で送るためRESTより速く、通信量も少ない。
注意点ブラウザから直接は扱いにくい。内部システム間の通信に向く。

gRPCの特徴

gRPCはREST APIと比較して多くの技術的優位性を持ちます。Protocol BuffersによるバイナリシリアライゼーションはJSON より数倍高速で、HTTP/2の多重化により単一接続上で複数のリクエストを並行処理できます。双方向ストリーミングもサポートしており、リアルタイム通信に適しています。

図:gRPCとRESTの違い
1REST:JSON人が読めるが大きい
▶
2gRPC:バイナリ圧縮されて小さい
▶
3型が決まっている定義ファイルで共有
▶
4高速・低負荷内部通信に最適

AI推論でのgRPC活用

高頻度・低レイテンシが求められるAI推論サービスでは、gRPCが広く採用されています。NVIDIA Triton Inference Serverは gRPCとREST の両方をサポートし、大量の推論リクエストを効率的に処理します。TensorFlow ServingもgRPCをネイティブにサポートしており、推論パイプラインでの標準的なプロトコルとなっています。

gRPCの導入ポイント

gRPCはマイクロサービス間の内部通信やバックエンドサービスの連携に特に適しています。ただし、ブラウザからの直接アクセスにはgRPC-Webの導入が必要で、外部公開APIにはRESTの方が適している場合もあります。用途に応じてREST APIとgRPCを使い分けることが推奨されます。