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
サーバーレスなエラートラッキングツール faultline と 「SaaSライクな運用」の可能...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ken’ichiro Oyama
August 25, 2017
Technology
4
2k
サーバーレスなエラートラッキングツール faultline と 「SaaSライクな運用」の可能性 / Serverless Meetup Fukuoka #1
Serverless Meetup Fukuoka #1
Ken’ichiro Oyama
August 25, 2017
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
4.6k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
750
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
610
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
140
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.1k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
10k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
410
Cleanup handling in Go / Go Conference 2024
k1low
7
4.1k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Other Decks in Technology
See All in Technology
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
320
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
110
SaaSに宿る21g
kanyamaguc
2
150
A Casual Introduction to RISC-V
omasanori
0
560
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
20
10k
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
340
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
350
スピンアウト講座04_ルーティン処理
overflowinc
0
1.1k
今日から始められるテスト自動化 〜 基礎知識から生成AI活用まで 〜
magicpod
1
130
「コントロールの三分法」で考える「コト」への向き合い方 / phperkaigi2026
blue_goheimochi
0
140
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
180
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
160
Featured
See All Featured
The Language of Interfaces
destraynor
162
26k
Documentation Writing (for coders)
carmenintech
77
5.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
500
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
エンジニアに許された特別な時間の終わり
watany
106
240k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Designing for humans not robots
tammielis
254
26k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Transcript
サーバーレスなエラートラッキングツール faultline と 「SaaSライクな運⽤」の可能性 Kenʼichiro Oyama Fusic Co.,Ltd. 2017.8.25 1
Serverless Meetup Fukuoka #1
Who 2 Serverless Meetup Fukuoka #1
k1LoW Kenʼichiro Oyama @k1LoW Fusic Co.,Ltd. エンジニア
基盤ユニット テックリード GitHub organizations fukuokarb / faultline / emacs-jp / etc. awspecというAWS⽤のテストツールを作って います https://github.com/k1LoW/awspec 3 Serverless Meetup Fukuoka #1
アジェンダ サーバーレスアーキテクチャなエラートラッキ ングツールfaultlineの紹介 実際のFusicにおけるfaultlineの活⽤/運⽤事例 サーバーレスアーキテクチャと”SaaSライク”な 運⽤の可能性 4
Serverless Meetup Fukuoka #1
アプリケーションにおける エラートラッキング 5 Serverless Meetup Fukuoka #1
エラー 運⽤上の想定内のエラー ログインエラー ⼊⼒エラー Exception
運⽤上の想定外のエラー <<こちら Error Exception 6 Serverless Meetup Fukuoka #1
つまり運⽤時に顕在化したバグ 7 Serverless Meetup Fukuoka #1
運⽤時のエラーの捕捉 例えば捕捉しない … ユーザやクライアントからの連絡ドリブン 「◯◯が動きません」
サーバ内のログで定期的に確認する app/tmp/logs / syslog / error_log アプリケーションでキャッチして通知する encount (CakePHP) / LERN (Laravel) エラートラッキングサービスで集約する Airbrake.io / Rollbar / Bugsnag 8 Serverless Meetup Fukuoka #1
エラーをアプリケーションから 直接メールで受け取るツラみ 連続したエラーでメールボックスの容量を圧迫 運⽤時の⼤量アクセスで同じエラーが⼤量通知 会社のメールサーバを圧迫、そして受信がで きなくなる
会社のメールサーバでエラー通知を受け取る の禁⽌ どのエラーに対応した/解決したのかがわから ない メールみない そして迷惑メールへ... 9 Serverless Meetup Fukuoka #1
エラートラッキングサービス(SaaS) Airbrake.io / Rollbar / Bugsnag / etc...
同じエラーをまとめてくれる 通知先を設定できる 通知頻度も設定できる エラーの解決を管理できる 過去のエラー詳細を確認できる etc... 選択できるのならばすぐにでも選択すべき 10 Serverless Meetup Fukuoka #1
そう、選択できるのならば 11 Serverless Meetup Fukuoka #1
まだSaaSを選択できていない理由 費⽤対効果の課題 受託開発の特性上、年間に発⽣するプロジェク トが3桁以上 プロジェクト単位課⾦のサービスは選択しに くい(費⽤対効果を計測できていない)
エラー数課⾦でも厳しい可能性がある データストア先の課題 エラー詳細の保存先として外部サービスを選択 できない場合がある 会社全体での導⼊を考えた場合、できるだけ 例外があるような状況にはしたくない 12 Serverless Meetup Fukuoka #1
とはいえ、エラーメール通知は破綻 13 Serverless Meetup Fukuoka #1
14 Serverless Meetup Fukuoka #1
faultline Error tracking tool on AWS managed services.
AWSのマネージドサービスのみで構築するオープンソ ースのエラートラッキングツール https://github.com/faultline コンセプト 1. Simple deploy 2. Manageless 3. POST (errors) with config 4. Between "Only mail notify" and "Error tracking services" 15 Serverless Meetup Fukuoka #1
機能 プロジェクト単位でエラーを集約管理 エラーの時系列集計/グラフ(faultline-webui) エラーの詳細記録 エラーの通知(Slack, GitHub
Issue, GitLab Issue) エラーの集約通知 “30イベント以上発⽣したら通知” / ”5回に1回通知” 16 Serverless Meetup Fukuoka #1
Fusicにおけるfaultlineの活⽤ 17 Serverless Meetup Fukuoka #1
11 Projects 3 Languages 62.4k Errors 1.26GB Raw logs 18
Serverless Meetup Fukuoka #1
19 Serverless Meetup Fukuoka #1 8< Months
1 Down 0 Recovery 20 Serverless Meetup Fukuoka #1 ※DynamoDBのCapacityに引っかかった
※もともと⾃分で復旧すべきサーバがない
AWSマネージドサービスのみで構築 (マネージドサービス: AWSがサーバが管理) 21 Serverless Meetup Fukuoka #1
サーバーレスアーキテクチャ 22 Serverless Meetup Fukuoka #1
Manageless OSSでありながら SaaSに近い感覚で運⽤できている (※注意: 決して運⽤ゼロにはなりませんよ!!) 23 Serverless Meetup Fukuoka #1
24 Serverless Meetup Fukuoka #1 AWS Lambda Amazon S3 Amazon
DynamoDB AWS KMS Amazon API Gateway AWS CloudFormation IAM AWS mageged services used by
25 Serverless Meetup Fukuoka #1 AWS Lambda Amazon S3 Amazon
DynamoDB AWS KMS Amazon API Gateway AWS CloudFormation IAM $0.1 /month $0.03 /month $0 /month $0 /month $0.5 /month $0 /month $1 /month AWS mageged services used by
費⽤⾯も解決 26 Serverless Meetup Fukuoka #1
インストール 27 Serverless Meetup Fukuoka #1
faultlineのインストール 28 Serverless Meetup Fukuoka #1 $ git clone https://github.com/faultline/faultline.git
$ cd faultline/ $ npm install $ cp config.default.yml config.yml $ [Edit config.yml] $ AWS_PROFILE=XXXXXX npm run deploy by
Simple deploy 29 Serverless Meetup Fukuoka #1
faultlineを導⼊したことによる効果 30 Serverless Meetup Fukuoka #1
Slack 31 Serverless Meetup Fukuoka #1
GitHub Issue 32 Serverless Meetup Fukuoka #1
“$ is not defined” 33 Serverless Meetup Fukuoka #1
柔軟なエラー通知と詳細な確認を得た エラー捕捉と同時に(かつ頻度を決めて)Slack通知を 受け取れるので素早い対応がしやすくなった ⾃動でGitHub IssueをOpenしたりReopenしたりする ことでIssueを元にエラーの管理ができるようになった PHPだけでなくJavaScriptのエラーもカジュアルに捕捉
できるようになったことで品質の向上をするきっかけ を得た 同じエラーの時系列グラフや各詳細を確認することで エラーの原因にたどりつきやすくなった (faultline-webui) 34 Serverless Meetup Fukuoka #1
これはSaaSを導⼊したような効果では? 35 Serverless Meetup Fukuoka #1
Between "Only mail notify" and "Error tracking services" メール通知 <
faultline < SaaS 36 Serverless Meetup Fukuoka #1
1 Down 0 Recovery 37 Serverless Meetup Fukuoka #1 ※DynamoDBのCapacityに引っかかった
※もともと⾃分で復旧すべきサーバがない おしい
Not SaaS, but “SaaS like” 38 Serverless Meetup Fukuoka #1
では、サーバーレスアーキテクチャな faultlineはどんな実装なのか? 39 Serverless Meetup Fukuoka #1
faultlineのアーキテクチャ 40 Serverless Meetup Fukuoka #1
Only 3 storage 41 Serverless Meetup Fukuoka #1
Only 2,248 LOC 42 Serverless Meetup Fukuoka #1 ※Lines of
Code
Only 2 contributors 43 Serverless Meetup Fukuoka #1
たったこれだけのコードベースで ⼤きな効果を得られている 44 Serverless Meetup Fukuoka #1
faultline以外の例 45 Serverless Meetup Fukuoka #1
hubedit https://hubedit.com GitHubのプライベートリポジトリをメモツール にするサービス GitHubを使っているので正確にはAWSフルマネージ ドではない 46
Serverless Meetup Fukuoka #1
hubedit アーキテクチャ 47 Serverless Meetup Fukuoka #1
Only 1,717 LOC 48 Serverless Meetup Fukuoka #1 ※Lines of
Code
サーバーレスアーキテクチャの可能性 49 Serverless Meetup Fukuoka #1
サーバーレスアーキテクチャの可能性 なぜ可能だったのか? AWSマネージドサービス (PaaS) を活⽤したからにほかならない ちょっと前のPaaSと同じ世界なのか?
個⼈的にはIaaSとPaaSの間のような感覚 AWS Lambdaの登場が⼤きかったかも この次はPaaSを ”組み合わせて作る” 世界がくるのかも e.g. Event Gateway / Azure Event Grid まだベンダーロックインはあるが、これからあるいは..? 実装において今までの開発と⽐べて変化はあったか? ステートレスな実装を環境から求められる(FaaS) その結果、管理がほぼ不要になる(そして良い実装へ) faultlineの最後のコンセプト “POST with config” 50 Serverless Meetup Fukuoka #1
さらに 51 Serverless Meetup Fukuoka #1
さらに“SaaS like”をSaaSに近づけるアイデア DynamoDB AutoScaling <-New! faultlineで唯⼀発⽣した障害はDynamoDBのCapacity faultlineを構成しているAWSリソース⾃体を別
のサーバーレスアーキテクチャで監視 あとで確認するために「faultline関連のCloudWatchメ トリクスをfaultlineで取得できるようにする」のもサー バーレスアーキテクチャだからこそ突⾶ではない 別リージョンにもfaultlineを構築してRoute53 でDNSフェイルオーバー どこまでやるか、だけ 52 Serverless Meetup Fukuoka #1
まとめ faultlineというエラートラッキングツールの開 発/運⽤から、サーバーレスアーキテクチャの可 能性について考えてみた ⼩さいコードベースでもSaaSのような運⽤ができるも のが完結するものが作れる可能性 サーバーレスアーキテクチャという⽂脈で、プロダクシ
ョンベースの事例はよく聞くが、OSSなツールの運⽤事 例はまだ(⽇本では)少ないはず faultlineはOSS。コードを⾒ることができるので是⾮ サーバーレスアーキテクチャ周辺の整備はまだ まだはじまったばかりという印象 53 Serverless Meetup Fukuoka #1
Thank you! Fusicはテクノロジーが 好きなエンジニアを募集しています https://fusic.github.io 54
Serverless Meetup Fukuoka #1 55