今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

apache/apisix

NGINX と etcd をベースにしたクラウドネイティブな API ゲートウェイ兼 AI ゲートウェイです。

ルートを追加してもNginxの再起動が不要という点だけで、まず試す価値があります。設定を書き換えた瞬間にアップストリームが切り替わる感覚は、実際にリクエストを流してみないと伝わりません。JWTやRBAC、rate limitといったプラグインを組み合わせるだけでなく、LLMサービスの前段に置いてトークン単位の速度制限やフォールバックを組んだり、Kubernetesのingressとしてカナリアリリースを回したりと、マイクロサービスの認証・監視をこのゲートウェイ一つに集約する体験を、今日の手元の環境で確かめてみてください。

01 / 概要
何をするものか一文で言うと
ひとことでNGINX と etcd をベースにしたクラウドネイティブな API ゲートウェイ兼 AI ゲートウェイです。

Apache APISIXは、NGINXとetcdの上に構築されたクラウドネイティブなAPIゲートウェイです。動的ルーティング、負荷分散、認証、可観測性などのトラフィック管理機能を持ち、Kubernetes Ingressコントローラーとしても使えます。近年はAIゲートウェイ機能も備え、複数のLLMプロバイダーへの統一的なプロキシやトークン単位のレート制限も提供します。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

コアはLuaJIT上で動くNGINX拡張で、apisix/init.luaやapisix/http/route.luaがリクエストのライフサイクルを制御します。ルート情報はapisix/core/config_etcd.luaを通じてetcdから動的に読み込まれ、設定変更はホットリロードされるためNGINXの再起動は不要です。apisix/balancer配下にroundrobin・chash・ewma・least_conn・priorityの各アルゴリズムがあり、apisix/discovery配下ではKubernetes・Consul・Nacos・Eureka・DNSなど多様なサービスディスカバリに対応します。プラグインはapisix/plugins配下にLuaファイルとして実装され、ai-providers・ai-protocols・ai-cacheなどAIゲートウェイ関連のプラグイン群も同じ仕組みで動きます。Admin API(apisix/admin配下)がルート・アップストリーム・SSLなどのリソースをREST経由でetcdに書き込み、それをデータプレーンが検知して反映する構成です。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    quickstartスクリプトをcurlで実行すると、DockerでAPISIX本体とetcdコンテナが起動し、ポート9080と9180が公開されます。

  2. STEP 02

    curlでポート9080にHEADリクエストを送ると、Serverヘッダーにapisix/バージョン文字列が表示され、稼働確認ができます。

  3. STEP 03

    Admin API(ポート9180)にPUTでルート定義をJSONで送信すると、httpbin.orgへ転送するルートがetcdに登録されます。

  4. STEP 04

    登録したルート経由で/getにアクセスすると、httpbin.orgからのレスポンスがAPISIXを通じて返ってきます。

  5. STEP 05

    ソースからビルドする場合はmake deps・make install-runtimeなどMakefile経由の手順が必要で、LuaJIT・OpenResty・etcdなど依存関係が多く、事前準備に時間がかかります。

  6. STEP 06

    AI Gateway機能を試す場合はai-providers配下のプラグイン設定でOpenAIやAnthropicなどのAPIキーが必要になり、外部LLMサービスへの実際の通信が発生します。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元にはetcdを設定ストアとするAPIゲートウェイが1つ立ち上がり、Admin API経由でルート・アップストリーム・プラグインを動的に追加変更できる環境が得られます。負荷分散やレート制限などのトラフィック管理に加え、AI関連プラグインを使えば複数LLMプロバイダーへの統一プロキシも構築できます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

etcdへの依存が強く、etcdが落ちるとデータプレーンの設定更新が反映されなくなるため、本番運用にはetcdクラスタの可用性設計が別途必要です。

02

プラグインの種類が非常に多く(ai-providers・ai-protocols・discoveryなど)、実運用で必要な機能を選び出すための学習コストがあります。

03

ソースからのビルドはUbuntu 24.04ベースのDevcontainerでもcpanmやetcdバイナリの手動取得が必要で、環境依存のトラブルが起きやすい構成です。

04

AI Gateway関連プラグインは外部LLM APIキーとネットワーク接続が前提のため、オフライン検証はできません。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

既に稼働実績のあるAPIゲートウェイをetcdベースの動的設定で運用したいチーム、あるいはKubernetes Ingressや複数LLMプロバイダーの統一窓口を必要とするチームに向いています。README記載のquickstartコマンド一発でDocker環境が立ち上がる設計と、Admin API・プラグイン・バランサー・ディスカバリの各モジュールがソース上で明確に分離されている点から、実行せずとも構成の妥当性は判断可能です。ただしetcd依存とプラグイン数の多さゆえ、実運用移行には個別の検証が要ります。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する