Edge Microgateway の概要

Edge Microgateway v. 3.0.x

Apigee Edge Microgateway は、API 用の安全な HTTP ベースのメッセージ プロセッサです。その主な仕事は、バックエンド サービスとの間でリクエストとレスポンスを安全に処理し、有用な API 実行データを非同期的に Apigee Edge に push することです。push されたデータは、そこで Edge Analytics システムによって消費されます。Edge Microgateway のインストールとデプロイは簡単です。数分でインスタンスを利用開始できます。

通常、Edge Microgateway はバックエンド ターゲット サービスに近接した信頼できるネットワーク内にインストールされます。エンタープライズ クラスのセキュリティと、spike arrest、quota、analytics などのいくつかの重要なプラグイン機能が提供されますが、Apigee Edge の全機能やフットプリントは提供されません。Edge Microgateway はバックエンド サービスと同じデータセンターにインストールできます。必要であれば、バックエンド サービスと同じマシンにインストールすることも可能です。

Edge Microgateway は、スタンドアロン プロセスとして実行できるほか、Docker コンテナで実行することもできます。Edge Microgateway での Docker の使用をご覧ください。Kubernetes クラスタで実行されるサービスに対して、Edge Microgateway を使用して Apigee API 管理を提供することもできます。既存のサービスと API を Kubernetes スタックに移行する場合でも、あるいはサービスと API を新規に作成する場合でも、セキュリティ、トラフィック管理、分析、公開などの機能を含むクリーンな API 管理環境を Edge Microgateway で実現できます。Edge Microgateway と Kubernetes の統合をご覧ください。

一般的なユースケース

Edge Microgateway のようなハイブリッド Cloud API 管理ソリューションの一般的なユースケースは次のとおりです。

  • 近接して実行されるサービス間の API トラフィックのレイテンシを短縮する。たとえば、API コンシューマとプロデューサが近接している場合、API に中央ゲートウェイを通過させるのが望ましいとは限りません。
  • セキュリティやコンプライアンスの目的で、企業が承認した境界内で API トラフィックを維持する。
  • インターネット接続が一時的に失われた場合に、メッセージの処理を続行する。
  • Kubernetes クラスタで実行されているサービスに Apigee API 管理を提供する。Edge Microgateway と Kubernetes の統合をご覧ください。

その他のユースケースについては、こちらの Apigee コミュニティの記事をご覧ください。

主な機能と利点

機能 利点
セキュリティ Edge Microgateway は、Apigee Edge によって各クライアント アプリに発行された署名付きアクセス トークンまたは API キーを使用してリクエストを認証します。
高速なデプロイ Apigee Edge の完全なデプロイとは異なり、Edge Microgateway のインスタンスはわずか数分でデプロイして実行できます。
ネットワークの近接 Edge Microgateway は、Edge Microgateway とやり取りするバックエンド ターゲット API と同じマシン、サブネット、データセンターにインストールして管理できます。
分析 Edge Microgateway は、API 実行データを非同期的に Apigee Edge に送信します。このデータは、そこで Edge Analytics システムによって処理されます。Edge Analytics のすべての指標、ダッシュボード、API を使用できます。
レイテンシの短縮 Apigee Edge とのすべての通信は非同期であり、クライアント API リクエストの処理の一部として行われるものではありません。これにより、Edge Microgateway はレイテンシに影響を与えることなく API データを収集して Apigee Edge に送信できます。
慣れた使いやすさ Edge Microgateway は、プロキシ、プロダクト、デベロッパー アプリなど、Edge 管理者がすでによく理解している Apigee Edge の機能を使用し、これらの機能と相互作用します。
構成 Edge Microgateway の設定と管理にプログラミングは必要ありません。すべてが構成によって処理されます。
利便性 Edge Microgateway は、既存のアプリケーション モニタリング、管理インフラストラクチャ、プロセスと統合できます。
ロギング ログファイルには、Edge Microgateway による API の処理中に発生したすべての通常イベントと例外イベントの詳細が記録されます。
CLI コマンドライン インターフェースを使用して、Edge Microgateway の起動、停止、再起動、運用統計データの抽出、ログファイルの表示、アクセス トークンのリクエストなどができます。

Edge Microgateway について知っておくべきこと

このセクションでは、Edge Microgateway の機能、基本的なアーキテクチャ、構成、デプロイについて説明します。

Edge Microgateway を使用する理由

バックエンド ターゲット アプリケーションの近くに API 管理コンポーネントを移動することで、ネットワークのレイテンシを短縮できます。Apigee Edge On Premises はプライベート クラウドにインストールできますが、Apigee Edge の完全なデプロイは、完全な機能セットと、キー管理、収益化、分析などのデータ量が多い機能を完全にサポートするために、必然的に大規模かつ複雑になります。つまり、Apigee Edge On Premises を各データセンターにデプロイすることが必ずしも望ましいとは限りません。

Edge Microgateway を利用することにより、バックエンド アプリケーションの近くで実行される比較的小さいフットプリントのアプリケーションを実現できます。また、分析、セキュリティなどの機能には完全な Apigee Edge を活用できます。

デプロイ シナリオの例

このセクションでは、Edge Microgateway の考えられるデプロイ シナリオをいくつか紹介します。

同じマシン

図 1 は、Edge Microgateway とバックエンド ターゲット API が同じマシンにインストールされた、考え得る限り最もシンプルな構成で Edge Microgateway がデプロイされている場合のリクエストの処理パスを示しています。単一の Edge Microgateway インスタンスを複数のバックエンド ターゲット アプリケーションのフロントエンドとして配置することができます。

Edge Microgateway をネットワーク上にデプロイします。これはクライアントからの API リクエストを処理し、ターゲット サービスを呼び出します。Apigee Edge Cloud との間でプロキシと分析のデータをやり取りします。
図 1: Edge Microgateway の最もシンプルなデプロイメント

異なるマシン

クライアント、Edge Microgateway、バックエンド API 実装の間の通信はすべて HTTP で行われるため、図 2 に示すように、Apigee Edge Microgateway を API 実装とは別のマシンにインストールすることもできます。

Edge Microgateway を 1 台のマシンにデプロイし、バックエンド サービスを他の場所にデプロイします。API リクエストが Microgateway で処理され、バックエンド ターゲットにリクエストが送信されます。Microgateway は、Apigee Edge Cloud との間でプロキシと分析のデータをやり取りします。
図 2: バックエンド ターゲット API から分離された Edge Microgateway

ロードバランサを使用する

図 3 に示すように、Edge Microgateway 自体のフロントエンドに標準のリバース プロキシ、または SSL 終端処理 / 負荷分散用のロードバランサを配置できます。

ロードバランサから Edge Microgateway の複数のインスタンスにトラフィックが送信されます。Microgateway のインスタンスは Edge Cloud と通信し、ターゲット サービスにリクエストを仲介します。
図 3: ロードバランサを使用した Edge Microgateway の運用

イントラネットへのデプロイ

図 4 に示すように、イントラネット トラフィックの保護に Edge Microgateway を使用し、インターネット トラフィックの保護に Apigee Edge を使用します。たとえば、Apigee Edge Cloud を介して API エンドポイント /orders がプロキシされ、バックエンド ターゲット https://mycompany.com/orders にヒットしたとします。これは、左側のターゲット API 実装によって表されます。次に、この API によって、右側のターゲット実装で表される複数の API エンドポイントを呼び出すことができます。たとえば、/customers/transactions を内部的に呼び出すことができます。Apigee コミュニティのこの投稿もご覧ください。

Edge Cloud に対する API プロキシはイントラネット上のターゲット サービスに送信され、ターゲット サービスはイントラネット上の Edge Microgateway にリクエストを送信します。次に、Edge Microgateway からイントラネット上の他のターゲット API サービスにリクエストが送信されます。
図 4: イントラネット トラフィックを保護する Edge Microgateway の運用

Apigee Edge への依存性

Edge Microgateway は Apigee Edge に依存し、Apigee Edge とやり取りします。Edge Microgateway が適切に機能するには、Apigee Edge との通信が必要です。Edge Microgateway が Edge とやり取りする主な方法は次のとおりです。

  • 起動時に、Edge Microgateway は特別な「Edge Microgateway 対応」プロキシのリストと、Apigee Edge 組織にあるすべての API プロダクトのリストを取得します。受信クライアント リクエストごとに、Edge Microgateway はリクエストがこれらの API プロキシのいずれかと一致するかどうかを確認し、そのプロキシに関連付けられた API プロダクトのキーに基づいて受信アクセス トークンまたは API キーを検証します。
  • Apigee Edge Analytics システムは、Edge Microgateway から非同期に受け取った API データを保存して処理します。
  • Apigee Edge は、アクセス トークンへの署名に使用される認証情報を提供するか、Edge Microgateway を通じて API を呼び出すクライアントが必要とする API キーを提供します。Edge Microgateway に用意されている CLI コマンドを使用して、これらのトークンを取得できます。

1 回限りの構成

最初に、Apigee Edge 組織と通信できるように Edge Microgateway を構成する必要があります。スタートアップ時に、Edge Microgateway は Apigee Edge との間でブートストラップ操作を開始します。Edge Microgateway は、Apigee Edge から、独自に API 呼び出しを処理するために必要な情報を取得します。これには、Apigee Edge にデプロイされている Edge Microgateway 対応プロキシのリストが含まれます。これらのプロキシは後で詳しく説明します。

Edge Microgateway は Apigee Edge と同じ場所に配置する必要はありません。Apigee Edge のパブリック クラウドとプライベート クラウドの提供サービスは等しく適切に機能します。

Edge Microgateway 対応プロキシについて知っておくべきこと

Edge Microgateway 対応プロキシは、クライアント API リクエストを処理するための特定の情報を Edge Microgateway に提供します。Edge Microgateway が起動すると、これらのプロキシに関する情報が Apigee Edge から Edge Microgateway にダウンロードされます。

ユーザーまたはユーザーの API チームが、Apigee Edge 管理 UI を使用して、または必要に応じて他の方法で Apigee Edge にこれらのプロキシを作成します。これは簡単な操作です。詳細については、Edge Microgateway の設定と構成をご覧ください。

Edge Microgateway 対応プロキシの特長は次のとおりです。

  • ベースパスとターゲット URL という 2 つの重要な情報を Edge Microgateway に提供します。
  • HTTP ターゲット エンドポイントを指している必要があります。TargetEndpoint の定義に含まれる ScriptTarget 要素によって参照された Node.js アプリケーションをバックエンド ターゲットにすることはできません。詳細については、上記の注をご覧ください。
  • プロキシ名には接頭辞 edgemicro_ を付加する必要があります。たとえば、edgemicro_weather とします。
  • Edge Microgateway 対応プロキシには、ポリシーも条件フローも追加できません。追加しようとしても無視されます。それ以外の点では、Edge Microgateway 対応プロキシは、Edge 上の他の API プロキシと同じように Edge 管理 UI に表示されます。
  • Edge Microgateway 対応プロキシは、プロダクトにバンドルすることも、デベロッパー アプリに関連付けることもできます。
  • Edge Analytics にトラフィック データが表示されます。
  • Edge Microgateway 対応プロキシを、Apigee Edge Trace ツールを使用して追跡することはできません。

Edge Microgateway と Apigee Edge Analytics について

API トラフィックが Edge Microgateway を通過する際、Edge Microgateway は API 実行データをバッファリングして非同期的に Apigee Edge に送信します。Apigee Edge に送信されたデータは、Edge Analytics システムによって保存され、処理されます。この非同期通信により、Edge Microgateway は Edge の分析機能を利用しながら、処理オーバーヘッドやブロッキングを最小限に抑えて比較的小さいフットプリントを維持できます。Edge Microgateway を通過するトラフィックの分析には、Edge Analytics ダッシュボードとカスタム レポートの全機能を使用できます。

[Proxy Traffic] ダッシュボードには、API トラフィックの量の経時的推移、デベロッパーのエンゲージメント データ、デベロッパー アプリ別のトラフィック構成が表示されます。
図 5: Edge の [Proxy Traffic] ダッシュボード

Edge Analytics の詳細については、Analytics ダッシュボードをご覧ください。

Edge Microgateway のセキュリティについて

Apigee Edge の役割

前述のように、Apigee Edge は、Edge Microgateway へのすべてのクライアント リクエストの保護に関与しています。Apigee Edge の主な役割は次のとおりです。

  • API キーとして使用されるクライアント認証情報を提供するか、クライアントが Edge Microgateway 経由で安全な API 呼び出しを行うために使用する有効なアクセス トークンを生成します。
  • Edge Microgateway が API 実行データを Apigee Edge Analytics システムに送信するために必要な認証情報を提供します。これらの認証情報は、初期設定手順で Edge Microgateway によって 1 回取得されます。
  • API リソースのプロダクトへのバンドル、デベロッパーの登録と管理、デベロッパー アプリの作成と管理のためのプラットフォームを提供します。

クライアント アプリの認証

Edge Microgateway では、アクセス トークンと API キーによるクライアント認証がサポートされています。セキュリティ キーとトークンは Apigee Edge によって生成され、API 呼び出しごとに Edge Microgateway によって検証されます。OAuth プラグインが有効になっている場合は、Edge Microgateway で署名付きアクセス トークンまたは API キーがチェックされ、それが有効であれば API 呼び出しがバックエンド ターゲットに進みます。有効でない場合は、エラーが返されます。

アクセス トークンと API キーを取得して使用するために必要な手順については、Edge Microgateway の設定と構成をご覧ください。

Apigee Edge における Edge Microgateway の認証

Apigee Edge の分析データを更新するために Edge Microgateway で非同期呼び出しを行うには、認証が必要です。この認証は、CLI または環境変数を使用して Edge Microgateway に渡される公開鍵と秘密鍵のペアによって提供されます。これらの鍵は、Edge Microgateway を初めてインストールして起動するときに 1 回取得して使用します。

API プロダクト管理プラットフォーム

Edge は、API リソースのプロダクトへのバンドル、デベロッパーの登録と管理、デベロッパー アプリの作成と管理のためのプラットフォームとして機能します。たとえば、Edge Microgateway プロキシでも、通常の Apigee Edge プロキシでプロダクトやデベロッパー アプリなどのエンティティを作成してバンドルするのとまったく同じことができます。API レベルのセキュリティは、各「バンドル」に対して公開と非公開のセキュリティ キーを生成することで実現します。このメカニズムは Apigee Edge での API セキュリティの仕組みと同じです。

既存の Edge プロキシ実装を Edge Microgateway に移行できますか?

関連するポリシーまたは条件フローを持つ既存のプロキシを Edge Microgateway に移行することはできません。Edge Microgateway により、新しい「Microgateway 対応」プロキシを作成することが求められます。これらのプロキシには、特別な接頭辞 edgemicro_ の付いた名前を指定する必要があります。スタートアップ時に、Edge Microgateway でこれらの edgemicro_* プロキシが検出され、それぞれの構成情報がダウンロードされます。この情報には、ターゲット URL とリソースパスが含まれます。それ以降、そのプロキシは使用されません。これらのプロキシのポリシーまたは条件フローが実行されることは決してありません。

Microgateway 対応プロキシを使用するもう 1 つの理由は、Edge Microgateway が Microgateway 対応プロキシごとの分析データを Edge に非同期的に push することです。これにより、Microgateway 対応プロキシの分析データを、Edge Analytics UI の他のプロキシと同様に表示できるようになります。

設定のトピックでは、Edge Microgateway を介して API 呼び出しのプロキシを開始するために必要なすべての手順を説明しています。これには、Microgateway 対応プロキシの作成など、Edge Microgateway で必要な構成を設定するための Apigee Edge でのいくつかの簡単な手順が含まれます。Edge Microgateway の設定と構成をご覧ください。

Edge Microgateway について学習する

Apigee では以下のリソースが提供されています。

  • Edge Microgateway のドキュメント - インストール ガイド、スタートガイド チュートリアル、総合的なリファレンス、構成情報のドキュメントが用意されています。

  • 動画 - デベロッパー向けの Apigee 4 分間動画シリーズでは、Edge Microgateway に関するさまざまなトピックを取り上げています。

  • Edge Micro フォーラム - Apigee コミュニティにある Edge Micro フォーラムは、質問したり、他のユーザーによる質問と回答を参考にしたりできる便利な場所です。