gRPCとは
gRPC(gRPC Remote Procedure Call)とは、Googleが開発した高性能なオープンソースRPCフレームワークです。Protocol Buffers(protobuf)をインターフェース定義言語およびシリアライゼーション形式として使用し、HTTP/2上で効率的な通信を行います。
| ひとことで言うと | Googleが開発した、高速・軽量な通信方式。 |
|---|---|
| 何がうれしいか | データを圧縮した形式で送るためRESTより速く、通信量も少ない。 |
| 注意点 | ブラウザから直接は扱いにくい。内部システム間の通信に向く。 |
gRPCの特徴
gRPCはREST APIと比較して多くの技術的優位性を持ちます。Protocol BuffersによるバイナリシリアライゼーションはJSON より数倍高速で、HTTP/2の多重化により単一接続上で複数のリクエストを並行処理できます。双方向ストリーミングもサポートしており、リアルタイム通信に適しています。
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を使い分けることが推奨されます。