API 管理を効率化する Cloud Endpoints とは?特徴やメリット、ユースケースまで徹底解説!
- API
- Cloud
- Cloud Endpoints
Cloud Endpoints というサービスをご存知でしょうか? Google が提供するパブリッククラウドである Google Cloud (GCP)に内包されており、効率的な API 管理を実現できるサービスです。
本記事では、 Cloud Endpoints とは何か?という基礎的な内容から、 Cloud Endpoints の特徴やメリット、ユースケース、料金体系まで、あらゆる観点から一挙にご紹介します。
目次
Cloud Endpoints とは?
はじめに、 Cloud Endpoints の基礎的な内容をご説明します。
概要
Cloud Endpoints は Google Cloud (GCP)に内包されている API 管理サービスです。 API とは、「 Application Programming Interface 」の頭文字を取った言葉であり、「アプリケーションをプログラミングするためのインターフェース」を意味しています。
インターフェースとは、異なる機器・装置を接続し、交信や制御を行うための装置やソフトウェアのことです。つまり API とは、アプリケーションとプログラムを繋ぐための役割を持つものであるとご理解ください。
そして、この API を管理することを「 API 管理」と呼んでいます。アプリケーションを安定して運用するためには API 管理が必要不可欠です。 API に関する定義や権限設定などの管理を適切に行うことで、様々なシーンに対応できる柔軟な運用体制を構築できます。
本記事で取り上げる Cloud Endpoints は、 API を効率的に管理するためのサービスであるため、上手く活用することで、アプリケーションの安定稼働を実現し、自社の生産性を大きく向上させることが可能になります。
Cloud Endpoints の具体的な機能としては、
- API の管理
- API のホスティング
- API のロギング
- API のモニタリング
など、 API の作成や共有、維持、保護を行うための様々な機能を提供しています。
類似サービス Apigee との違い、使い分け
Cloud Endpoints とよく似たサービスとして Apigee が挙げられます。 Apigee も Google が提供しているサービスであり、 API を管理できるプラットフォームですが、両者は明確に異なるものです。
以下、代表的な違いを表で示します。
Cloud Endpoints | Apigee | |
---|---|---|
実行環境(バックエンド) | Google Cloud (GCP)のみ | Google Cloud (GCP)以外でも使用可能 |
サービス特性 | 開発者用に設計 | ビジネスの収益化に特化 |
料金の変動要素 | API の呼び出し回数 | プラットフォームの規模感 |
このように、 Cloud Endpoints と Apigee には多くの違いが存在します。
特にサービス特性の部分は大きく異なっており、 Cloud Endpoints は開発者用に設計されたサービスであるため、 API 作成や利用者の権限設定など、開発者の工数削減を実現するための機能が多数備えられています。
一方 Apigee はビジネスの収益化に特化したサービスであり、 API のレート制限や分析など、実践的な機能が多く搭載されています。
それぞれ特徴が異なるサービスであるため、自社の目的や状況に合わせて、最適なサービスを選択するようにしてください。
Apigee に関心のある方は以下の記事がオススメです。
Google の API 管理プラットフォーム「 Apigee 」とは?概要、機能、特徴、料金体系、ユースケースまで徹底解説!
Cloud Endpoints の動作環境
Cloud Endpoints を動作させるための環境は、大きく以下の3つに分類されます。
- Endpoints for OpenAPI
- Endpoints for gRPC
- Cloud Endpoints Frameworks for the App Engine スタンダード環境
Cloud Endpoints で API を管理する場合、 API がホストされる場所と API で使用される通信プロトコルの種類に応じて、これらのいずれかを選択する必要があります。
それぞれについて、詳しく見ていきましょう。
Endpoints for OpenAPI
Endpoints for OpenAPI では、 ESP または ESP ver 2.0 を使用して API を管理します。 ESP とは「 Encapsulated Security Payload 」の略であり、日本語では「暗号ペイロード」と呼ばれています。
ESP はネットワーク上で暗号化通信を行うためのプロトコルである IPsec を使って送受信されるペイロード(通信内容)を暗号化し、そこに付加情報を加えたものです。 ESP と ESP ver 2.0 はどちらもオープンソースプロジェクトであり、 Google Container Registry のコンテナや GitHub のソースコードなどで利用可能です。
Endpoints for gRPC
Endpoints for gRPC は Google が開発した高性能かつ汎用的なオープンソース RPC フレームワークです。 RPC とは「 Remote Procedure Call 」の略であり、日本語では「遠隔手続き呼び出し」と呼ばれています。これはネットワーク上に接続された別端末のプログラムを呼び出して実行させるための手法です。
Endpoints for gRPC を活用することで、クライアントアプリケーションが別のマシンのサーバーアプリケーション上のメソッドを、ローカルオブジェクトと同様に直接呼び出すことができます。これにより、分散アプリケーションや分散サービスを簡単に作成可能になります。
Cloud Endpoints Frameworks
Cloud Endpoints Frameworks は、 Google App Engine (GAE)の標準の Python 2.7 ランタイム環境と Java 8 ランタイム環境に対応するウェブフレームワークです。 Cloud Endpoints Frameworks には、アプリケーション用の REST API とクライアントライブラリを生成するためのツールおよびライブラリが用意されています。
まとめ
以下、 Cloud Endpoints の動作環境を表にまとめます。環境ごとにサポートしているコンピューティングを示したものです。
Endpoints for gRPC | Endpoints for gRPC | Cloud Endpoints Frameworks | |
---|---|---|---|
App Engine (スタンダード環境/第1世代) | ○ | × | Java 8 および Python 2.7 ランタイム |
App Engine (スタンダード環境/第2世代) | ○ | × | × |
App Engine (フレキシブル環境) | ○ | × | × |
Cloud Functions | ○ | × | × |
Cloud Run | ○ | ○ | × |
Compute Engine | ○ | ○ | × |
Google kubernetes Engine | ○ | ○ | × |
Google 以外のクラウド | ○ | ○ | × |
このように、 Cloud Endpoints は動作環境ごとにサポートしているコンピューティングが異なります。自社の状況に合わせて、最適なものを選択するようにしてください。
Cloud Endpoints のアーキテクチャ
以下、 Cloud Endpoints のアーキテクチャを図で示します。
※出典: Google Cloud 公式ページ「 Cloud Endpoints のアーキテクチャの概要」
まず、上図左上の LB はロードバランサを表しています。ロードバランサは流入したトラフィックを複数のインスタンスに分け、 API へのリクエストを分散させることで、複数のリクエストが API に同時に入ってくることを防ぎます。
その右側にある Extensible Service Proxy Container は ESP Container とも呼ばれています。 ESP は NGINX をベースとしたプロキシであり、 API バックエンドの各インスタンスと一緒にコンテナへデプロイされます。そして、 API に対するリクエストは ESP が先に受け取り、 Google Service Control へ送信します。
また、下部にある Google Service Management は API の管理ルールを構築します。仕組みとしては gcloud コマンドで OpenAPI 仕様の定義ファイルを Service Management にデプロイすることで API の管理ルールが適用されます。
そして、 Google Service Control は ESP から受け取ったリクエストを検証し、APIの使用許可を判定します。さらに、ロギングやモニタリングを行うために Google Cloud Console へ指標を送る役割も持っています。
Cloud Endpoints の特徴
Cloud Endpoints にはどのような特徴があるのでしょうか?
代表的なものをいくつかご紹介します。
高いパフォーマンス
Cloud Endpoints で API の開発、デプロイ、保護、モニタリングを行うことで、 NGINX ベースのプロキシと分散型アーキテクチャにより、高いパフォーマンスとスケーラビリティを実現できます。
また、 Cloud Endpoints は、 OpenAPI 仕様または Google の API フレームワークを使用して、 API 開発の各フェーズに必要なツールを供給しているほか、 Cloud Logging や Cloud Monitoring 、 Cloud Trace による分析情報も提供します。
超高速な処理
Cloud Endpoints で採用されている Extensible Service Proxy は「1回の呼び出しあたり1ミリ秒未満」でセキュリティと分析情報を提供します。また、 App Engine と Google Kubernetes Engine で API を自動的にデプロイしたり、 Google のプロキシコンテナを Kubernetes Deployment に追加したりすることも可能です。
多彩なフレームワーク
Cloud Endpoints では、多彩な API フレームワークと言語を使用可能であり、 Java または Python で、オープンソースの Cloud Endpoints Frameworks を使うこともできます。 OpenAPI の仕様をアップロードして、 Google のコンテナ化されたプロキシをデプロイするだけなので、とても簡単に作業を進められます。
Cloud Endpoints のメリット
Cloud Endpoints を活用することで、企業は様々なメリットを享受できます。順番に見ていきましょう。
API を容易にドキュメント化できる
Cloud Endpoints は、コードベースの API 定義フォーマットである OpenAPI 仕様に対応しており、 Git による管理が可能となっています。また、 OpenAPI は API の定義ファイルから自動的にドキュメントを作成できるため、業務効率化や生産性向上に直結します。
API を容易に管理・デプロイできる
Cloud Endpoints では、 API のルールが1つの定義ファイルの中で管理されているため、そのファイルを編集すれば、簡単に API の追加・削除を実行できます。また、 API キーや OAuth などのセキュリティルールを定義することで、そのルールをすべての API に適用したり、任意の API のみに適用することも可能です。さらに、定義したルールは1回のコマンドのみで簡単にデプロイできる点も嬉しいポイントです。
API の利用状況を分析できる
Cloud Endpoints には API を監視するための画面が搭載されているため、 API ごとの利用状況を可視化し、ログを確認することができます。これらのデータをデバッグや API 開発に反映することで、自社の API 活用をさらに効率化することが可能です。
Cloud Endpoints のユースケース
Cloud Endpoints はどのようなシーンで使われるのでしょうか?具体的なユースケースを2つご紹介します。
API の外部公開
Cloud Endpoints を活用することで、 API を外部へ公開することができます。この時、 API に認証機能を付けることで、 API にアクセスするユーザーを判別し、怪しいリクエストを遮断できます。認証方法としては、 API キー と OAuth2 のどちらか、または両方を選択可能です。
マイクロサービスによるアプリケーション構築
マイクロサービスとは、個別開発した複数の小さなサービスを連携させて管理・運営を行うためのソフトウェアのアーキテクチャであり、 Cloud Endpoints はマイクロサービスでアプリケーションを構築する際に役立つソリューションとなっています。
マイクロサービスを構築する場合、各マイクロサービスにサービスアカウントキーを付与することで、マイクロサービスと API 間の通信に対して認証機能を実装できます。これにより、 API を利用するマイクロサービスを限定でき、セキュリティの強化に繋がります。
マイクロサービスとは?開発の生産性を高めるための情報技術を徹底解説!
Cloud Endpoints の料金体系
Cloud Endpoints の利用料金は API の呼び出し回数に応じて変動します。
以下、具体的な料金体系を表にまとめます。
1ヶ月あたりの API 呼び出し回数 | API 呼び出し回数 100 万回あたりの料金 |
0〜200万回 | 0.00米ドル |
200万回~10億回 | 3.00米ドル |
10億回〜 | 1.50米ドル |
おおよそのコストは上表で算出できますが、具体的な金額を知りたい場合は Google 公式の料金計算ツールを使ってください。正確な料金を把握できるため、安心してサービスを利用できます。
まとめ
本記事では、 Cloud Endpoints とは何か?という基礎的な内容から、 Cloud Endpoints の特徴やメリット、ユースケース、料金体系まで、あらゆる観点から一挙にご紹介しました。
昨今、 API 管理の重要性は益々高まっており、企業が Cloud Endpoints を導入することで、高いパフォーマンスや超高速処理など、様々なメリットを享受できます。実際に多くの会社が Cloud Endpoints を導入し、自社の API 管理を効率化しています。
API を管理するためのツールは多く存在しますが、せっかく導入するのであれば Google Cloud (GCP)がオススメです。本記事でご紹介した Cloud Endpoints はもちろんのこと、前述した Apigee を利用することもできます。
例えば、開発者向けに設定したい場合は Cloud Endpoints を利用すれば、 API 作成や利用者の権限設定など、開発者の工数削減を実現できます。一方、ビジネスの収益化に特化したい場合は Apigee を利用することで、 API のレート制限や分析などが可能になり、自社のビジネス拡大に大きく寄与します。
このように、 Google Cloud (GCP)を導入することで、自社の API 管理の目的に応じて、柔軟にサービスを使い分けられます。昨今、消費者ニーズは高度化かつ多様化しているため、柔軟な API 管理が可能になる点はとても大きなメリットになります。
また、 Google Cloud (GCP)は API 管理だけではなく、コンピューティングやデータベース、 AI ソリューションなど、様々なサービスを一気通貫で提供しています。そのため、あらゆるシーンにおいて自社の業務効率化や生産性向上を実現できます。
本記事を参考にして、 Google Cloud (GCP)の導入および Cloud Endpoints の活用を検討してみてはいかがでしょうか?
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!