- nGeniusPULSE は何を見る製品なのか – nPoint による外形監視として整理する
サービスをどこから見るか、監視の視点をどう設計するかを整理した記事です。 - Kubernetes の LoadBalancer Service をオンプレミスで使う – MetalLB、CNI、BGP の関係
Kubernetes の入口、Service、ネットワーク境界を整理した記事です。 - Kubernetes 運用設計ガイド
Kubernetes 基盤を運用する時の責務分界を整理した記事です。
Kong Gateway は、API Gateway としてよく名前を聞く製品です。
ただ、API Gateway という言葉は少し分かりにくいところがあります。リバースプロキシのようにも見えますし、ロードバランサーのようにも見えます。Kubernetes で使う場合は Ingress Controller のようにも見えます。
そのため、Kong Gateway を理解するときは、まず「何ができるか」よりも、どの境界に置く製品なのかから考えた方が分かりやすいです。
結論から言えば、Kong Gateway は API の入口に置き、リクエストを上流サービスへ転送しながら、認証、レート制限、ログ、ルーティング、変換、可観測性などの共通制御を扱うための API Gateway です。
この記事は、Kong Gateway をインフラ設計の観点から整理するものです。エディション、ライセンス、プラグインの利用可否、Kong Konnect との関係、Kubernetes Gateway API 対応範囲などは、導入時点の Kong 公式ドキュメントで確認してください。
Kong Gateway は単なるリバースプロキシではない
Kong Gateway は、実装上はリバースプロキシとして振る舞います。クライアントからリクエストを受け、条件に合う上流サービスへ転送するからです。
しかし、Kong Gateway を「高機能なリバースプロキシ」とだけ見ると、少し浅くなります。重要なのは、通信を中継することそのものではなく、API の入口でどの制御を共通化するかです。
たとえば、複数のアプリケーションがそれぞれ認証、レート制限、ログ出力、CORS、ヘッダー処理を個別に実装していると、API の入口がアプリケーションごとにばらけます。仕様も運用も揺れやすくなります。
Kong Gateway は、そのような入口の共通処理をアプリケーションの外側へ出し、API 境界で扱うための製品として見ると理解しやすいです。
API Gateway は API の制御点である
API Gateway の主語は、サーバーではなく API です。
ロードバランサーは、複数のサーバーや Pod へ通信を分散することに関心があります。一方で API Gateway は、どのクライアントが、どの API に、どの条件でアクセスできるのかを扱います。
| ロードバランサー | 複数のサーバーやエンドポイントへ通信を分散し、可用性や性能を確保する。 |
|---|---|
| リバースプロキシ | クライアントの代理として上流サービスへリクエストを転送する。 |
| API Gateway | API の入口で、認証、認可、制限、ルーティング、ログ、変換などを制御する。 |
| Kong Gateway | API Gateway として、Route、Service、Plugin などの単位で API トラフィックを制御する。 |
もちろん、これらは完全に別物ではありません。API Gateway も通信を転送しますし、ロードバランサーの背後に置かれることもあります。Kubernetes では Ingress Controller として入口を担うこともあります。
ただし、設計上の関心は異なります。Kong Gateway を使う意味は、単に上流へ転送できることではなく、API の入口を制御点として扱えることにあります。
Kong の基本要素は Service、Route、Plugin で見る
Kong Gateway を理解するときは、まず Service、Route、Plugin の関係を見ると分かりやすいです。
| Service | 転送先となる上流 API やアプリケーションを表す。Kong から見たバックエンドの単位。 |
|---|---|
| Route | どのリクエストをどの Service に結び付けるかを決める入口条件。ホスト名、パス、メソッドなどが関係する。 |
| Plugin | 認証、レート制限、ログ、変換、セキュリティ制御などを追加する仕組み。 |
| Consumer | API を利用するクライアントや利用主体を表す。認証や制限の単位になる。 |
| Upstream / Target | 複数の転送先、ヘルスチェック、負荷分散を扱う時の上流構成要素。 |
この構造で考えると、Kong Gateway は「入口条件」「転送先」「入口で適用する共通処理」を分けて管理する製品だと分かります。
たとえば、同じ Service に対して、社内向け Route と外部向け Route を分けることができます。外部向け Route には認証やレート制限を強くかけ、社内向け Route には別のログ出力やアクセス制御を適用する、といった設計ができます。
入口条件と上流サービスを分けて考える
Kong Gateway では、どのリクエストを受けるかという Route と、どこへ転送するかという Service を分けて考える。ここを分けることで、API の公開方法とアプリケーションの実体を切り離しやすくなる。
Plugin は共通処理を入口へ寄せる仕組みである
Kong Gateway らしさが出るのは Plugin です。
API の入口では、アプリケーション本体とは別に、共通して必要になる処理があります。認証、レート制限、IP 制限、CORS、ログ出力、リクエスト変換、レスポンス変換、メトリクス出力などです。
| 認証 | API キー、JWT、OAuth 連携などで、呼び出し元を確認する。 |
|---|---|
| レート制限 | Consumer、Route、Service などの単位でリクエスト数を制限する。 |
| ログ | API アクセスログを外部ログ基盤や監視基盤へ送る。 |
| 変換 | ヘッダー、パス、リクエスト、レスポンスを入口で補正する。 |
| 可観測性 | メトリクスやトレースを出し、API の利用状況や遅延を把握しやすくする。 |
これらをすべてアプリケーション側に実装すると、各サービスの実装方針に依存します。言語やフレームワークが違えば、認証やログの出し方も揺れます。チームが違えば、制限の考え方も変わります。
Plugin によって入口の共通処理を Gateway 側へ寄せると、アプリケーションごとの差をある程度吸収できます。これは、アプリケーションの責務を軽くするというより、API 公開時の責務境界を明確にするという意味があります。
Kong と NGINX、F5、WAF の責務を混ぜない
Kong Gateway を導入するときに難しいのは、既存の入口装置との関係です。
多くの環境では、すでにロードバランサー、F5、NGINX、Apache、クラウドロードバランサー、WAF、Ingress などが存在します。その中に Kong Gateway を追加すると、入口が増えるだけにも見えます。
ここで重要なのは、製品名ではなく責務を分けることです。
| ロードバランサー | 外部入口、冗長化、TLS 終端、サーバーやノードへの分散を担当する。 |
|---|---|
| WAF | 攻撃パターン、リクエスト検査、既知の脆弱性対策を担当する。 |
| Kong Gateway | API 単位のルーティング、認証、制限、ログ、変換を担当する。 |
| アプリケーション | 業務ロジック、データ整合性、アプリ固有の認可判断を担当する。 |
| 認証基盤 | ユーザーやクライアントの本人性、トークン発行、ID 管理を担当する。 |
たとえば、Kong Gateway で API キーや JWT を確認するとしても、業務上の認可判断まで Kong に寄せるべきとは限りません。請求データを見てよいか、どのテナントの情報にアクセスできるか、といった判断はアプリケーション側のドメイン知識を必要とします。
逆に、全 API に共通するレート制限やログ出力、標準的な認証チェックは Gateway 側へ寄せた方が扱いやすい場合があります。この線引きをしないまま導入すると、Kong が便利な置き場所になり、設計の責任境界がかえって曖昧になります。
Kubernetes では Ingress の延長だけで見ない
Kong Gateway は Kubernetes 環境でも使われます。Kong Ingress Controller を使えば、Kubernetes の Ingress や Gateway API などのリソースを通じて、Kong 側のルーティングやポリシーを管理できます。
ただし、Kubernetes で使う場合でも、Kong を単なる Pod への振り分け装置として見ると、API Gateway としての意味が薄くなります。
Kubernetes の Ingress は、クラスタ外からクラスタ内サービスへ入る入口です。一方で Kong Gateway は、その入口で API 単位の認証、制限、ログ、変換などを扱うための制御点になります。
Kubernetes での Kong は入口設計の一部である
Ingress として通信を入れるだけなら、他の Ingress Controller でもよい場合があります。Kong を使う意味は、API の入口でどのポリシーを標準化するかまで含めて設計すると見えやすくなります。
セルフマネージドと Konnect は運用境界が違う
Kong Gateway を使う場合、セルフマネージドで運用する形と、Kong Konnect を使って管理面を外部サービスに寄せる形があります。
ここも、単純に機能の多さだけで選ぶものではありません。どこにコントロールプレーンを置き、どこにデータプレーンを置き、誰が設定変更を管理し、どのネットワーク境界をまたぐのかという問題です。
| セルフマネージド | 自社環境内で Gateway を管理する。閉域やオンプレミスに寄せやすい一方、運用責任も自社に残る。 |
|---|---|
| Konnect | 管理面を Kong の SaaS 側へ寄せる。データプレーン配置、外部接続、管理権限、監査の設計が重要になる。 |
| DB-less / 宣言的管理 | 設定をファイルや CI/CD で管理しやすい。変更管理やレビューとの相性を考える必要がある。 |
| Kubernetes 管理 | Ingress、Gateway API、KongPlugin などを Kubernetes リソースとして扱う。クラスタ運用と API 管理が近づく。 |
API Gateway は入口に置くため、設定変更の影響範囲が大きいです。Route を一つ間違えれば API が到達不能になりますし、Plugin の適用範囲を間違えれば、本来制限すべき API が制限されなかったり、逆に必要な通信を止めたりします。
そのため、Kong Gateway の運用では、誰が設定を変えるのか、変更はレビューされるのか、設定は Git で管理するのか、障害時にどう切り戻すのかを最初に決めておく必要があります。
小規模環境では過剰になる場合もある
Kong Gateway は便利ですが、すべての環境で必要になるわけではありません。
API が少なく、公開先も限定され、認証やログの方式も単純であれば、Nginx やクラウドロードバランサー、アプリケーション側の実装で十分な場合があります。
逆に、API が増え、利用者が増え、複数チームが API を公開し、認証、制限、ログ、監査、バージョン管理を標準化したくなったとき、API Gateway の価値が出てきます。
| 導入効果が出やすい環境 | 複数 API、複数チーム、外部公開、共通認証、レート制限、API ログ、監査が必要な環境。 |
|---|---|
| 過剰になりやすい環境 | 小規模な単一アプリ、内部用途のみ、入口制御が単純、運用担当が少ない環境。 |
| 判断基準 | API の入口制御を共通化する必要があるか。共通化した後に運用できる体制があるか。 |
これは、Kong Gateway が良いか悪いかではなく、入口を抽象化する必要があるかどうかの問題です。抽象化には価値がありますが、運用できない抽象化は負債になります。
導入前に決めること
Kong Gateway を導入する前に、少なくとも次の点は決めておきたいところです。
| API の単位 | Service と Route をどの粒度で分けるのか。アプリ単位か、機能単位か、公開境界単位か。 |
|---|---|
| 認証の責務 | Kong で何を確認し、アプリケーション側で何を判断するのか。 |
| 制限の単位 | Consumer、API、Route、組織、クライアント単位のどこでレート制限をかけるのか。 |
| ログと監視 | API アクセスログ、メトリクス、トレースをどこへ集約するのか。 |
| 管理 API の保護 | Kong の管理 API や管理画面をどのネットワークから許可し、誰が操作できるようにするのか。 |
| 変更管理 | 設定を手作業で変えるのか、Git や CI/CD、decK などで宣言的に管理するのか。 |
特に管理 API の扱いは重要です。API Gateway は入口の制御点であり、その設定を変更できる権限は非常に強い権限です。管理面をアプリケーション公開面と同じ感覚で扱うべきではありません。
導入時は、まず小さな API で Route、Service、Plugin、ログ出力、切り戻し手順を確認し、運用できる粒度を見極めてから適用範囲を広げる方が安全です。
書籍
API Gateway / Kubernetes 設計の参考書籍
API Gateway、Kubernetes Ingress、マイクロサービスの入口設計を確認したい場合の参考書籍検索です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
まとめ
Kong Gateway は、API の前段に置く API Gateway です。ただし、単にリクエストを上流へ転送するだけの製品として見ると、本質を捉えにくくなります。
重要なのは、API の入口で何を標準化し、何をアプリケーション側に残し、何をロードバランサーや WAF、認証基盤に任せるのかです。
Kong Gateway は、Route、Service、Plugin という単位で API の入口を設計するための製品です。そこでは、通信の転送だけでなく、認証、制限、ログ、観測、変更管理、責任分界が問題になります。
つまり Kong Gateway を理解することは、API の入口をどのような制御点として設計するかを考えることでもあります。

