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通信の暗号化・復号をまとめて担当 | セキュリティゲートでの荷物検査 |
| ロギング・監視 | すべての通信記録を一元収集 | 来客名簿の記録 |
| プロトコル変換 | REST ↔ gRPC など異なる形式を相互変換 | 通訳サービス |
| キャッシュ | 同じリクエストへの返答を一時保存して高速化 | よくある質問の回答を事前準備 |
覚え方
「ゲートウェイ=門番+案内係」と覚えると楽!
門番(セキュリティ)と案内係(ルーティング)が一体になった存在、それがAPI Gatewayです。
主要製品の比較
| 製品名 | 提供形態 | 特徴 |
|---|---|---|
| AWS API Gateway | クラウド(AWS) | Lambdaとの連携が強力、サーバーレス向き |
| Azure API Management | クラウド(Azure) | Microsoft製品との親和性が高い |
| Google Cloud Apigee | クラウド(GCP) | エンタープライズ向け、分析機能が豊富 |
| Kong | OSS/クラウド | オープンソース、オンプレミスにも対応 |
| nginx / Envoy | OSS | 軽量・高速、自前構築向き |
歴史と背景
- 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のアーキテクチャ
クライアントからバックエンドサービスまでの全体像を図で確認しましょう。
API GatewayとBFFの違い
BFF(Backend for Frontend) はAPI Gatewayに似た概念ですが、「特定のフロントエンド専用に最適化されたバックエンド」です。
API Gateway :全クライアント共通の玄関口。汎用的
BFF :特定のクライアント専用の玄関口(例:スマホ用・PC用)
両者を組み合わせて「API Gatewayの後ろにBFFを置く」構成も実在します。
API GatewayとリバースプロキシとServiceMeshの比較
| 比較項目 | リバースプロキシ | API Gateway | Service Mesh |
|---|---|---|---|
| 主な対象 | HTTPリクエスト全般 | APIトラフィック | サービス間通信 |
| 認証機能 | 限定的 | 豊富 | あり(mTLSなど) |
| 管理UI | ほぼなし | あり | あり |
| 代表製品 | nginx, HAProxy | Kong, AWS API GW | Istio, Linkerd |
| 導入複雑さ | 低 | 中 | 高 |
関連する規格・RFC
| 規格・仕様 | 内容 |
|---|---|
| RFC 7235 | HTTP認証の基本仕様(Bearer Tokenなど) |
| RFC 6749 | OAuth 2.0(API認可の業界標準) |
| OpenAPI Specification 3.x | APIの仕様を記述する標準フォーマット |
| RFC 7519 | JWT(JSON Web Token)の仕様 |
関連用語
- [API](./api