Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AI機能、動いてますか - AI機能を持つマルチテナントSaaSの開発で直面した課題
Search
noy
March 25, 2026
Technology
35
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AI機能、動いてますか - AI機能を持つマルチテナントSaaSの開発で直面した課題
https://findy-tools.connpass.com/event/384629/
noy
March 25, 2026
More Decks by noy
See All by noy
新規事業×生成 AI の不確実性を乗り越える開発プロセス
noy72
0
1k
開発合宿の裏側 - Web アプリケーションを素早く作る
noy72
0
110
Hatena Engineer Seminar #18 ビジネスプラットフォームチームで始めた『筋トレ』施策について
noy72
0
1.6k
Other Decks in Technology
See All in Technology
DatabricksにおけるMCPソリューション
taka_aki
1
330
Aurora MySQL 8.4リリース! Rubyistが備えること / what-rubyist-should-prepare-for-aurora-mysql-8-4
fkmy
0
160
Network Firewallやっていき!
news_it_enj
0
250
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
3
620
生成 AI 時代にいま一度「問い合わせ」について考えてみる
kazzpapa3
1
110
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
840
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
240
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
210
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
900
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
380
Kaggleで成長するために意識したこと
prgckwb
2
440
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
250
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
The browser strikes back
jonoalderson
0
1.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
730
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Designing Experiences People Love
moore
143
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Deep Space Network (abreviated)
tonyrice
0
230
Transcript
AI機能、動いてますか id:noy72 AI機能を持つマルチテナントSaaSの開発で直面した課題 1 本番提供できる品質へ:SaaSにAI機能を実装するまでのリアル
自己紹介 2 松田 直也 株式会社 はてな エンジニアリングマネージャー id:noy72 2021年 株式会社はてな
新卒入社 • 社内サービスの開発 • 自社の広告配信結果のデータ基盤構築 • 新規事業『toitta』の開発
自己紹介 3 松田 直也 株式会社 はてな エンジニアリングマネージャー id:noy72 2021年 株式会社はてな
新卒入社 • 社内サービスの開発 • 自社の広告配信結果のデータ基盤構築 • 新規事業『toitta』の開発 AI機能を持つ マルチテナントSaaS
ユーザーが 何と⾔ったかに 深く向き合える。
5 https://ja.toitta.com/
6 AI を活用したインタビュー分析SaaS • ユーザーリサーチの支援 • 書き起こし & 話者分離 •
切片の抽出・分類 • 調査に沿ったレポート生成 そのほか様々な リサーチを支援する機能
前提 • この発表における AI = 主に生成 AI ◦ Google Cloud,
Azure などが 提供する API を利用する 7
8 こんな状況を考えてみる
9 AIを利用した機能を 開発していて……
10 評価基準を設計した ✓ 生成物の評価フローを作った ✓ リリースできる品質になった ✓
11 リリースして しばらく経ったら
12 「AI機能が使えません」
13 Q. 何があった?
14 例えば…… A. レートリミットに 達していた
15 AI の問題ではない
16 AI の問題ではない でも考えないといけない問題
AI機能、動いてますか AI機能を持つマルチテナントSaaSの開発で直面した課題 17
目次 1. レートリミット 2. ノイジーネイバー 3. フォールバック 18
19 1. レートリミット
レートリミットへの対処法 • 利用量を制限/調整する • レートリミットを緩くする ◦ → 上位プランにする ◦ →(水平スケール)
20
レートリミットへの対処法 • 利用量を制限/調整する • レートリミットを緩くする ◦ → 上位プランにする ◦ →(水平スケール)
21 これらで解決できる?
LLM にはリクエスト以外の制限もある • RPM制限:1分あたりのリクエスト数 • TPM制限:1分あたりのトークン数 22
LLM にはリクエスト以外の制限もある • RPM制限:1分あたりのリクエスト数 • TPM制限:1分あたりのトークン数 23 リクエスト数の制限だけでは不十分
お金で解決できないかも • Tier 制 ◦ 利用実績を積まないと利用量を増やせない • (リソース (GPU) が必要な分だけ
利用できるとは限らない) 24
toitta ではどうだったか • ユーザーインタビューは 1 時間程度 ◦ 文字に起こすと 1~2 万文字くらい
• 重要なポイントを漏れなく抽出するため、 文字起こしをいくつかに分けて処理 ◦ システムプロンプトには指示と抽出の例 25
toitta での対処法 • 流量制限+リトライ ◦ 流量を厳しく制限 ◦ トークンの制限はリトライでカバー • 詰まっているかどうかを監視する
◦ → 並列度の調整 26
27 2. ノイジーネイバー
ノイジーネイバー / うるさい隣人問題 複数のテナント(ユーザー)が 同じリソースを使う場合、 誰かが大量にリソースを使うと 他の人が使えなくなる。 28 ← この話ではない
ノイジーネイバー / うるさい隣人問題 29 テナントA テナントB BABA タスクキュー A も
B もサービスが利用できている状態
ノイジーネイバー / うるさい隣人問題 30 テナントA テナントB BAAAAAAAAAAAAA タスクキュー B はサービスが利用できない状態
対策サービスが案外ない 31 • AWS には去年追加された ◦ Amazon SQS フェアキュー •
Google Cloud にはない ◦ 量を制限することはできても 「誰」を考慮した制限はできない
対策サービスが案外ない 32 • AWS には去年追加された ◦ Amazon SQS フェアキュー •
Google Cloud にはない ◦ 量を制限することはできても 「誰」を考慮した制限はできない → 自前で実装
自前実装(1): Pub/Sub + Functions 33 テナントA テナントB AA B Function
テナントA: 3/25 10:13:58 テナントB: 3/11 13:25:11 (1) 最後に処理したテナント を取得&日付の更新 (2) 処理対象を取得 AI (3) 実行
自前実装(2) ジョブ管理コンポネの実 装 34 [メモリ] テナントA: 3/25 10:13:58 テナントB: 3/11
13/25:11 Cloud Run DB ID | テナントA | ステップ2 ID | テナントB | ステップ1 ID | テナントA | ステップ2 … (1) タスク取得 (2) 最後に処理したテナント を取得&日付の更新 ステップ1 ステップ2 (AI) (3) 実行
まだある課題 35 AI 機能 1 AI 機能 2 API ステップ1
ステップ2 (AI) タスク割り振り コンポネ ステップ2だけ 実行するには? AI 機能が複数あるときの タスクの優先順位は?
36 問. レートリミット、 ノイジーネイバーの対策をした これで十分か?
37 答. いいえ 障害は起こるため (実体験)
38 3. フォールバック
39 ロケーション / モデル / プラット フォーム を変える
(1)ロケーションの切り替え • 例) 米国で使えない ◦ → 台湾に切り替える 40
(2)モデルの切り替え • 例) Gemini 2.5 Pro が使えない ◦ → Gemini
2.5 Flash に切り替える • 問題 ◦ 生成物の品質が変わってしまう 41
(3)プラットフォームの切り替え • 例) Google Cloud で使えなくなった ◦ → Azure に切り替える
• 問題 ◦ コードが複雑になる ◦ 管理が大変 42
その変更は許される? • (特に BtoB だと)どのクラウドサービス、ど のリージョンを使うかをユーザーに伝えている ケースがある ◦ 利用規約, セキュリティチェックシート
など 43
44 まとめ
考えておくとよいこと • レートリミット ◦ アクセス量、トークン量などの制限をどこで調整するか? ◦ 利用量は増やせるか? • ノイジーネイバー ◦
どのユーザー / 処理をどこでどのように待たせるか? • フォールバック ◦ 障害時に何ができるか? ◦ (モデルを変える可能性があるなら)モデルを変更した際の品質はどうなるか? 45