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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
iwamot
PRO
July 06, 2024
Technology
0
410
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
AIエージェント・マイクロサービス時代。AWSでの手軽な構築法を考えて試してみた
iwamot
PRO
1
50
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
9
1.5k
Developer Certificate of Origin、よさそう
iwamot
PRO
0
43
復号できなくなると怖いので、AWS KMSキーの削除を「面倒」にしてみた CODT 2025 クロージングイベント版
iwamot
PRO
1
130
復号できなくなると怖いので、AWS KMSキーの削除を「面倒」にしてみた
iwamot
PRO
3
100
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
14
11k
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
1.2k
名単体テスト 禁断の傀儡(モック)
iwamot
PRO
1
610
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
2
610
Other Decks in Technology
See All in Technology
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
350
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
390
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
500
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
430
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Red Hat OpenStack Services on OpenShift
tamemiya
0
130
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
500
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
BBQ
matthewcrist
89
10k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
My Coaching Mixtape
mlcsv
0
49
Faster Mobile Websites
deanohume
310
31k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
57
4 Signs Your Business is Dying
shpigford
187
22k
[SF Ruby Conf 2025] Rails X
palkan
1
760
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
エンジニアに許された特別な時間の終わり
watany
106
230k
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