Amazon CloudWatchによるSLOエラーバジェットのバーンレート監視
ENECHANGE株式会社 / iwamot
テックリード / VPoT/VPoP / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
11名〜50名 | 2023年4月 | B to B B to C |
ツールの利用規模 | 11名〜50名 |
---|---|
ツールの利用開始時期 | 2023年4月 |
事業形態 | B to B B to C |
アーキテクチャ
アーキテクチャの意図・工夫
- Lambda関数のトリガーは、S3へのファイル保存ではなくEventBridgeスケジューラにしました。トラフィックが多い場合、複数のログファイルがS3に保存されるためです
- Athenaの集計コストを抑えるため、RDSも併用しました。Athenaでは5分単位の集計のみ実行し、その集計結果をCloudWatchだけでなくRDSにも保存しています
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
以前は、CPUやメモリの使用率といったリソースのメトリクスを直接的に監視しており、サービスが問題なく提供できていてもアラートが飛ぶ状況でした。いわゆる「オオカミ少年アラート」の多い状況です。
どのような状態を目指していたか
提供中の主要サービスにSLOが策定され、エラーバジェットのバーンレートが監視されている状態を目指しました。
比較検討したサービス
- New Relic
- Datadog
比較した軸
- Application Load Balancerのアクセスログをもとに、私の理想とする条件式でバーンレートが計算・監視できること
- 低コストで運用できること
選定理由
導入検討時点で、上記2点を満たしていたのがAmazon CloudWatchのみでした。
導入の成果
改善したかった課題はどれくらい解決されたか
主要サービスについて、エラーバジェットのバーンレート監視が開始できました。
どのような成果が得られたか
オオカミ少年アラートが削減できた一方で、可用性やレイテンシの悪化にすぐ気づけるようになりました。また、それらの指標に対する開発チームの意識が高まりました。
導入時の苦労・悩み
CloudWatchはSLO監視に特化したツールではないため、集計処理やアラート処理を作り込む必要がありました。 たとえば、5分ごとに1時間の合計値を集計するといったローリングウィンドウ機能は、現在のCloudWatchメトリクスに備わっていません。そのため、AthenaやRDSで集計した値を、タイムウィンドウ(5分・30分・1時間・6時間・3日・28日)ごとのカスタムメトリクスに発行するよう実装しました。
導入に向けた社内への説明
上長・チームへの説明
上長との1on1で課題感を伝え、New RelicやDatadogのトライアルを進めさせてもらいました。しかし、私の理想とする条件式での監視ができなかったため、CloudWatchで自作する方針に移行しました。コストの試算結果も自作のほうが安く、すぐに同意してもらえました。
活用方法
『サイトリライアビリティワークブック』の推奨する条件式をCloudWatchアラームで実装し、エラーバジェットの消費が速い場合はSlackに通知しています。また、実際のサービスレベルをCloudWatchダッシュボードで可視化し、開発チームに提供しています。
よく使う機能
- カスタムメトリクス
- メトリクスアラーム
- 複合アラーム
- ダッシュボード
ツールの良い点
- 低コスト
- 柔軟な監視が実装可能
ツールの課題点
- 作り込みが必要
- サービスレベル低下の原因調査には別のソリューションが必要
ツールを検討されている方へ
今回のアーキテクチャのように自作する場合、実装コストはかかりますが、運用コストは抑えられます。実装もそれほど難しくないので、検討の際に選択肢に含めていただくことをお勧めします。
今後の展望
ローリングウィンドウ機能がCloudWatchに実装されれば作り込みが減らせるので、AWSに機能追加の要望を出そうと考えています。
一方で、New RelicやDatadogでも柔軟な実装が可能になれば、それらのツールに移行することもありえます。CloudWatchに比べ、サービスレベル低下の原因調査がしやすくなるためです。
ENECHANGE株式会社 / iwamot
テックリード / VPoT/VPoP / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
ENECHANGE株式会社VPoT兼CTO室マネージャー。AWS Community Builder (Cloud Operations)。CODT2024/CNDW2024実行委員。LLM Slackbot「Collmbo」メンテナ。
よく見られているレビュー
ENECHANGE株式会社 / iwamot
テックリード / VPoT/VPoP / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
ENECHANGE株式会社VPoT兼CT...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法