API・メッセージング

API Gateway えーぴーあい げーとうぇい

APIマイクロサービスリバースプロキシ認証・認可レート制限ルーティング
API Gatewayについて教えて

簡単に言うとこんな感じ!

たくさんのサービスへの入り口を一か所にまとめた「受付カウンター」だよ!「誰?」「何の用?」「どこに案内する?」を全部ここで仕切ってくれるんだ。バラバラなAPIを一元管理できるから、システムがすっきり整理されるってこと!


API Gatewayとは

API Gateway(エーピーアイ ゲートウェイ)とは、複数のAPIやバックエンドサービスへのリクエストを一元的に受け付け、適切な宛先へ振り分ける「玄関口」の役割を果たすサーバーやソフトウェアのことです。クライアント(スマホアプリやWebブラウザなど)は、個々のサービスに直接アクセスするのではなく、すべてAPI Gatewayを通じてやり取りします。

マイクロサービス(機能ごとに独立した小さなサービスに分割する設計手法)が普及した現代では、社内外に数十〜数百のAPIが乱立するケースが珍しくありません。API Gatewayはその窓口を一本化し、認証認可流量制限(レート制限ロギングプロトコル変換などの共通処理を肩代わりすることで、個々のサービス側の負担を大幅に減らします。

実務では「AWS API Gateway」「Kong」「Azure API Management」「Apigee」といった製品・サービスの形で導入されることが多く、クラウド移行やシステムのモダナイゼーション(刷新)を進める際のキーコンポーネントとして広く使われています。


API Gatewayの主な機能

機能内容たとえ話
ルーティングリクエストの内容に応じて適切なサービスへ転送受付が「Aさんは2階、Bさんは3階へ」と案内
認証・認可APIキーやトークンを確認し、不正アクセスを遮断入館証チェック
レート制限一定時間内のリクエスト数を制限し過負荷を防ぐ「1時間に100回まで」という制限
SSL終端HTTPS通信の暗号化・復号をまとめて担当セキュリティゲートでの荷物検査
ロギング・監視すべての通信記録を一元収集来客名簿の記録
プロトコル変換RESTgRPC など異なる形式を相互変換通訳サービス
キャッシュ同じリクエストへの返答を一時保存して高速化よくある質問の回答を事前準備

覚え方

ゲートウェイ=門番+案内係」と覚えると楽!
門番(セキュリティ)と案内係(ルーティング)が一体になった存在、それがAPI Gatewayです。

主要製品の比較

製品名提供形態特徴
AWS API Gatewayクラウド(AWS)Lambdaとの連携が強力、サーバーレス向き
Azure API Managementクラウド(Azure)Microsoft製品との親和性が高い
Google Cloud Apigeeクラウド(GCP)エンタープライズ向け、分析機能が豊富
KongOSS/クラウドオープンソース、オンプレミスにも対応
nginx / EnvoyOSS軽量・高速、自前構築向き

歴史と背景

  • 2000年代前半SOA(サービス指向アーキテクチャ)の時代に「ESB(エンタープライズ・サービス・バス)」という前身的な概念が登場。ただし重厚で高コストだった
  • 2010年前後 — スマートフォンの普及でモバイルアプリとWeb APIの通信が爆発的に増加。シンプルなREST APIが主流に
  • 2013〜2015年Dockerやコンテナ技術の台頭でマイクロサービス設計が現実的に。APIの数が急増し、管理の複雑さが課題となる
  • 2015年 — AWSがAmazon API Gatewayをリリース。クラウドで手軽に使えるAPI Gatewayが一般化
  • 2016年〜 — Kongなどオープンソースの製品も普及。オンプレミス環境でも導入しやすくなる
  • 2020年代サービスメッシュIstioなど)との役割分担が議論されるようになり、より洗練されたアーキテクチャが模索されている

API Gatewayのアーキテクチャ

クライアントからバックエンドサービスまでの全体像を図で確認しましょう。

Webブラウザ (フロントエンド) スマホアプリ (iOS / Android) 外部システム (パートナー等) API Gateway 🔐 認証・認可 🚦 レート制限 🔀 ルーティング 📋 ロギング ユーザーサービス /api/users 注文サービス /api/orders 在庫サービス /api/inventory クライアント バックエンドサービス クライアント API Gateway(共通処理) バックエンドサービス

API GatewayとBFFの違い

BFF(Backend for Frontend) はAPI Gatewayに似た概念ですが、「特定のフロントエンド専用に最適化されたバックエンド」です。

API Gateway :全クライアント共通の玄関口。汎用的
BFF         :特定のクライアント専用の玄関口(例:スマホ用・PC用)

両者を組み合わせて「API Gatewayの後ろにBFFを置く」構成も実在します。

API GatewayとリバースプロキシとServiceMeshの比較

比較項目リバースプロキシAPI GatewayService Mesh
主な対象HTTPリクエスト全般APIトラフィックサービス間通信
認証機能限定的豊富あり(mTLSなど)
管理UIほぼなしありあり
代表製品nginx, HAProxyKong, AWS API GWIstio, Linkerd
導入複雑さ

関連する規格・RFC

規格・仕様内容
RFC 7235HTTP認証の基本仕様(Bearer Tokenなど)
RFC 6749OAuth 2.0(API認可の業界標準)
OpenAPI Specification 3.xAPIの仕様を記述する標準フォーマット
RFC 7519JWT(JSON Web Token)の仕様

関連用語

  • [API](./api