コンテンツに移動
コンピューティング

HTTP だけではない:Cloud Run で gRPC の利用が可能に

2020年3月27日
Google Cloud Japan Team

※この投稿は米国時間 2020 年 3 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。

Cloud Run は、Google Cloud が提供するマネージド型のサーバーレス コンピューティング プラットフォームです。基盤となるインフラストラクチャの管理に煩わされることなく、フルマネージドの環境でステートレスなサーバー コンテナを実行できます。Cloud Run はリリース以降、多数のお客様にご採用いただいております。プロビジョニングや構成、スケーリングといった処理は Google 側で行うため、お客様はビジネス ロジックに注力できます。

Cloud Run で動作するほとんどのアプリケーションは HTTP JSON REST を使用してリクエストを処理しますが、サポートするプロトコルはこれだけではありません。9 月からは、単項 gRPC サービスのサポートも開始しました。

gRPC は Google が開発した高性能な RPC フレームワークであり、従来のワークロードを対象として、Netflix、Cisco、Square などの企業によってエッジで広範に使用されています。gRPC は、強固なインターフェース定義やコード生成など、従来の HTTP よりも優れた利点を提供しますが、本番環境で gRPC サーバーを運用するインフラストラクチャを設定する作業は、非常に煩雑になる場合があります。Cloud Run は、このようなプロセスに伴う労力を軽減します。

gRPC では、まずプロトコル バッファ ファイルの形式を持つ次のような強固な API コントラクトを定義します。

読み込んでいます...

このインターフェース定義により、サービスの機能を拡張した場合でも、クライアントとサーバーが同じ言語を使用してやり取りするようにします。次に、この定義に基づいた目的の言語でコードを生成し、それに対応した実装を提供します。

読み込んでいます...

作成したコードでトラフィックを処理するために必要なその他のものは、すべて Cloud Run が提供します。必要な作業は、シンプルな Dockerfile を作成して、次のような数個のコマンドを実行することだけです。

読み込んでいます...

フルマネージドの Cloud Run でシンプルな gRPC サービスの運用を容易に開始していただけるように、Google では複数の言語で記述された例をご用意しています。ぜひ gRPC サービスをデプロイしてみてください。

Cloud Run での gRPC のサポートは進化し続けています。たとえば、ストリーミングのサポートについては現在も取り組み中です。クライアントからサーバーへ段階的にデータを送信するユースケースでは、現状では複数の 単項 RPC または REST リクエストをチェーンした方が効率的です。また、Cloud Run の gRPC データパスは、現状では小規模なリクエストに対して最適に動作します。目安として、リクエストのサイズは 32MB 未満に抑えてください。この点は今後改善していく予定ですが、まずは Cloud Run での gRPC の利用について、こちらのチュートリアルで詳細をご確認ください。

- By ソフトウェア エンジニア Richard Belleville、ソフトウェア エンジニア Wenlei He

投稿先