Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバーレスなエラートラッキングツール faultline と 「SaaSライクな運用」の可能...
Search
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
2.1k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
510
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
480
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
110
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
10
5.9k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
9.9k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
380
Cleanup handling in Go / Go Conference 2024
k1low
7
4k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Other Decks in Technology
See All in Technology
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
480
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
270
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
3.6k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
190
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
260
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
150
事業の財務責任に向き合うリクルートデータプラットフォームのFinOps
recruitengineers
PRO
2
190
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.2k
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
200
さくらのクラウド開発ふりかえり2025
kazeburo
2
850
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
170
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Utilizing Notion as your number one productivity tool
mfonobong
2
190
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
68
The Mindset for Success: Future Career Progression
greggifford
PRO
0
190
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
92
The Invisible Side of Design
smashingmag
302
51k
A Tale of Four Properties
chriscoyier
162
23k
sira's awesome portfolio website redesign presentation
elsirapls
0
89
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
190
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
100
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