スケーラビリティ評価
本ドキュメントでは、idp-server のスケーラビリティについて評価・分析する。
評価観点
1. データスケーラビリティ
- ユーザー数増加に伴う性能変化
- テナント選択パターンによる影響
2. マルチテナントスケーラビリティ
- テナント数増加に伴う性能変化
- テナント間のリソース分離
3. 水平スケーラビリティ
- インスタンス追加時のスループット向上率
- ロードバランサ配下での負荷分散効率
テスト環境
インフラ構成
| コンポーネント | 構成 | リソース |
|---|---|---|
| idp-server | 2インスタンス | 各 CPU 2コア、メモリ 2GB |
| ロードバランサー | nginx | ラウンドロビン |
| PostgreSQL | Primary + Replica | Primary: 書き込み、Replica: 読み取り |
| Redis | 1インスタンス | キャッシュ用 |
データ規模
| 構成 | 総ユーザー数 |
|---|---|
| 1テナント×100万 + 9テナント×10万 | 190万 |
ローカル環境での制約
本テストはDocker Desktop (macOS) 上で実施。以下の制約がある:
- 全コンテナが同一ホスト のCPU/メモリ/I/Oを共有
- 仮想化オーバーヘッドが存在
- ネットワークはループバック
4インスタンス以上の構成は本番環境での検証が必要。
データスケーラビリティ
テナント選択パターン別性能比較
10テナント環境(1テナント100万ユーザー + 9テナント各10万ユーザー)での比較。
| エンドポイント | ランダムテナント | 100万固定 | 差分 | 考察 |
|---|---|---|---|---|
| Authorization | 1,803 TPS | 2,708 TPS | +50% | テナント切替オーバーヘッド削減 |
| JWKS | 2,684 TPS | 2,632 TPS | -2% | キャッシュ効果で同等 |
| Token Introspection | 2,453 TPS | 2,076 TPS | -15% | データ量の影響 |
| CIBA (device) | 1,425 TPS | 1,481 TPS | +4% | インデックス効果で同等 |