Apache APISIX は、Nginx と etcd を基盤としたクラウドネイティブな高性能 API ゲートウェイです。動的ルーティングやプラグインのホットロードをサポートし、マイクロサービス環境での API マネジメントに特化しています。
APISIX の特徴
- 動的設定: サービス再起動不要で設定やプラグインをリアルタイムに更新可能
- 多プロトコルサポート: HTTP(S)/TCP/UDP/MQTT/gRPC/WebSocket 等のプロトコルを扱える
- サービス発見: サービス登録中心を介して負荷分散を自動化
- セキュリティ機能: 認証・認可、IPブラックリスト、レート制限、DoS対策など
- パフォーマンス: 単コアで最大18,000 QPSを達成、平均遅延0.2ミリ秒
主な機能
| カテゴリ | 機能 |
|---|---|
| ネットワーク | 7層/4層プロキシ、SSL証明書の動的ロード |
| 負荷分散 | 重み付きロードバランシング、一貫性ハッシュアルゴリズム |
| マイクロサービス | サービス発見、グレースフルリスタート、セッション保持 |
| 監視 | Prometheus メトリクス、OpenTracing 対応(SkyWalking/Zipkin) |
| 拡張性 | カスタムプラグイン開発、Lua スクリプトによる処理カスタマイズ |
導入手順
- 依存環境準備: OpenResty (v1.15.8.1以上) と etcd のインストール
- 導入方法選択:
- ソースコードからのビルド
- RPMパッケージ(CentOS7)
- Luarocks経由
- Dockerイメージ利用
- 基本起動コマンド
sudo apisix start
管理コンソール構築
Dashboardの構築には以下の手順が必要です:
- Node.js(v10以上)環境の確保
- サブモジュールの初期化
- yarnでの依存関係インストール
- コンソールファイルの配置
git submodule update --init --recursive
cd dashboard && yarn && yarn build:prod
cp -r dist/* apisix/dashboard/
パフォーマンス比較
AWS 8コアサーバーでのベンチマーク結果:
- QPS: 140,000
- 平均遅延: 0.2ミリ秒
Kongとの比較
| 項目 | Apache APISIX | Kong |
|---|---|---|
| 技術スタック | Nginx + etcd | Nginx + PostgreSQL |
| QPS(1コア) | 18,000 | 1,700 |
| 設定反映速度 | イベント通知(1ms未満) | ポーリング(5秒) |
| カスタムアルゴリズム | サポート | 非サポート |