マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
3章
APIゲートウェイ:外部トラフィック管理
APIの定義とテストについて理解できたところで、次は本番環境において、利用者にAPIを提供する役割を担うプラットフォームとツールを検討していきます。APIゲートウェイは、最新の技術スタック内でも特に重要な部分です。具体的には、システムのネットワーク「エッジ」に位置し、利用者とバックエンドサービス群を仲介する管理ツールとして機能します。
この章では、APIゲートウェイが「何を提供するか?」「どこで利用するか?」「なぜ利用するのか?」について学び、APIゲートウェイと他のエッジ技術の歴史を探ります。また、APIゲートウェイの分類を理解し、これらがシステムアーキテクチャとデプロイメントモデルの全体像にどのように適用されるかを学び、よくある落とし穴を回避する方法を紹介します。
これらのトピックをもとに、要件、制約、ユースケースに基づいて適切なAPIゲートウェイを選択する方法を学び、この章を締めくくります。
3.1 APIゲートウェイは唯一のソリューションなのか?
APIゲートウェイは、ユーザの通信をバックエンドシステムに伝えるための唯一のソリューションなのでしょうか? 端的な回答は、「ノー」です。しかし、もう少し補足する必要があります。
多くのソフトウェアシステムでは、利用者のAPIリクエストや外部の送信元から内部のバックエンドアプリケーションに外部トラフィックをルーティングする必要があります。Webベースのシステムでは、利用者からのAPIリクエストはエンドユーザ端末から送信されることが一般的で、Webブラウザやモバイルアプリケーションを介してバックエンドシステムと通信を行います。利用者からのAPIリクエストは、インターネット上に存在するアプリケーションを介して外部システム(多くの場合サードパーティ)から送信されることもあります。外部トラフィックを管理するソリューションは、URLからバックエンドシステムへの通信をルーティングするメカニズムを提供するだけでなく、信頼性、オブザーバビリティ(観測可能性)、セキュリティも提供することを要求されます。 ...