支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


Google Cloud Endpointsの概要について

ここでは、Google Cloud Endpointsについて解説させていただきます。 クラウドサービスの発展は様々な業界に波及しており、ビジネスだけでなく我々の一般生活においても 大きな影響をもたらしていることはよく知られております。 特にITエンジニアの開発環境や開発ツールはテクノロジーの研究が日々行われている分野でもあり、 開発パフォーマンスに影響を与えるため、多くのサービスが生まれ大きく注目を集める分野でもあります。 最新のテクノジーを導入することで開発の効率化やコスト削減など様々なメリットがありますので、 エンジニアの方は新しい知識を学び現場にそれらを生かすことができるといいでしょう。 Google Cloud Endpointsもそのような新しいテクノロジーの一つと言えます。 Google Cloud EndpointsはGoogleが自社と同じインフラストラクチャに基づくAPI管理システムとして提供しているサービスであり、Google Cloud Endpointsを導入することによってAPIを保護、モニター、分析、割り当てを設定することが可能です。 Google Cloud Endpointsはユーザー認証、APIキー、自動デプロイ、統合、ロギングとモニタリングなど の特徴や機能があり、バックエンドの多くの機能によりユーザーのアプリ開発およびエンジニアの作業を強力にバックアップします。
Google Cloud Endpointsを理解するためのキーワードとしてBaaS(Backend as a Service)があります。 BaaSはWebアプリやモバイルアプリのバックエンド機能をアプリケーションサーバー側が代行するクラウドサービスです。 提供するサービスはサービスを提供するベンダーにより異なりますが、 サーバーサイド処理実装機能やアカウント管理機能など多くの特徴を持ちます。 BaaSは開発者およびユーザーにとって大きなメリットがあり、 開発時にバックエンドやサーバー技術に関する技術の担保やコストの削減にも役立つというようなことがあげられます。 また、サーバーや仮想マシンなどのインフラを準備する必要がありませんので、 そういった意味でも無駄なコストを削減することが可能となり、効率的な開発を実現することが可能となります。 以上がGoogle Cloud Endpointsの概要です。 さらに詳しくGoogle Cloud Endpointsについて詳しく解説させていただきますので、 参考にしていただけましたら幸いです。

BaaS(Backend as a Service)について

BaaSについて説明させていただきます。 Google Cloud Endpointsと関連性の高い言葉がBaaSで、サーバーで担っていた機能をクラウド上で構築し、ユーザーや顧客が担当することができるサービスとなります。 自社でサーバーやそれらに関する環境を準備する手間やコストが削減できるというメリットがあるという 一方で、環境の変更などの自由度や制限があるケースもあります。 BaaSのメリットについていくつか紹介させていただきますので、 参考にしてみてください。

セキュリティ

BaaSのメリットの一点目がセキュリティです。 ベンダーが準備している高セキュリティのバックエンド機能を利用できる点は メリットが大きいと言えるでしょう。 自社やユーザーが一からバックエンド機能を開発するよりも、BaaSを 利用することでセキュリティ高くアプリケーションの開発や品質を担保できるという点がメリットと言えるでしょう。

利便性

BaaSのメリットの二点目が便利であることです。 アプリ開発に必要な主要機能やなどがすでに準備されており、 開発者やユーザーは非常に便利に開発を行うことが可能となります。

コスト削減

BaaSのメリットの三点目がコスト削減です。 BaaSを導入することでバックエンドに必要な機能がすでに準備されていることで 開発者はフロントエンドの開発に集中することができます。 工数も削減することが可能となりますので、プロジェクト全体のコスト削減に繋がります。

Google Cloud Endpointsの特徴について

Google Cloud Endpointsの特徴について説明させていただきます。 Google Cloud EndpointsはAPI の開発、デプロイ、保護、モニタリングを行うための ツールおよびプラットフォームであり、NGINX ベースのプロキシと分散型アーキテクチャにより、卓越したパフォーマンスとスケーラビリティを実現させております。 Cloud Endpointsは、OpenAPI仕様または GoogleのAPIフレームワークを使用して、API開発の各フェーズに必要なツールを供給しております。 また、Cloud Logging、Cloud Monitoring、Cloud Traceによる分析情報も提供します。 最大の特徴はAPI管理や保護であることは言うまでもありませんが、JSON Web TokenとGoogle APIキーを使用して、APIにアクセスできるユーザーを制御してすべての呼び出しを検証することが可能です。また、Auth0・ Firebase Authentication と統合されているため、ウェブアプリケーションまたはモバイルアプリのユーザーを識別することが可能です。 Extensible Service Proxyでは高速処理を行って分析情報を提供し、 App EngineとGoogle Kubernetes EngineでAPIを自動的にデプロイすることやGoogleのプロキシコンテナを Kubernetes Deploymentに追加することが可能です。 また、Google Cloud Endpointsでは任意のAPIフレームワークと言語を使用することが可能です。 JavaまたはPythonで、オープンソースのGoogle Cloud Endpoints Frameworksを使用することもできます。 OpenAPI仕様をアップロードし、Googleのコンテナ化されたプロキシをデプロイするだけで実現できますので非常に簡単です。 Google CloudEndpointsは、分散型Extensible Service Proxy(ESP)または Extensible Service Proxy V2(ESPv2)で使用することが可能であり、「App Engine フレキシブル(ESP のみ)」「Google Kubernetes Engine(ESP または ESPv2)」 「Compute Engine(ESP または ESPv2)」「Kubernetes(ESP または ESPv2)」 「App Engine スタンダード環境(ESPv2 のみ)」「Cloud Functions(ESPv2 のみ)」 「Cloud Run(ESPv2 のみ)」「Cloud Run for Anthos(ESPv2 のみ)」のプラットフォームをサポートします。

Google Cloud Endpointsのアーキテクチャについても説明させていただきます。 Google Cloud Endpointsを構成するコンポーネントは次のとおりです。 Extensible Service Proxy(ESP)、Extensible Service Proxy V2(ESPv2)はEndpoints機能を追加します。 ESPは、バックエンドの手前で実行され、認証、モニタリング、ロギングなどのEndpoints機能を提供する NGINXベースのプロキシです。 ESPは Service Managementからサービス構成を取得し、それを使用して受信リクエストを検証します。 また、ESPは、コンテナ環境にデプロイされてJWTとGoogle IDトークンを検証するように設計されています。 軽量さとパフォーマンスの高さを維持するために、大量キャッシング、非同期呼び出しなど、さまざまな手法を採用しています。 「Service ControlはAPI管理ルールを適用」については、キー認証、モニタリング、ロギングなどのAPI管理ルールを実行時に適用します。Service Control には、「チェックにおいては、認証情報とAPIキーを確認して、呼び出しを許可すべきかどうかを示します。」「レポートにおいては、ロギングとモニタリングのレコードをシステムに通知します。」というメソッドが用意されています。 「Service ManagementはAPI管理ルールを構成」について説明させていただきます。 Service ManagementではOpenAPI仕様を使用して、Endpoints構成と呼ばれるテキストファイルにAPIのサーフェスと動作を記述します。 Cloud SDK を使用してEndpoints構成をService Managementにデプロイすると、API管理ルールが構成され、その他のタスクも実行します。 他のデベロッパーとのAPIの共有、さまざまなプロジェクトでの API の有効化と無効化、APIキーの生成に関するタスクなどもService Managementで実行します。 「Cloud SDKはデプロイと管理に使用」について、Cloud SDKでは、さまざまなGoogle Cloudサービスを呼び出す際に使えるgcloudコマンドラインツールが提供されております。 「Google Cloud Console はロギング、モニタリング、共有に使用」について説明させていただきます。 Cloud Consoleは、Google Cloudのグラフィックユーザーインターフェースです。 Endpoints は Cloud Console を使用して、ESPまたはESPv2 から送信され、Service Controlで記録されるモニタリング データとロギングデータを公開します。 また、APIを他のデベロッパーと共有して、デベロッパーはAPIを呼び出すためのAPIキーを生成します。 以上がGoogle Cloud Endpointsの特徴についての説明となります。

Google Cloud Endpointsの機能について

Google Cloud Endpointsの機能についてポイントを絞り紹介させていただきますので、 参考にしていただけましたら幸いです。

ユーザー認証

Google Cloud Endpointsの機能の一点目がユーザー認証です。 Google Cloud EndpointsではJSON Web Tokenによる検証が可能となり、 Firebase Authentication、Google認証、Auth0を使用した認証でも効率的なデベロッパー エクスペリエンスを 獲得することが可能となります。 これらがGoogle Cloud Endpointsの機能の大きな特徴と言えます。

API キー

Google Cloud Endpointsの機能の二点目がAPIキーです。 Google Cloud EndpointsではGoogle Cloud ConsoleでAPIキーを生成し、API呼び出しを検証および APIを他のデベロッパーと共有すると、共有相手は独自のキーを生成することが 可能となりこれかが機能の特徴の一つです。

自動デプロイ

Google Cloud Endpointsの機能の三点目が自動デプロイです。 App Engineでは、プロキシがアプリケーションとともに自動的にデプロイされます。 また、Google Kubernetes EngineやCompute Engineでは、コンテナ化された Extensible Service Proxy(ESP)を使用してデプロイを簡素化することが可能となりGoogle Cloud Endpointsの特徴となっております。

容易な統合

Google Cloud Endpointsの機能の四点目が容易な統合です。 Google Cloud Endpointsでは迅速な統合を実現します。 Google の Cloud Endpoints FrameworksもしくはOpenAPI仕様をデプロイに追加することで 容易に統合を実現することが可能となります。

ロギングとモニタリング

Google Cloud Endpointsの機能の五点目がロギングとモニタリングです。 トラフィック、エラー率、レイテンシをモニタリングし、Cloud Logging でログを確認します。また、Cloud Trace でパフォーマンスを詳しく調べ、BigQuery で分析を行うことが可能となります。

まとめ

いかがでしょうか? Google Cloud Endpointsについて説明させていただきましたので、 参考にしていただけましたら幸いです。