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
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
Search
yuu26
August 08, 2025
Technology
3
95
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
August 08, 2025
Tweet
Share
More Decks by yuu26
See All by yuu26
Datadog 関数クイズ (初級編)
yuu26
0
78
バクラクにおける可観測性向上の取り組み
yuu26
4
1.9k
AWS アーキテクチャクイズ
yuu26
3
1.3k
EMになって半年でやったこと
yuu26
1
2.9k
ローカル開発環境をAWSへ移行して爆速にした
yuu26
14
11k
AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用
yuu26
2
4.6k
Other Decks in Technology
See All in Technology
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
0
290
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
290
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
3
250
ソフトウェア開発プロジェクトでの品質管理への提案(温故知新)
yohwada
0
120
Rubyの国のPerlMonger
anatofuz
3
730
JAWS AI/ML #30 AI コーディング IDE "Kiro" を触ってみよう
inariku
3
270
LLMをツールからプラットフォームへ〜Ai Workforceの戦略〜 #BetAIDay
layerx
PRO
1
840
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
230
Oracle Cloud Infrastructure:2025年7月度サービス・アップデート
oracle4engineer
PRO
1
110
Claude CodeでKiroの仕様駆動開発を実現させるには...
gotalab555
3
870
モバイルゲームの開発を支える基盤の歩み ~再現性のある開発ラインを量産する秘訣~
qualiarts
0
1.1k
マルチプロダクト×マルチテナントを支えるモジュラモノリスを中心としたアソビューのアーキテクチャ
disc99
0
280
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Visualization
eitanlees
146
16k
A Tale of Four Properties
chriscoyier
160
23k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
The Language of Interfaces
destraynor
158
25k
The Invisible Side of Design
smashingmag
301
51k
We Have a Design System, Now What?
morganepeng
53
7.7k
Practical Orchestrator
shlominoach
190
11k
Adopting Sorbet at Scale
ufuk
77
9.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Transcript
LLM機能を支えるLangfuse/ClickHouseの サーバレス化 2025-08-08 ゆるSRE勉強会 #12
自己紹介 自己紹介 上原 佑介 インフラエンジニア → SRE 株式会社LayerX バクラク事業部 Platform
Engineering部 SREグループ AWS, Datadog, Terraform あたりをよく触る 好きなこと 旅行、飛行機 ゲーム (Switch 2 まだ買えていません) © LayerX Inc. 2
バクラクについて
バクラクについて © LayerX Inc. 4
バクラクの LLM 関連機能 © LayerX Inc. バクラクについて 2025年7月に AI 申請レビュー
機能をリリース 申請作成時に AI が内容をリアルタイムでレビュー 社内ルールとの整合性や申請内容の妥当性を自動で判断 5
LLMOps 基盤の構築
LLMOps 基盤として Langfuse を採用 Langfuse / ClickHouse とは LLM 機能の開発や検証用プラットフォーム
プロンプトのバージョン管理 モデルごとの精度検証・比較 LLM 実行結果のトレース記録・スコア計測 AI レビュー機能の計測基盤として活用 AI エージェントの開発など、今後さらに重要になる基盤 © LayerX Inc. 7
Langfuse インフラ構成 © LayerX Inc. Langfuse / ClickHouse とは クラウド版とセルフホスト版がある
クラウド版は日本リージョンがなく、データ管理の観点からセルフホストを選択 データストアとして PostgreSQL, S3, ClickHouse を用いる 8
ClickHouse とは Langfuse / ClickHouse とは オープンソースの分析向け (OLAP) 列指向データベース Langfuse
トレース結果等の格納先として利用 書き込まれたデータはブロックストレージで保管される AWS の場合は EBS や EFS など 今回は EFS を採用 複数サーバによるクラスタ構成に対応 レプリケーションを組むことで冗長化 クラスタ管理用の ClickHouse Keeper を使う © LayerX Inc. 9
インフラ構成図 Langfuse / ClickHouse とは 主要リソース Langfuse ClickHouse ClickHouse Keeper
図にない関連リソース Aurora PostgreSQL Redis (Valkey) S3 EFS Langfuse Worker © LayerX Inc. 10
インフラ構成図 Langfuse / ClickHouse とは 大きく分けるとこんな感じ ブラウザ → Langfuse →
ClickHouse ブラウザが LLM 実行結果を Langfuse へ送信 Langfuse は ClickHouse にトレースを記録 ClickHouse は EFS にデータを書き込み ClickHouse Keeper でクラスタ管理 これをサーバレス構成で構築した © LayerX Inc. 11
サーバレス構成の工夫
ECS on Fargate 構成を目指す © LayerX Inc. サーバレス構成の工夫 バクラクの大部分は ECS
on Fargate 構成を揃えることで既存のプラットフォームを活用できる CI/CD や監視設定などを共通化・自動生成できる EC2 インスタンス管理の手間を省きたい 実現に向けての課題 Langfuse 特に大きな問題なし、そのまま ECS on Fargate で複数台起動できた ClickHouse ECS で起動するために満たすべき要件がいくつかある 13
ClickHouse ECS 構成の課題 サーバレス構成の工夫 サーバごとに設定値が異なる 重複しない server_id の指定が必要 単に同じタスクを複数立てるだけではうまく 動かない
サーバ間で 1:1 通信が必要 例えば ClickHouse #1 は ClickHouse Keeper #1, #2, #3 を識別して通信する必要がある ロードバランサを挟むと #1, #2, #3 のどこへ 届くかを制御できない 1サーバ = 1 ECS Service として構築 © LayerX Inc. 14
ECS Service 分離設計 © LayerX Inc. サーバレス構成の工夫 1サーバずつ1つの ECS Service
として5サービス構築 ClickHouse #1 ClickHouse #2 ClickHouse Keeper #1 ClickHouse Keeper #2 ClickHouse Keeper #3 ECS Service Discovery で個別にドメイン名を付与、サービス間は直接通信 特定のサーバを指定して 1:1 通信可能に ECS Service Connect も検討したが、同一ホスト名で複数ポートの開放に対応しておらず断念 15
ECS Service 分離設計 © LayerX Inc. サーバレス構成の工夫 サーバ間の設定差分は環境変数で吸収 設定ファイルやコンテナイメージは共通化 タスク定義でサーバごとの設定値を注入
16
インフラ構成まとめ サーバレス構成の工夫 Langfuse ALB 経由の ECS on Fargate 単一の ECS
Service、Auto Scaling 有効化 ClickHouse NLB 経由の ECS on Fargate サーバごとに個別の ECS Service を作成 内部通信はロードバランサを挟まず直接通信 © LayerX Inc. 17
完成! めでたしめでたし
無事稼働! と思ったら…… © LayerX Inc. ClickHouse パフォーマンス問題 毎日のようにタスクが不安定な状態に デプロイ時にタスクの入れ替えに失敗する Langfuse
がトレースを記録できなかったとエラーを吐く Max attempts reached for * record. Dropping record. Langfuse / ClickHouse ともに CPU やメモリには余裕がある 19
タスクについて詳細調査 © LayerX Inc. ClickHouse パフォーマンス問題 開発チームや MLOps エンジニアの協力で詳細調査 ClickhouseWriter.writeToClickhouse
Error: Timeout error. のログが出ていた ClickHouse への書き込みが頻繁にタイムアウトする状態 EFS メトリクスで Throughput utilization が常に高いことが発覚 20
EFS スループットモードについて © LayerX Inc. ClickHouse パフォーマンス問題 EFS にはスループットモードが3種類あり、要件に合わせて選択可能 Elastic:
利用状況に合わせて自動的にスケール Bursting: ストレージ使用量に比例してスループットも増える Provisioned: 指定したスループット量を固定で確保 該当の EFS は Bursting になっていた 使い始めたばかりで使用量は 3~4GiB ほど ストレージ 1GiB あたり 50KiBps のスループット枠 → 200KiB/s ほどしかない Bursting → Elastic へ変更して状況が改善した AWS コンソールの初期値は Elastic ただし Terraform aws provider の初期値は Bursting なことを見落としていた (凡ミス) 21
EFS 設定変更により安定稼働! © LayerX Inc. ClickHouse パフォーマンス問題 ボトルネックが解消したことで ClickHouse が安定するように
タイムアウトエラーが解消 デプロイ時のタスク入れ替え失敗も起きなくなった ClickHouse が安定したことで Langfuse のエラーも解消 設定変更後、トレースの記録失敗は0件 Langfuse 上でのオペレーションも高速化された 不十分であった EFS の監視項目も追加 22
さいごに
まとめ 関連記事 LangfuseのTrace書き込み失敗から学ぶLLMOpsを支える技術 https://tech.layerx.co.jp/entry/deep-dive-clickhouse Langfuse用のClickHouse冗長構成をAWS Fargateで実現する https://tech.layerx.co.jp/entry/2025/05/02/123428 © LayerX Inc.
まとめ Langfuse / ClickHouse サーバレス構成の実現 ECS on Fargate + EFS にて構築 サーバ間の 1:1 通信を実現するため ECS Service を分離 Service Discovery による同一ホスト名・複数ポートの通信を可能に EFS パフォーマンス問題 ClickHouse 本体を気にしすぎて後ろにある EFS の調査が遅れた スループットモードの選択と使用率には要注意 24
エンジニア積極採用中! We are hiring! SRE を含めた幅広い職種で募集中です! 新規プロダクトや新しい要件が今後も次々と出てきます パフォーマンス改善などやれることが沢山あります 採用サイトが今月リニューアルされました! 質問に答えるとパーソナライズされた採用ページが生成
されます ぜひ一度試してみてください! © LayerX Inc. 25