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
PRO
July 06, 2024
Technology
0
320
Amazon CloudWatchでSLOを監視してみた
Cloud Operator Days Tokyo 2024
https://cloudopsdays.com/
iwamot
PRO
July 06, 2024
Tweet
Share
More Decks by iwamot
See All by iwamot
復号できなくなると怖いので、AWS KMSキーの削除を「面倒」にしてみた
iwamot
PRO
3
63
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
13
9.3k
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
1k
名単体テスト 禁断の傀儡(モック)
iwamot
PRO
1
500
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
2
490
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
PRO
22
21k
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
PRO
3
1.3k
始めないともったいない!SLO運用で得られる3つのメリット
iwamot
PRO
1
160
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
PRO
3
8.2k
Other Decks in Technology
See All in Technology
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
34
16k
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
110
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
200
Kiro と Q Dev で 同じゲームを作らせてみた
r3_yamauchi
PRO
1
120
生成AIによるデータサイエンスの変革
taka_aki
0
3.1k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
20k
[OCI Technical Deep Dive] OracleのAI戦略(2025年8月5日開催)
oracle4engineer
PRO
1
250
生成AI活用のROI、どう測る? DMM.com 開発責任者から学ぶ「AI効果検証のノウハウ」 / ROI of AI
i35_267
4
130
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
7
630
JAWS AI/ML #30 AI コーディング IDE "Kiro" を触ってみよう
inariku
3
400
PFEM Online Feature Flag @ newmo
shinyaishitobi
1
140
Amazon Q と『音楽』-ゲーム音楽もAmazonQで作成してみた感想-
senseofunity129
0
170
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
GraphQLとの向き合い方2022年版
quramy
49
14k
Typedesign – Prime Four
hannesfritz
42
2.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
How to Ace a Technical Interview
jacobian
279
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Producing Creativity
orderedlist
PRO
347
40k
A Tale of Four Properties
chriscoyier
160
23k
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