gRPC(ジーアールピーシー)
Google発HTTP/2基盤RPCフレームワーク(2016-)。Protocol Buffers・4種Streaming・gRPC-Web(Envoy変換)・gRPC-Gateway(REST→gRPC)・Buf・Tonic(Rust)・grpcio(Python)・@grpc/grpc-js(Node)・Connect RPCが2026年代表、マイクロサービス内部通信+AIモデル配信で利用。
概要
gRPCはGoogleが開発したHTTP/2ベースのRPCフレームワークで、2016年に公開されました。サービス間で定義済みのメッセージをやり取りする際に、Protocol Buffers(protobuf)をデータ表現に採用し、バイナリで高速かつ省メモリな通信を実現します。マイクロサービス構成やAIモデルの配信に適しており、2026年に登場したConnect RPCと併せて、分散システムの標準的手段として広く利用されています。
主な特徴・仕組み
- HTTP/2ベース:多重化されたストリームで同時通信を可能にし、レイテンシを低減。
- Protocol Buffers:スキーマ定義により型安全を保証し、32KB以下のヘッダーで圧縮。
- 4種Streaming:Unary、Server Streaming、Client Streaming、Bidirectional Streaming の全てをサポート。
- gRPC-Web:ブラウザから直接gRPCを呼び出すために Envoy が変換。
- gRPC‑Gateway:RESTful API から gRPC へ自動変換し、既存の HTTP クライアントを再利用。
- 多言語実装:Rust(Tonic)、Python(grpcio)、Node.js(@grpc/grpc-js)など。
- Connect RPC:2026年に発表された軽量化バージョンで、ヘッダーサイズを 1.5KB まで削減。
- AIモデル配信:TensorFlow Serving などと組み合わせて、推論エンドポイントを高速化。
- セキュリティ:TLS 1.3 を標準でサポートし、認証情報をヘッダーに埋め込む。
- ロードバランシング:gRPC のサービスディスカバリと Envoy の L4/L7 で自動負荷分散。
スペック/製品比較表
| フレームワーク | プロトコル | ストリーム数 | ヘッダーサイズ | 主要言語 | 代表製品 |
|---|---|---|---|---|---|
| gRPC | HTTP/2 | 4 | 32KB | Go, Java, C++ | TensorFlow Serving |
| gRPC‑Gateway | HTTP/1.1 | 1 | 64KB | Node.js, Python | Kubernetes API |
| Connect RPC | HTTP/2 | 4 | 1.5KB | Rust, Go | Envoy 3.3 |
| Thrift | TCP | 1 | 128KB | Java, C++ | Apache Hadoop |
| gRPC-Web | HTTP/2 | 4 | 32KB | JavaScript | Webアプリ |
具体例・対応製品
- NVIDIA RTX 5090:RTX 5090 は 24GB GDDR7 を搭載し、Tensor コアで 5.7GHz のクロックを実現。
- AMD Ryzen 9 9950X3D:3.5GHz ベース、4.0GHz ブースト、32MB L3 キャッシュ。
- Intel Core Ultra 9 285K:3.0GHz ベース、4.2GHz ブースト、16MB L3。
- DDR5-6000:6000MT/s、1.2V、16GB モジュール。
- PCIe 5.0 x16:最大 32GB/s の帯域幅。
- AMD Radeon RX 7900 XTX:24GB GDDR6、2.5GHz ベース、3.0GHz ブースト。
自作PCでの選び方・注意点
- CPU:マルチスレッド性能が重要。Ryzen 9 9950X3D の 16 コアは gRPC の並列処理に有利。
- GPU:TensorFlow Serving で推論を行う場合、RTX 5090 の Tensor コアを活用。
- メモリ:DDR5-6000 の 32GB 以上を推奨。
- ストレージ:NVMe SSD 1TB 以上、読み書き速度 5000MB/s 以上。
- ネットワーク:10Gbps LAN で低レイテンシを確保。
- 電源:750W 80+ Platinum 以上。
- 冷却:液体冷却で 35°C 以下に維持。
- OS:Ubuntu 22.04 LTS で Docker と Envoy を構成。
- TLS 証明書:Let's Encrypt で自動更新。
- 監視:Prometheus + Grafana でメトリクス収集。
- バックアップ:RAID 1 でデータ保護。
- パッチ管理:定期的に更新。
関連用語との違い
- REST:テキストベースで 1.5KB 以上のヘッダー。gRPC はバイナリで 32KB 以下。
- Thrift:TCP ベースで 128KB ヘッダー。gRPC は HTTP/2 で 32KB。
- gRPC‑Gateway:REST→gRPC 変換を行うが、レイテンシが増加。
- Connect RPC:ヘッダーを 1.5KB に削減し、gRPC の機能を保持。
よくある質問
Q1. gRPC は Windows でも動作しますか?
A1. はい、Windows 10/11 で .NET 6 以降の gRPC ランタイムが利用可能です。
Q2. gRPC-Web を使う場合、どのサーバーが必要ですか?
A2. Envoy か NGINX の HTTP/2 プロキシが必要で、ブラウザから直接 gRPC を呼び出せます。
Q3. 2025年に予定されている gRPC の新機能は?
A3. 2025年に予定されている「gRPC‑Web v2」では、ヘッダー圧縮がさらに最適化され、レイテンシが 10% 低減される見込みです。
まとめ
gRPC は HTTP/2 と Protocol Buffers を組み合わせ、マイクロサービスや AI 推論で高いパフォーマンスを発揮します。2026年に登場した Connect RPC はヘッダーサイズを大幅に削減し、さらに軽量化を実現。自作PC構築時には CPU、GPU、メモリ、ネットワークを総合的に検討し、最新のハードウェアを組み合わせることで、低レイテンシかつ高スループットの分散システムを構築できます。