クラウド道場

Cloud Endpointsと比較しながらApigee概要を学ぶ

Author
yama_chi
Lv:10 Exp:30967

クラウドエースのシステム開発部所属。
シェアハウスでのんびり暮らしてます。みんなでわいわいする時間と1人でぼーっとする時間が好き。酔いどれGCPUG、GCPUG女子会のOrganizerをやってます。

Apigeeってご存知でしょうか? 名前は知ってるけど何が出来るのか分からない、CloudEndpointsとの違いが分からない、という方向けに、Apigeeで出来ること、Apigeeの機能概要について学んでいこうと思います。

Apigeeは一言で言うとAPIの作成・管理をするためのプラットフォームです。Google Cloudのもう一つのAPI管理サービスであるCloudEndpointsとの比較も紹介していきます。

ところで、なぜAPIを管理する必要性があるのでしょうか?まずはAPIを管理する大切さについて確認していきます。

APIを管理する必要性

APIとは、あるサービスを外部のソフトウェアから簡単に利用できるようにするインターフェースです。APIを使えば、インターフェースが変わらない限り、サービスの実装は変更でき、利用する側もその内部変更を都度追いかける必要がなくサービスを利用できます。
多くの人に使ってもらいたい、長く利用していきたい場合にはなるべく変化しない安定したAPIを作成するのがベストです。もちろん、機能の追加や削除があった場合にはインターフェースの変更も必要になります。その際はAPIのバージョンを追加し新しいAPIを作成するのが一般的です。

APIの明確で使いやすい定義、細かい権限などの設定、バージョンや収益などの管理をしてきちんと運用していくことが、継続的に快適に利用できるサービを提供をするために大切になってきます。

Apigeeが提供するサービスは3つ

ApigeeはAPIの作成、セキュリティ、管理のための包括的なインフラを連携して提供しています。Apigeeを利用すると、アプリ開発者が利用できる RESTfulAPIを迅速かつ簡単に構築でき、Apigee経由でAPIとして公開できます。

API サービス

  • Policies & Programmability
    コードを書かずにPolicyというXML形式のファイルを使ってOAuth設定、キャッシュ保存、など様々なAPI設定ができます。PolicyはApigeeに最適化されているので、コードを書くより優先して使うことをオススメされていますが、JavascriptやJavaなどでコードを書いてAPIロジックを作成することも可能です。
  • OAuth & セキュリティ
    APIへのアクセス制御、悪意のあるメッセージコンテンツからの保護、暗号化された機密データのマスク、バックエンドリソースへの直接アクセスからの保護など大切なセキュリティ対策が可能です。

開発者 サービス

開発者向けにAPIを開発・管理しやすい機能があります。

  • Developer ポータル
    開発者用のポータルでは簡単なアプリ登録と自動/手動のAPIキー承認サポートを提供します。アプリ登録をすると自動でAPIドキュメントが作成され、APIの検索やテストがすぐに行えます。また、APIドキュメント、クイックスタートやコミュニティのQAにも簡単にアクセスできます。

  • 収益化機能
     収益化機能を利用するとAPIを収益化するための柔軟な課金システムを作成できます。課金プランも固定料金や変動料金、前払いなど多様な設定ができるようです。開発者ごとの利用状況を分析しレポートを自動生成することも可能です。

Analytics サービス

開発者だけでなくビジネスユーザー向けにも収益化に繋がる機能が提供されています。

  • 分析ツール
    APIパフォーマンスの傾向、パーフォーマンスが高いAPI・アプリ・APIプロダクトに関する情報などが表示されるダッシュボード、 特定のAPI指標の選択、結合、フィルタ、ドリルダウンができるカスタムレポートを提供しています。また、特定のAPI Proxyの個々のURIのパフォーマンス指標を追跡することもできます。
  • Ops & Business 指標
    受信したメッセージ数、開発者数、レスポンス時間、エラー、リクエストのサイズなどの指標が継続的にカウントおよび分析されます。また、APIから特定の情報を抽出するためにカスタム指標を作成することもできます。
  • パフォーマンス最適化
    分析によって、APIトラフィックの時間帯や地理的傾向や、レスポンス時間などを知ることができ、APIの改善に役立てることができます。

Apigeeの活用イメージはこんな感じです

Apigeeはバックエンドサービスのフロントに位置し、セキュリティ、Quota、Analyticsなどの機能を付加価値として提供します。アプリからサービスを直接使用させるのではなく、ApigeeEdge上に作成されたAPI Proxyにアクセスさせるようにします。API Proxyにアクセスすることで、セキュリティと認可タスクなどをApigeeで処理するだけでなく、それらのサービスの分析、モニタリングなどもApigeeで可能になります。

それぞれの用語と機能を簡単に紹介します。

ApigeeEdge

API Proxyの作成・管理ができる、Apigeeのプラットフォームのことです。

Organization

全てのAPI Proxyと、関連リソース(Developerやアプリケーション)を管理する単位です。
提供するサービスごとに作成します。各Apigeeアカウントは1つ以上のOrganizationにマッピングされます。組織が作成されると、組織へのユーザー追加、API Proxyの作成、開発者やアプリの登録が可能になります。

Developer

Apigeeで管理するAPIを利用する開発者です。開発者はApplication(APIを利用するアプリ)に関連づきます。APIにアクセスする時に利用されるAPI KeyによってApigeeEdge内の開発者とアプリを一意に識別します。

Environment

API proxy用のランタイムを実行する単位です。Organizationに複数のEnvironmentを作成できます。APIをネットワーク経由で利用できるようにする前に API proxyを Environment にデプロイする必要があります。Cloud環境のデフォルトでは test と prod の2つの環境が用意されています。キャッシングなどの一部機能では、スコープとして利用できます。また、Apigeeの分析データはOrganizationとEnvironmentの組み合わせごとに分けられています。

API Proxy

ApigeeEdge上のHTTPエンドポイントです。
ApigeeEdgeでAPIを公開するにはAPI Proxyを実装します。API Proxyはアプリ側のAPIをバックエンドから切り離し、バックエンドの変更があった場合にもアプリは中断することなく同じAPIを呼び出し続けることができます。
API Proxy構成には2種類のエンドポイントがあります。

-ProxyEndpoint:

クライアントアプリでのAPI使用方法を定義します。また、ProxyEndpointにより、アプリがHTTPとHTTPSのどちらでAPIプロキシにアクセスするかが決まります。

-TargetEndpoint:

APIプロキシとバックエンドサーバーとのやり取りの方法を定義します。セキュリティ設定などの接続情報の定義がされているリクエストが、適切なバックエンドサービスに転送されるように構成できます。

Policy

Proxyを構成する一番小さいロジックの単位。
Policyを使用することでコードを書かなくてもAPIの動作を設定できます。(PolicyはXML形式のファイルです。)
PolicyはProxyのリクエスト/レスポンスのフローの一部として特定の機能を実装するモジュールのようなものです。Policyによりセキュリティ(Oauthなど)、トラフィック制限、フォーマット変換(XMLやJSON等)、キャッシュ保存などの機能をAPIに追加できます。各自の環境でこれらの機能を実装、保守する必要がなくなります。

CloudEndpoints と比較してみる

今回はApigeeの概要紹介をしていますが、同じGCPサービスである Google Cloud Endpoints もAPIプロキシの開発、管理をするためのプラットフォームを提供します。何が違うの?という質問が多いこの2つのサービスを比較してみます。(Cloud Endpoints: https://cloud.google.com/endpoints/)

環境

CloudEndpoints

Cloud Endpoints はバックエンドがGCP上にある場合にのみ利用できます。GCP上で全て管理できるのでGCPユーザーにとって使いやすいです。

Apigee

ApigeeはバックエンドがGCPでなくても利用できます。オンプレミスやハイブリットクラウドを使っている場合にもAPIゲートウェイとして利用できる点が大きなメリットです。
例えばオンプレミス環境にあるモノリシックなレガシーアプリをGCPに置き換える場合、一気に置き換えることが難しくても、APIゲートウェイにApigeeを置き、サービスを少しづつ切り離しながらマイクロサービスを1つ1つ順番に実装することも可能です。

方向性

CloudEndpoints

Cloud Endpointsはどちらかといえば開発者目線で利用しやすく、開発者がAPIを簡単に作成・テストし、利用者の権限を管理し、使用状況を監視できるようにするためのサービスです。

Apigee

ApigeeはEndpointsに比べて、ビジネス上の問題にフォーカスしています。サービスの収益化に重点を置いていて、APIが叩かれるレート制限や、詳細な分析ができるようになっています。

料金

CloudEndpoints

利用した分だけ支払う従量課金です。APIの呼び出し回数によって料金が異なります。

API呼び出し回数/月 API呼び出し100万回あたりの料金
0 ~ 200万回 $0.00
200万回 ~ 10億回未満 $3.00
10億回以上 $1.50

Apigee

作成するプラットフォームの規模(ユーザー数やEnvironment数など)によって価格が異なります。
Apigeeのサイトに金額が明記されていないので、こちらのフォームより詳細金額を問い合わせすることになります。

最後に

ApigeeはただのAPIゲートウェイではなくビジネスにもフォーカスしたリッチな機能がたくさんあるサービスでした。

もっと詳細のノウハウが気になった方には
apps-gcpメンバーが書いたApigeeについての詳細記事もあるので紹介しておきます。
・Apigeeを使って3分でキャッシュサーバーを構築

Apigeeを使って3分でキャッシュサーバーを構築


・Apigeeを使用してAPIのアクセス制御を実装しよう

Apigeeを使用してAPIのアクセス制御を実装しよう

そして、実際に触ってみくなった方はこちらからクイックスタートができます。

興味が湧いた方はぜひApigeeを触ってみてください。

次の記事を読み込んでいます
次の記事を読み込んでいます