APIゲートウェイの仕組みとは?マイクロサービス時代の交通整理役


APIゲートウェイの仕組み Webブラウザ スマホアプリ 外部システム クライアント API ゲートウェイ 認証・認可チェック レート制限 ルーティング・変換 ログ・監視 ユーザーサービス 注文サービス 決済サービス バックエンド 1つの入口で認証・制限・振り分けを一括管理
APIゲートウェイの仕組み
ひよこ ひよこ

APIゲートウェイってよく聞くけど、何をしてるの?

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

簡単に言うと「APIの受付窓口」だよ。クライアント(スマホアプリやWebブラウザ)からのリクエストを一手に引き受けて、裏にある複数のサービスに振り分ける役割なんだ。大きなビルの総合受付をイメージするといいよ。

ひよこ ひよこ

なんで直接サービスに繋がないの?

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

マイクロサービスだと裏に何十ものサービスがあるんだ。クライアントが全部のサービスのアドレスを知っているのは現実的じゃないよね。APIゲートウェイが1つの入口になることで、クライアントは「ここに聞けばOK」になる。それに認証チェックやアクセス制限も一箇所で管理できるんだ。

ひよこ ひよこ

具体的にどんな処理をしてるの?

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

主に5つの仕事があるよ。①ルーティング(リクエストを正しいサービスに転送)、②認証・認可トークンの検証)、③レート制限(1秒に100回まで、など)、④リクエスト変換(形式の変換や集約)、⑤ログ・監視(全リクエストの記録)。これを全サービスで個別にやると大変だから、ゲートウェイで一括処理するんだ。

ひよこ ひよこ

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

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

サービスを守るためだよ。悪意のあるユーザーが1秒に1万回リクエストを送ってきたら、サーバーがパンクしてしまう。APIゲートウェイが「あなたは1分に60回まで」と制限をかけることで、サービスを過負荷から守るんだ。DDoS攻撃への防御にもなるよ。

ひよこ ひよこ

AWSとかのクラウドにもあるの?

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

あるよ!AWSなら「Amazon API Gateway」、GCPなら「Apigee」、Azureなら「Azure API Management」が代表的。自前で構築する場合はNginxやKong、Envoyといったオープンソースのツールもよく使われるね。

ひよこ ひよこ

APIゲートウェイ自体が落ちたらどうなるの?

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

いい質問!ゲートウェイは全リクエストが通る「単一障害点」になりうるから、冗長化が必須だよ。複数台のゲートウェイロードバランサーの後ろに配置して、1台落ちても別の台が処理を引き継ぐ構成にするのが一般的。クラウドマネージドサービスならこの冗長化が最初から組み込まれているんだ。

ひよこ ひよこ

マイクロサービスじゃなくても使うの?

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

実はモノリスでも使うことがあるよ。外部向けAPIを公開するときに、認証やレート制限をアプリケーションのコードに書くよりゲートウェイに任せたほうがスッキリする。最近は「BFF」パターンで、フロントエンドごとに専用のゲートウェイを置くアーキテクチャも増えているんだ。