オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです

SILICON VALLEY REPORT

APIゲートウェイアーキテクチャ

~Silicon Valley Reportより~
原著:山野裕司
加筆:樋口匡俊
2013年8月8日

本稿は、オージス総研の米国法人「OGIS International」が社内向けに米国のIT動向を報告する「Silicon Valley Report」を、オブジェクトの広場向けに加筆修正したものです。

はじめに

本稿では、クラウドインテグレーションのためのアーキテクチャのひとつであるAPIゲートウェイについて解説します。 APIゲートウェイはクラウドインテグレーションの要素技術として非常に重要で、iPaaSはこれを実現するプラットフォームとして注目されています。

APIゲートウェイとは

APIゲートウェイとは、Web APIを使ったクラウドインテグレーションのためのアーキテクチャスタイルのひとつです。 企業ネットワーク内にデプロイされたアプリケーションとインターネット上のパブリックなクラウドサービスとの間に、ゲートウェイとして機能するコンポーネントを配置し、すべての通信をそのゲートウェイ経由で行います。

APIゲートウェイは企業内アプリケーションを外部に公開するために使われることもあれば、クラウドサービスを企業内アプリケーションから利用する場合に使われこともあります。 APIゲートウェイは、セキュリティゲートウェイ、サービスゲートウェイなどと呼ばれることもあります。

api-gateway
図1:APIゲートウェイ
servicelayer
図2:Service Layer

これは、MuleSoft社のファウンダーの一人であるRoss MasonがBusやHub & Spokeと並ぶ代表的なMule ESBの適用パターンのひとつとしてあげているService Layerと同じものです。 Service Layerとは、データベースやファイル内のデータをより広い範囲のオーディエンスに届けるためのもので、HTTPを使ったSOAP、あるいはRESTベースのサービス、認証、認可、監査、流量制限機能などを提供します。

一般にAPIゲートウェイは以下のような機能を提供します。

  • メッセージのバリデーションや変換。入出力のメッセージのバリデーション、プロトコルやフォーマットの変換を行うことができます。
  • 集中化されたセキュリティやポリシーの適用。暗号化や認証、認可などの機能を集中的に管理できます。
  • スケーラビリティ。大量のリクエストを処理するためのレスポンスのキャッシュ機能などを提供します。
  • サービス実行ロケーションの仮想化。APIゲートウェイ経由でサービスを提供することにより、サービスが実際に実行されているロケーションを仮想化することができます。
  • ダッシュボードと組み合わせることによる各種イベントの可視化。すべてのAPIコールをAPIゲートウェイ経由で行うことにより、API利用状況や攻撃などのログをとり、ダッシュボードで集中監視することができます。

APIゲートウェイのビジネスユースケース

APIゲートウェイはどのような場合に使うとよいのでしょうか。 CITO Research社の発行したEnterprise-class API Patterns for Cloud & Mobileというレポートでは、パートナーのサポート、モバイル、IaaSの管理、PaaSの管理、クラウド上のデータのセキュア化、クラウドアプリケーションのセキュア化。 APIのマネタイジングという7つのAPIゲートウェイのビジネスユースケースを紹介しています。

パートナーのサポート - Supporting Partners with APIs and Web -

企業は自分たちのデジタル資産、例えばデータやサービスをAPIやSOAPベースのWebサービス経由でパートナーに公開することにより、より広い範囲の消費者にリーチし、売り上げを増やすことができます。
代表的な例はNetflixです。Netflixは映像ストリーミング配信によるビデオオンデマンドサービスを提供しています。 Netflixが提供するAPIを使うことにより、RokuやXBoxなどの200を超えるサードパーティのデバイス上で映画などを見ることができます。

partner
図3:Supporting Partners with APIs and Web

Netflixのようにデジタル資産をインターネットへ公開するには、通信経路の暗号化や複合化、DoS攻撃の防御、認証や認可などのセキュリティに関する処理、企業内で使用しているSOAPのようなレガシープロトコルのRESTへの変換などが必要です。 企業ネットワークのDMZなどに配置されたAPIゲートウェイはこのような処理をすべて引き受けることができます。

企業のモバイルアプリのサポート - Supporting Mobile Use of Enterprise Services -

企業がより広い範囲の消費者にリーチするため、そしてパートナーや従業員に自社のデジタル資産を使ってもらうために、モバイルアプリケーションが必要とされるようになってきました。 そして、モバイルアプリケーションからデジタル資産にアクセスするためには、Web APIが必要です。
しかし、多くの既存の企業内システムは外部に公開することを念頭において作られていません。 また、モバイルデバイスのサポートにより大量のトランザクションが発生する可能性があるため、トランザクション量をコントロールし、バックエンドの企業内システムに影響を及ばさないようにするための仕組みが必要です。

mobile
図4:Supporting Mobile Use of Enterprise Services

APIゲートウェイを使うことにより、セキュリティやスケーラビリティに関する処理を企業アプリケーションに付加し、モバイルアプリケーション向けにWeb APIとして公開することができます。 多くの企業内アプリケーションではまだSOAPが一般的な連携プロトコルですが、モバイルアプリケーションでは主にJSONフォーマットを利用したRESTが用いられており、メッセージの変換が必要です。 また、OAuthのような企業アプリケーションではまだあまり使われていない認可機能が利用されています。 APIゲートウェイはこれらの要求にも答えることができます。

IaaSの管理 - Controlling Use of Cloud Infrastructure as a Service (IaaS) -

Amazon Web Services(以降、AWS)やRackspaceなどのIaaSプロバイダーは、VMをコントロールするためにWebコンソールだけではなくAPIを提供しています。 パブリックIaaSを使う企業は、これらのAPIを使うことによって企業内のアプリケーションにIaaSの管理機能を組み込み、より簡単にVMを管理することができます。

APIゲートウェイを使うと、パブリックIaaS上のVMを集中管理し、監査のためのロギングを行うことができます。

iaas
図5:Controlling Use of Cloud Infrastructure as a Service (IaaS)

また、企業内のLDAPなどとAPIゲートウェイを組み合わせて使うことにより、特定のユーザーにだけこれらの操作を許可することができます。 APIゲートウェイ上にVMにアクセスするための抽象化API層を作ることもできます。

PaaSの管理 - Controlling Use of Cloud Platform as a Service (PaaS) -

企業はForce.comやEngine YardのようなPaaSを使いアプリケーションを開発、運用することができます。 しかしながら、一般的にPaaSプロバイダーの提供しているセキュリティ機能は、企業システムのセキュリティ要求を満たすとは限りません。

APIゲートウェイを使うことで、より強力な暗号化や認証、認可の機能を付加することができます。 例えば、OAuth、SSL、共有鍵、署名などです。

paas
図6:Controlling Use of Cloud Platform as a Service (PaaS)

クラウドデータの管理 - Projecting Security Policy on Data in the Cloud -

企業アプリケーションが企業内のデータベースのデータとData.comのようなパブリッククラウド上のデータを同時に使うようになると、データ漏洩のリスクが高まります。 したがって、外部のパブリッククラウド上にあるデータを集中的、かつセキュアに管理する仕組みが必要になります。

APIゲートウェイは企業アプリケーションと外部クラウドサービス間でやりとりされる個人情報などの重要なデータを安全に管理することができます。 例えば、データを暗号化してパブリックなクラウドサービスに送信したり、企業標準に基づく認証、認可の機能をアプリケーションに強制させたりすることができます。 また、パブリッククラウド上のAPIコールが失敗した時のために、過去のAPIコールのレスポンスをゲートウェイ上にキャッシュしておくこともできます。

data
図7:Projecting Security Policy on Data in the Cloud

SaaSの管理 - Securing Cloud Applications (Software as a Services) -

ほとんどのSaaSがセルフサービスの機能を提供していますが、アプリケーションユーザーの管理を企業内のユーザー自身が行うのは安全とはいえません。 また、利用するSaaSの数が増えれば増えるほど、IT部門にとっても各SaaSのアカウント管理を手動で行うのは現実的ではありません。

APIゲートウェイを標準的な3層アーキテクチャに追加することにより、暗号化、認証、認可、SAMLのような機能をインテグレーションプロジェクト毎に開発する必要がなくなります。 APIゲートウェイはIT部門のSaaS管理は容易になるので、インテグレーションの開発コスト、運用コストともに下げることができます。

saas
図8:Securing Cloud Applications (Software as a Services)

APIのマネタイジング - Monetizing an API -

例えば、テレコム業界はAPIのマネタイジングを進めようとしています。 現在は、音声やデータサービスに定額課金していますが、API経由で提供するサービスも同じような課金対象になるでしょう。 APIのマネタイジングはテレコム業界だけでなく、他の業界でも進んでくると考えられているようです。

APIゲートウェイはロギング、メータリング、監査、流量性制御などの機能を提供します。 これにより、利用したコンテンツ毎の課金、データに基づいた顧客の行動分析、API稼働状況のモニタリング、SLAを満足するサービスの提供などが容易になります。

APIゲートウェイの実現方法

このようなAPIゲートウェイは、ESBやiPaaSを使って実装することができます。 Mule ESBは企業システムで使われる多くのプロトコルをサポートしていますし、メッセージの変換のための仕組みも提供されています。 Muleをコアにして、不足している機能をMule上に実装、あるいは他の製品やサービスと組み合わせることによってAPIゲートウェイを実現することができます。 また、 MuleSoft社が提供するiPaaSであるCloud Hubを使えばパブリッククラウド上に配置することもできます。
2013年4月に米国サンフランシスコで開催されたMule Summitでは「Anypoint Platform」という新たなコンポーネント群が発表されました。 「Anypoint Platform」にはAPIに関する様々なコンポーネントが含まれています。 例えば、社内外のAPIレジストリを構築してセキュリティポリシーの設定やモニタリングなどが行える「Service Registry」、XML定義をベースにAPIを簡単に開発できる「API Kit」、APIの管理・デプロイが簡単に行える「API Manager」などです。 これらとMule ESBやCloud Hubを組み合わせることで、より高度なAPIゲートウェイを容易に構築・運用することが可能になるでしょう。

cloudhub
図9:CloudHub

まとめ

本稿では、APIゲートウェイと呼ばれるクラウドインテグレーションのためのアーキテクチャスタイルを紹介しました。
APIゲートウェイはクラウドインテグレーションにおける様々な問題を解決する重要なアーキテクチャスタイルのひとつであり、iPaaSはこれを実現するプラットフォームとして注目されています。 APIゲートウェイの実装には、Mule ESBを使うことができますし、Mule ESBをコアにしたiPaaSであるCloudHubを使うこともできます。

参考資料


オージス総研がお手伝いできること

当社では、Web APIの公開や活用について様々なサービスを提供しています。

もしWeb APIを活用してのビジネスをお考えの方、公開、実装などでお困りの方は当 社まで気軽にご相談ください。

「Data簡単API化サービス」 無料トライアル実施中

データをWeb APIで公開したいが実装に関わるスキル/コストでお悩みの方、是非お試しください。

(2016/08/08:「オージス総研の取り組み」の内容を変更しました)
(2015/09/16: 追記:「Data簡単API化サービス 無料トライアル実施中」)