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
25
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
RAGもファインチューニングも使わない 素朴なAIチャットボットを職場に導入した結果
iwamot
0
60
Amazon CloudWatchでSLOを監視してみた CODT 2024 クロージングイベント版
iwamot
0
58
Cost-Effective SLO Error Budget Monitoring with Athena and CloudWatch
iwamot
0
660
AWS Protonの概要
iwamot
0
94
ENECHANGEが実現した管理者の工数負担を削減しながらもAWSセキュリティを強化した方法とは
iwamot
0
130
Web APIのAWS Lambda移行で工夫したこと
iwamot
4
3.2k
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
490
サービスクォータ、ちゃんと監視してますか?
iwamot
0
1.1k
AWS Well-Architected Toolで信頼性をレビューした結果
iwamot
0
490
Other Decks in Technology
See All in Technology
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
120
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
400
サプライチェーン攻撃に備える
ryunen344
0
130
RAGHack: Building RAG apps in Python
pamelafox
0
160
ビジネスとエンジニアリングを繋ぐプロダクトを中心とした組織づくりの実践
sansantech
PRO
1
150
スーパーマリオRPGのリメイク版の変更点からみるUX
nishiharatsubasa
1
320
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
180
contenteditableと向き合う
kikuchikakeru
2
260
Oracle Database Backup Service:サービス概要のご紹介
oracle4engineer
PRO
0
4.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
4
130
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
240
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
2k
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
Adopting Sorbet at Scale
ufuk
73
8.9k
Clear Off the Table
cherdarchuk
91
320k
Visualization
eitanlees
142
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
The Brand Is Dead. Long Live the Brand.
mthomps
53
37k
The Cult of Friendly URLs
andyhume
76
5.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.2k
YesSQL, Process and Tooling at Scale
rocio
167
14k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
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