APIゲートウェイ えーぴーあいげーとうぇい
API管理認証レートリミットマイクロサービスルーティングセキュリティ
APIゲートウェイについて教えて
簡単に言うとこんな感じ!
複数のバックエンドAPIへの「受付カウンター」みたいな存在だよ! 外部からのリクエストをここで受け取って、「この人は認証済みか?」「呼び出し回数が多すぎないか?」を確認してから、適切なサービスに転送してくれるんだ。セキュリティと管理を一箇所に集約できるのが最大の強みなんだよ!
APIゲートウェイとは
APIゲートウェイは、クライアントとバックエンドサービス群の間に配置される単一の入口(エントリーポイント)となるコンポーネントです。外部からのAPIリクエストを受け取り、認証・認可・レートリミット・ルーティング・ログ記録などを一元的に処理してから、適切なバックエンドサービスに転送します。
マイクロサービスアーキテクチャでは、多数のサービスが存在するため、クライアントが直接各サービスを呼び出すと複雑さが増大します。APIゲートウェイが「ファサード(窓口)」として機能することで、クライアントは1つのエンドポイントだけを知っていればよくなります。
APIゲートウェイの主な機能
| 機能 | 内容 |
|---|---|
| 認証・認可 | JWTトークン・APIキーの検証。不正アクセスをゲートウェイで遮断 |
| レートリミット | 1秒に1000回まで等の呼び出し制限。DoS攻撃や過負荷を防ぐ |
| ルーティング | /api/orders→注文サービス、/api/users→ユーザーサービスに転送 |
| 負荷分散 | 複数インスタンスへのリクエスト分散 |
| SSL終端 | HTTPSの暗号化・復号をここで一元処理 |
| ログ・監視 | 全APIリクエストのログ記録・分析 |
| キャッシュ | 頻繁なリクエストをキャッシュして高速化 |
| API変換 | REST↔GraphQL変換、バージョン管理 |
代表的なAPIゲートウェイ製品
| 製品 | 種別 | 特徴 |
|---|---|---|
| Kong | OSS・商用 | 豊富なプラグインエコシステム |
| AWS API Gateway | マネージドサービス | AWSとの統合が容易 |
| Azure API Management | マネージドサービス | Microsoftエコシステム対応 |
| Google Apigee | マネージドサービス | エンタープライズ向け高機能 |
| Nginx | OSS | 軽量・高速。設定が柔軟 |
| Traefik | OSS | Kubernetes環境で人気 |
歴史と背景
- 2000年代 — SOAPベースのWebサービスでESB(Enterprise Service Bus)が使われていた。APIゲートウェイの前身
- 2010年代初頭 — REST APIの普及でAPI管理の需要が拡大。AWS・Azure・Google CloudがマネージドAPIゲートウェイを提供開始
- 2014年 — AWS API Gatewayがリリース。クラウドネイティブなAPIゲートウェイの普及を加速
- 2015年 — マイクロサービスアーキテクチャの普及でAPIゲートウェイが標準コンポーネントに
- 2017年 — Kongが商用版をリリース。エンタープライズ採用が増加
- 2020年代 — Istio等のサービスメッシュとの競合・補完関係が議論される。GraphQL・gRPCへの対応も一般化
APIゲートウェイの配置構成
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 6749(OAuth 2.0) | APIゲートウェイの認証に広く使われるプロトコル |
| RFC 7519(JWT) | トークンベース認証の標準形式 |
| OpenAPI Specification | APIゲートウェイの設定をOpenAPIから自動生成 |
関連用語
- REST API — APIゲートウェイが主に管理するAPI通信方式
- GraphQL — APIゲートウェイがGraphQLリクエストを処理することも
- gRPC — 内部サービス間通信でgRPCを使う場合もゲートウェイで変換
- マイクロサービス — APIゲートウェイはマイクロサービスの標準コンポーネント
- サーバーレスアーキテクチャ — AWS API Gatewayはサーバーレス関数のトリガーとしても使われる
- セキュリティシフトレフト — APIゲートウェイで共通セキュリティ処理を集中管理