Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
520
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
AI との良い付き合い方を僕らは誰も知らない
asei
0
250
特別捜査官等研修会
nomizone
0
560
さくらのクラウド開発ふりかえり2025
kazeburo
2
1.1k
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
3.8k
Claude Codeを使った情報整理術
knishioka
6
3.5k
Amazon Quick Suite で始める手軽な AI エージェント
shimy
1
1.8k
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
250
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
910
"人"が頑張るAI駆動開発
yokomachi
1
140
オープンソースKeycloakのMCP認可サーバの仕様の対応状況 / 20251219 OpenID BizDay #18 LT Keycloak
oidfj
0
170
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
250
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
260
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
69
The Invisible Side of Design
smashingmag
302
51k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
Navigating Team Friction
lara
191
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
17
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
230
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Bash Introduction
62gerente
615
210k
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