Upgrade to Pro — share decks privately, control downloads, hide ads and more …

負荷試験で秒間16,000リクエスト到達!Azure x OpenFGAを自社導入した話

負荷試験で秒間16,000リクエスト到達!Azure x OpenFGAを自社導入した話

Avatar for Ken Mitamura

Ken Mitamura

July 15, 2025

More Decks by Ken Mitamura

Other Decks in Programming

Transcript

  1. 2 目 次 01 02 03 04 05 FGA導入の背景 Auth0

    FGA vs OpenFGA Azure x OpenFGA アーキテクチャ 負荷試験 まとめ
  2. 3 自己紹介 三田村 健 Ke n Mitam u ra 株式会社ACES

    「アルゴリズムを用いて事業開発を行うA I事業会社」 共同創業者/ソフトウェアエンジニア エンジニアリング領域 • We bインフラ/サーバー/フロント(A WS, A zu re , Pyth on , R uby , N ext.js ) • D ev Ops/ML Ops/Fin Ops • セキュリティ/認証認可 • 情シス
  3. 6 FGA導入の背景 Amazon Verified Permissionsも良さそうという話が上がりつつも、 AWSをインフラに使っていないサービスもあるため、 全社的にFGA(Auth0 FGA, OpenFGA)に統一する方針となった →

    認可基盤がほしい 課題 • SaaSプロダクトでアクセス制限を柔軟に行いたい • 認可ロジックが複雑になってきている • AI Agentを導入するための認可制御が必要
  4. 7 Auth0 FGA vs OpenFGA Auth0 FGA(Public) Auth0 FGA(Private) OpenFGA

    利用方法 SaaS SaaS OSS + 自前インフラ 料金 比較的安い 比較的高い 比較的安い 日本リージョン ✕(当時) ◯ ◯ Rate Limit △(応相談) ◯ ◯ 管理画面 ◯ ◯ ✕ DB - - PostgreSQL MySQL 備考 Public→Privateへの データ移行不可 自前の運用管理が必要
  5. 8 Auth0 FGA vs OpenFGA Auth0 FGA(Public) Auth0 FGA(Private) OpenFGA

    利用方法 SaaS SaaS OSS + 自前インフラ 料金 比較的安い 比較的高い 比較的安い 日本リージョン ✕(当時) ◯ ◯ Rate Limit △(応相談) ◯ ◯ 管理画面 ◯ ◯ ✕ DB - - PostgreSQL MySQL 備考 Public→Privateへの データ移行不可 自前の運用管理が必要 A uth 0 FGA(Ope nFGAをホストして提供している Sa aS)の利用も検討したが、日本リージョ ンを使いたいという要件を優先し、まずはOpe n FGAを利用する方針となった 将来的にA uth 0 FGAのPr ivateクラウドに移行する可能性あり
  6. 10 Azure x OpenFGA アーキテクチャ A zu re Co ntain

    e r A pps + Cosm o s D B f or Po stgreS QL のスケールしやすい構成とした 認証にはA uth 0のM2 M認証を利用
  7. 11 負荷試験 シナリオ 以下シナリオをk6 で実施した • 1 0%の確率でタプル書き込みを実施 • 認可チェックを実施(タプル

    1件) • キャッシュあり80% • キャッシュなし20% • 1 %の確率でタプル変更(書き込みと削除)を実施 タプル書き込み(10%) 認可チェック キャッシュあり(80%) 認可チェック キャッシュなし(20%) タプル変更(1%)
  8. 12 負荷試験 Appコンテナ スペック Appコンテナ 負荷状況 DBサーバー スペック DBサーバー 負荷状況

    スループット (rps) レイテンシー (p95・ms) 備考 2vCPU,4GiB x1 CPU : 100% 2vCPU,8GiB CPU : 31% 2,600 59 2vCPU,4GiB x2 CPU : 100% 2vCPU,8GiB CPU : 46% 4,900 52 最初の構成として採用 2vCPU,4GiB x4 CPU : 100% 2vCPU,8GiB CPU : 65% 8,800 34 2vCPU,4GiB x8 CPU : 100% 4vCPU,16GiB CPU : 63% 16,600 24 DBサーバー強化 4vCPU,8GiB x1 CPU : 95% 2vCPU,8GiB CPU : 50% 5,300 34 4vCPU,8GiB x2 CPU : 92% 2vCPU,8GiB CPU : 70% 9,900 42 4vCPU,8GiB x4 CPU : 82% 4vCPU,16GiB CPU : 58% 16,000 36 攻撃サーバー能力不足
  9. 13 負荷試験 Appコンテナ スペック Appコンテナ 負荷状況 DBサーバー スペック DBサーバー 負荷状況

    スループット (rps) レイテンシー (p95・ms) 備考 2vCPU,4GiB x1 CPU : 100% 2vCPU,8GiB CPU : 31% 2,600 59 2vCPU,4GiB x2 CPU : 100% 2vCPU,8GiB CPU : 46% 4,900 52 最初の構成として採用 2vCPU,4GiB x4 CPU : 100% 2vCPU,8GiB CPU : 65% 8,800 34 2vCPU,4GiB x8 CPU : 100% 4vCPU,16GiB CPU : 63% 16,600 24 DBサーバー強化 4vCPU,8GiB x1 CPU : 95% 2vCPU,8GiB CPU : 50% 5,300 34 4vCPU,8GiB x2 CPU : 92% 2vCPU,8GiB CPU : 70% 9,900 42 4vCPU,8GiB x4 CPU : 82% 4vCPU,16GiB CPU : 58% 16,000 36 攻撃サーバー能力不足 最大1 6,0 00 r ps (1秒間に1 6, 00 0リクエスト)達成、レイテンシーも低い →十分なスケール性能を保有していると判断
  10. 14 負荷試験 Appコンテナ スペック Appコンテナ 負荷状況 DBサーバー スペック DBサーバー 負荷状況

    スループット (rps) レイテンシー (p95・ms) 備考 2vCPU,4GiB x1 CPU : 100% 2vCPU,8GiB CPU : 31% 2,600 59 2vCPU,4GiB x2 CPU : 100% 2vCPU,8GiB CPU : 46% 4,900 52 最初の構成として採用 2vCPU,4GiB x4 CPU : 100% 2vCPU,8GiB CPU : 65% 8,800 34 2vCPU,4GiB x8 CPU : 100% 4vCPU,16GiB CPU : 63% 16,600 24 DBサーバー強化 4vCPU,8GiB x1 CPU : 95% 2vCPU,8GiB CPU : 50% 5,300 34 4vCPU,8GiB x2 CPU : 92% 2vCPU,8GiB CPU : 70% 9,900 42 4vCPU,8GiB x4 CPU : 82% 4vCPU,16GiB CPU : 58% 16,000 36 攻撃サーバー能力不足 最初はこの構成を採用(冗長性を持たせるためA ppコンテナを2台構成にする)
  11. 15 負荷試験 Appコンテナ スペック Appコンテナ 負荷状況 DBサーバー スペック DBサーバー 負荷状況

    スループット (rps) レイテンシー (p95・ms) 備考 2vCPU,4GiB x1 CPU : 100% 2vCPU,8GiB CPU : 31% 2,600 59 2vCPU,4GiB x2 CPU : 100% 2vCPU,8GiB CPU : 46% 4,900 52 最初の構成として採用 2vCPU,4GiB x4 CPU : 100% 2vCPU,8GiB CPU : 65% 8,800 34 2vCPU,4GiB x8 CPU : 100% 4vCPU,16GiB CPU : 63% 16,600 24 DBサーバー強化 4vCPU,8GiB x1 CPU : 95% 2vCPU,8GiB CPU : 50% 5,300 34 4vCPU,8GiB x2 CPU : 92% 2vCPU,8GiB CPU : 70% 9,900 42 4vCPU,8GiB x4 CPU : 82% 4vCPU,16GiB CPU : 58% 16,000 36 攻撃サーバー能力不足 • 実際の性能はキャッシュの割合によっても変わる • D BのMa x Co nn ec tion 数とOpe n FGAの設定に注意すること • 長時間耐久試験、認可の一括判定 (5 0並列)、A WSからのリクエストなどを実施したが問題なし
  12. 16 まとめ OpenFGAの採用 • 認可基盤を構築したいとなった際に有力な選択肢となる • Auth0 FGA(SaaS)への移行も可能 負荷試験からの知見 •

    OpenFGAは十分なスケール性能を保有している • 性能を上げるためには適切なDBの設定とキャッシュへの意識が重要