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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ken’ichiro Oyama
August 25, 2017
Technology
2.1k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバーレスなエラートラッキングツール faultline と 「SaaSライクな運用」の可能性 / Serverless Meetup Fukuoka #1
Serverless Meetup Fukuoka #1
Ken’ichiro Oyama
August 25, 2017
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
5.4k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
930
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
760
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
160
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.3k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
11k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
450
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
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
190
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
7
4k
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2k
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
1
130
EventBridge Connection
_kensh
4
580
Sony_KMP_Journey_KotlinConf2026
sony
2
210
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
220
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
210
Building applications in the Gemini API family.
line_developers_tw
PRO
0
1.7k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
AI Testing Talks: Challenges of Applying AI in Software Testing: From Hype to Practical Use
exactpro
PRO
1
130
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
160
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
How to train your dragon (web standard)
notwaldorf
97
6.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
YesSQL, Process and Tooling at Scale
rocio
174
15k
Abbi's Birthday
coloredviolet
2
7.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to Talk to Developers About Accessibility
jct
2
220
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
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