Extensible Service Proxy と Cloud Endpoints Frameworks の比較

このページでは、App Engine スタンダード環境の Endpoints Frameworks と Extensible Service Proxy(ESP)の違いについて説明します。ESP は OpenAPI または gRPC を使用する API の Cloud Endpoints で使用されます。Endpoints のオプションについての詳細は、Cloud Endpoints オプションの選択をご覧ください。

概要

Cloud Endpoints は、Google が独自の API に使用しているのと同じインフラストラクチャを使用して、API の保護、モニタリング、分析、割り当て量の設定を行えるようにする API 管理システムです。認証、API キー、モニタリング、ロギング、トレーシングなどの API 管理機能は、API の実装に使用されているテクノロジーに依存しません。これらの API 管理機能は、ESP または Endpoints Frameworks を使用して提供されます。

Extensible Service Proxy

Endpoints for OpenAPI と Endpoints for gRPC では、API リクエストが Extensible Service Proxy 経由でリレーされます。Extensible Service Proxy はキーと認証トークンを検証し、Service Control API を使用してシグナル(指標とログ)を送信します。ESP では、REST または gRPC バックエンド コードを任意の言語で記述し、gRPC や、OpenAPI を使用した API 記述をサポートしているフレームワークを使用できます。

  • OpenAPI を使用する API: API バックエンドは、App Engine フレキシブル環境、Google Kubernetes Engine(GKE)、Compute Engine、Kubernetes、またはオンプレミス デプロイ上で実行できます。

  • gRPC を使用する API: API バックエンドは、GKE、Compute Engine、Kubernetes、またはオンプレミス デプロイ上で実行できます。

ESP のアーキテクチャ

リクエストは次の経路で送信されます。

  1. ユーザーのコードへのリクエストが受信され、ESP に送信されます。
  2. ESP がチェック リクエストを Service Control に送信します。
  3. API キーまたは認証をリクエストするように API を構成した場合、Service Control はリクエストが許可されているかどうかをチェックし、ESP にレスポンスを返します。
  4. リクエストが許可されない場合、ESP はリクエストを拒否します。リクエストが許可されている場合、リクエストはバックエンド コードに転送されます。いずれにしても、ESP はリクエストに関する情報をログに記録します。

Endpoints API 管理の料金は、1 か月あたりの通話数によって異なります。

Endpoints Frameworks

App Engine スタンダード環境で実行される API バックエンドの場合、デベロッパーは Endpoints Frameworks を使用することで、API の提供をすぐに開始できます。Endpoints Frameworks はウェブ フレームワークであり、Python Flask や Java Jersey に代わるものです。Endpoints Frameworks は、Service Control API と統合されるため、Endpoints Frameworks を使用するバックエンドを Extensible Service Proxy の背後で実行する必要はありません。

Endpoints Frameworks

API 管理を有効にしている場合、リクエストは次の経路で送信されます。

  1. コードへのリクエストが受信され、Endpoints Frameworks 内の Endpoints Management モジュールに送信されます。
  2. Endpoints Management モジュールがチェック リクエストを Service Control に送信します。
  3. API キーまたは認証をリクエストするように API を構成した場合、Service Control はリクエストが許可されているかどうかをチェックし、Endpoints Management モジュールにレスポンスを返します。
  4. リクエストが許可されていない場合、Endpoints Management モジュールはリクエストを拒否します。リクエストが許可されている場合、リクエストは Endpoints Frameworks に転送されます。いずれにしても、Endpoints Management モジュールはリクエストに関する情報をログに記録します。
  5. Endpoints Frameworks はリクエストをバックエンド コードにルーティングします。

Endpoints Frameworks は、API 管理機能の有無に関係なく使用できます。API 管理機能なしの Endpoints Frameworks は、無料で使用できます。API 管理機能は、Endpoints 料金ページに従って課金されます。

Endpoints Frameworks は、App Engine スタンダード環境で動作するサービスでのみサポートされています。Compute Engine、GKE、App Engine フレキシブル環境やその他の環境では、サービスを ESP の背後で実行する必要があります。

ESP の背後でサービスが実行されている場合は、任意の言語とフレームワーク(Python Flask、Java Jersey、Node.js Express など)でバックエンド コードを作成できます。このような環境では、Endpoints Frameworks を使用して API 管理を行う必要はありません。

次のステップ