【えーぴーあいげーとうぇい】

APIゲートウェイ とは?

💡 すべてのAPIリクエストが通る「総合受付窓口」
📌 このページのポイント
Web App Mobile 外部API API ゲートウェイ 認証・認可 レート制限 ルーティング サービス A サービス B サービス C 外部クライアント マイクロサービス
APIゲートウェイの役割
ひよこ ひよこ
ペンギン先生 ペンギン先生

ロードバランサーは「同じサービスの複数のサーバーにリクエストを分散する」のが主な仕事。APIゲートウェイは「URLのパターンによって振り先を変える(/users→ユーザーサービス、/orders→注文サービス)」や「認証トークンのチェック」など、より賢い処理をするんだよ。

ひよこ ひよこ

認証ってAPIゲートウェイでやるの?各サービスでやるんじゃないの?

ペンギン先生 ペンギン先生

各サービスで認証を実装すると、全サービスに同じコードを書く必要がある。APIゲートウェイで一元的に認証すれば、内部サービスは「ゲートウェイを通ってきたリクエストは認証済みだ」と信頼できる。認証ロジックの変更も一か所で済むのが便利なんだ。

ひよこ ひよこ

レート制限って何のためにあるの?

ペンギン先生 ペンギン先生

「1秒間に1000回以上リクエストしてきたら遮断する」みたいな設定で、APIの過負荷やDDoS攻撃から守るためだよ。1ユーザーが大量のリクエストを送って他のユーザーの体験が悪くなるのを防ぐ効果もある。

ひよこ ひよこ

APIゲートウェイがSPOF(単一障害点)にならないの?ゲートウェイが落ちたら全部のAPIが使えなくなりそう。

ペンギン先生 ペンギン先生

まさにAPIゲートウェイ導入時の重要な検討事項で、ゲートウェイ自体を複数インスタンス冗長化するのが必須なんだ。Amazon API GatewayやAWS ALBならAWSが冗長性を管理してくれる。自前でKongを運営する場合はKong自体のクラスター構成を組む必要がある。ゲートウェイが「賢くなるほど複雑になり、複雑なほど壊れやすくなる」というトレードオフがあるから、どの機能をゲートウェイに持たせるかの設計が重要なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
APIゲートウェイ」って出てきたら「外部からのAPIリクエストを受けて内部に振り分ける入口のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「API Gateway」 = APIの「ゲートウェイ(関所・入口)」
💬 かつての城の「城門(ゲート)」のイメージ。外から中に入るすべての通行者をここでチェックする
← 用語集にもどる