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
AWS SNSでエラー通知させ、SLOについて考える
Search
melanmeg
July 08, 2024
Programming
1
120
AWS SNSでエラー通知させ、SLOについて考える
以下、登壇資料。
JAWS-UG SRE支部 #9 初心者LT大会
https://jawsug-sre.connpass.com/event/321380/
melanmeg
July 08, 2024
Tweet
Share
More Decks by melanmeg
See All by melanmeg
今までアウトプットしてこなかった私が、今年からアウトプットを始めてわかったこと
melanmeg
3
350
コマンド一発で、本格的なおうちKubernetesを構築する
melanmeg
3
280
Keycloakの歴史とSSO
melanmeg
0
89
Other Decks in Programming
See All in Programming
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
170
Chart.jsで長い項目を表示するときのハマりどころ
yumechi
0
160
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
300
WebRTC と Rust と8K 60fps
tnoho
0
290
Atomics APIを知る / Understanding Atomics API
ssssota
1
220
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
190
イベントストーミングのはじめかた / Getting Started with Event Storming
nrslib
1
750
FlutterKaigi 2025 システム裏側
yumnumm
0
1.2k
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
190
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
2k
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
12
7.3k
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
1
110
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
970
GraphQLとの向き合い方2022年版
quramy
49
14k
Why Our Code Smells
bkeepers
PRO
340
57k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
195
66k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
A Modern Web Designer's Workflow
chriscoyier
697
190k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
Transcript
AWS SNSでエラー通知させ、 SLOについて考える 2024/7/8 JAWS-UG SRE支部#9 初心者LT大会 @melanmeg
自己紹介 株式会社スカイウイル インフラエンジニア 3年目 山本 直矢 @melanmeg 趣味:ホロライブやツイキャスを見ること 業務:現在は、k6やKeycloakを触っている
アジェンダ • エラー通知の導入方法 • メトリクスフィルターとサブスクリプションフィルター • メトリクスフィルター構成 • サブスクリプションフィルター構成 •
SLOについて考える
{ "logs": { "logs_collected": { "files": { "collect_list": [ {
"file_path": "/var/log/syslog", "log_group_name": "/var/log/syslog", "log_stream_name": "{instance_id}", "timestamp_format": "%b %d %H:%M:%S" } ] } } } } ログ出力設定ファイル エラー通知の導入方法 1. 適当なVMを用意 2. ログドライバーをインストール 3. ログ出力設定 4. CloudWatch側でログを検知し、 メール通知する AWSでログの中からエラーログだけを 通知する監視基盤がほしい あるお客さんの要望
メトリクスフィルターとサブスクリプションフィルター メリット デメリット メトリクスフィルター アラームを組み合わせて メール通知可能 メール内容のカスタマイズができない サブスクリプション フィルター ログ内容をメールに含めることが可能
直接メール通知することができず、 Lambdaを経由するなどが必要 一旦、メトリクスフィルターを検証 今回「ERROR」という文字を含む場合アラート発生させる
• 長くてよく分からない… • ログ内容も欲しい… メトリクスフィルター構成 構成 メール内容
サブスクリプションフィルター構成 • パッと見で分かりやすい • ログ内容も分かる 構成 メール内容
Lambdaの整形コード ※EventBridgeによる死活監視も同様 Pythonで実装
SLOについて考える 引用:https://www.oreilly.co.jp/books/9784814400348/ エラーバジェット SLO SLI SLIとは、たとえばWebページを十分な速さで読み込めるかといった指標 1日に訪問者数が60,000人いて、59,982人が2秒以内にページを読み込んだことを計測できたとする ページ読み込みの99.97%が「良い速さ」であればユーザーは満足すると推測 59,982 60,000
= 99.97% SLO SLOとは? 信頼性スタック
改善案 現状エラーログはすべてメール通知 ⇒エラー通知が多すぎて、管理者が状況を把握しずらいと想定 ⇒特定の条件でアラートが発生したらLambda経由でメール通知する ※2023/12/22 CloudWatch AlermがLambdaをアラーム状態変更アクションとしてサポートされたよう 引用:https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-cloudwatch-alarms-lambda-change-action/ 定義を考えてみる •
SLI:リクエストが十分なだけ成功しているかどうか 仮定として、以下条件までを許容するとする。 期間:1ヶ月 合計リクエスト数:1,000,000 エラーログの総数:500 • SLO:99.95% • エラーバジェット:エラーログが500個まで 1ヶ月内にエラーログが 500個を超えたらアラートを発生
おわり