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
Amazon CloudWatchでSLOを監視してみた
Search
iwamot
July 06, 2024
Technology
0
200
Amazon CloudWatchでSLOを監視してみた
Cloud Operator Days Tokyo 2024
https://cloudopsdays.com/
iwamot
July 06, 2024
Tweet
Share
More Decks by iwamot
See All by iwamot
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
18
17k
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
980
始めないともったいない!SLO運用で得られる3つのメリット
iwamot
1
110
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
7.3k
効率的な技術組織が作れる!書籍『チームトポロジー』要点まとめ
iwamot
2
290
AWS⼊社という選択肢、⾒えていますか
iwamot
2
1.3k
40代後半で開発エンジニアからクラウドインフラエンジニアにキャリアチェンジし、生き残れる自信がようやく持てた話
iwamot
9
9.2k
DockerのマルチプラットフォームイメージをGitHub Actionsでビルドして公開する際に、参考にしたドキュメントと便利だったツール
iwamot
4
450
RAGもファインチューニングも使わない 素朴なAIチャットボットを職場に導入した結果
iwamot
2
450
Other Decks in Technology
See All in Technology
モジュラーモノリスでスケーラブルなシステムを作る - BASE のリアーキテクチャのいま
panda_program
7
1.8k
20250326_管理ツールの権限管理で改善したこと
sasata299
0
150
Explainable Software Engineering in the Public Sector
avandeursen
0
290
セマンティックレイヤー入門
ikkimiyazaki
7
2.4k
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
970
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 / phper-kaigi-2025-ryu
carta_engineering
0
680
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
9
3.7k
AWS CDK コントリビュート はじめの一歩
yendoooo
1
110
DIってなんだか難しい? 依存という概念を「使う・使われる」 という言葉で整理しよう
akinoriakatsuka
1
750
EM初心者として半年間マネジャーをやってみて分かったこと
sansantech
PRO
0
200
Agile TPIを活用した品質改善事例
tomasagi
0
120
View Transition API
shirakaba
1
850
Featured
See All Featured
Building Your Own Lightsaber
phodgson
104
6.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Producing Creativity
orderedlist
PRO
344
40k
Raft: Consensus for Rubyists
vanstee
137
6.8k
KATA
mclloyd
29
14k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Bash Introduction
62gerente
611
210k
Navigating Team Friction
lara
183
15k
Testing 201, or: Great Expectations
jmmastey
42
7.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
Amazon CloudWatchでSLOを監視してみた Cloud Operator Days Tokyo 2024 https://cloudopsdays.com/ ENECHANGE株式会社 VPoT
岩本隆史
岩本 隆史 / Takashi Iwamoto 現職:ENECHANGE 全社的な技術施策の提案~実行 前職:アマゾンウェブサービスジャパン テクニカルサポート AWS
Community Builder (2024~) カテゴリ:Cloud Operations
Amazon CloudWatchでSLOを監視してみた 1. 複数ウィンドウ、複数バーンレートの監視が大前提 2. ENECHANGEではCloudWatchで監視中 3. 「複合アラーム」と「カスタムメトリクス」の活用が肝 4. コストは月20ドルほど
Amazon CloudWatchでSLOを監視してみた 1. 複数ウィンドウ、複数バーンレートの監視が大前提 2. ENECHANGEではCloudWatchで監視中 3. 「複合アラーム」と「カスタムメトリクス」の活用が肝 4. コストは月20ドルほど
信頼性はアプリケーションの最重要機能 信頼性は、アプリケーションの最も重要な機能です。アプリケーションの信頼性 が低いと、最終的にはユーザーが離れてしまい、他の機能はすべて意味をなさな くなります。 https://cloud.google.com/architecture/framework/reliability?hl=ja
SLOの定義が第一歩 信頼性を実現するために、以下のベスト プラクティスに従ってください。 サービスレベル目標(SLO)とエラー バジェットを使用して、信頼性の目標 を定義します。 インフラストラクチャとアプリケーションにオブザーバビリティを組み込み ます。 拡張性と高可用性を考慮して設計します。 柔軟で自動化されたデプロイ機能を構築します。
効率的なアラートを作成します。 インシデント管理のための共同プロセスを構築します。
SLOの定義が第一歩 SLO の例: 14 日間にわたって測定されたすべての有効なリクエストの 95% で、サ ービスのレスポンスが 400 ミリ秒(ms)より早い。
https://cloud.google.com/architecture/framework/reliability/slo-components?hl=ja
運用は『ワークブック』がデファクトスタンダード https://www.oreilly.co.jp/books/9784873119137/
複数ウィンドウ、複数バーンレートの監視が最適 私達の経験では、複数のバーンレートに基づくアラートはSLOベースのアラート を実装する上で強力な方法であることが分かりました。 『サイトリライアビリティワークブック』「5章 SLOに基づくアラート」
複数ウィンドウ、複数バーンレートの監視が最適 expr: ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (14.4*0.001) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (14.4*0.001)
) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (6*0.001) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (6*0.001) ) severity: page https://sre.google/workbook/alerting-on-slos/
複数ウィンドウ、複数バーンレートの監視が最適 expr: ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (14.4*0.001) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (14.4*0.001)
) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (6*0.001) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (6*0.001) ) severity: page 14.4 = 30日間のエラーバジェットの2%を1時間で消費する速度 6 = 30日間のエラーバジェットの5%を6時間で消費する速度 0.001 = SLOが「99.9%」の場合のエラーバジェット
Amazon CloudWatchでSLOを監視してみた 1. 複数ウィンドウ、複数バーンレートの監視が大前提 2. ENECHANGEではCloudWatchで監視中 3. 「複合アラーム」と「カスタムメトリクス」の活用が肝 4. コストは月20ドルほど
CloudWatchアラームでSlackに通知
CloudWatchダッシュボードを事業部に提供
Terraformモジュール化により短時間で導入可能 module "slomon" { source = "
[email protected]
:enechange/terraform-modules.git//slomon-for-alb?ref=v0.53.0" environment_name = "prod-enechange"
alb_access_logs_s3_url = local.alb_access_logs_s3_url sns_topic_names_for_paging = ["cto-incident-enechange"] sns_topic_names_for_ticketing = ["cto-alert-enechange"] critical_user_journeys = { input1_submit = { http_method = "POST" path = "/try/input1_submit" dashboard_order = 1 slo = { availability_target = 95.0 latency_p95_threshold = 4.0 latency_p50_threshold = 3.0 } } } }
過去の実績を参考にSLOを定義 slo = { availability_target = 95.0 latency_p95_threshold = 4.0
latency_p50_threshold = 3.0 }
Amazon CloudWatchでSLOを監視してみた 1. 複数ウィンドウ、複数バーンレートの監視が大前提 2. ENECHANGEではCloudWatchで監視中 3. 「複合アラーム」と「カスタムメトリクス」の活用が肝 4. コストは月20ドルほど
CloudWatch複合アラームが2020年3月にリリース https://aws.amazon.com/jp/about-aws/whats-new/2020/03/amazon-cloudwatch-now- allows-you-to-combine-multiple-alarms/
複合アラームで最適な監視が可能 expr: ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (14.4*0.001) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (14.4*0.001)
) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (6*0.001) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (6*0.001) ) severity: page
複合アラームで最適な監視が可能 ( ALARM("prod-enechange-slomon-input1_submit-availability-2pct-1h") AND ALARM("prod-enechange-slomon-input1_submit-availability-2pct-5m") ) OR ( ALARM("prod-enechange-slomon-input1_submit-availability-5pct-6h") AND
ALARM("prod-enechange-slomon-input1_submit-availability-5pct-30m") )
各アラームの条件はシンプル ALARM("prod-enechange-slomon-input1_submit-availability-2pct-1h") 1時間のエラー率 > SLO期間のエラーバジェットの2%を1時間で消費するエラー率
ウィンドウごとの集計値をカスタムメトリクスに発行 ウィンドウ メトリクス名 値 1h TotalCount 9999 1h BadCount 99
5m TotalCount 999 5m BadCount 9 ... ... ...
Amazon CloudWatchでSLOを監視してみた 1. 複数ウィンドウ、複数バーンレートの監視が大前提 2. ENECHANGEではCloudWatchで監視中 3. 「複合アラーム」と「カスタムメトリクス」の活用が肝 4. コストは月20ドルほど
CloudWatchの固定料金は月15.6ドル 課金対象 件数 コスト (ドル/月) ダッシュボード 1 3.0 メトリクス 28
8.4 アラーム 17 1.7 複合アラーム 5 2.5
ウィンドウごとの集計や、Slack通知に月数ドル 集計:EventBridge, Lambda, Athena, RDS, CloudWatch (PutMetricData) 通知:SNS
まとめ
ENECHANGEでは、Amazon CloudWatchを活用し、 低コストなSLO監視を実現しました このような事例を下記のチャンネルで発信しています ENECHANGE開発者ブログ:https://tech.enechange.co.jp/ 岩本のX:https://x.com/iwamot