ML ベースの運用異常検知 - Amazon DevOps Guru で障害を予兆段階で発見する
Amazon DevOps Guru を使った ML ベースの運用異常検知を解説。CloudWatch メトリクスの自動分析、異常の予兆検知、推奨アクション、CloudFormation スタック単位の監視を紹介します。
運用監視の課題と DevOps Guru の役割
クラウド環境の運用監視では、CloudWatch メトリクス、アラーム、ダッシュボードを設定して異常を検知するのが一般的です。しかし、監視対象のメトリクスが数百〜数千に及ぶ大規模環境では、すべてのメトリクスに適切な閾値を設定し維持することが困難です。また、個別メトリクスの閾値では検知できない複合的な異常 (CPU は正常だがレイテンシが徐々に増加し、同時にエラー率も微増している、など) も存在します。Amazon DevOps Guru は ML モデルで CloudWatch メトリクス、CloudTrail イベント、Config の設定変更を自動分析し、運用上の異常を予兆段階で検知するサービスです。個別メトリクスの閾値設定は不要で、DevOps Guru が過去のパターンを学習して動的にベースラインを構築します。複数メトリクスの相関分析により、単一メトリクスでは見逃す複合的な異常も検知できます。
監視対象の設定と異常検知
DevOps Guru の監視対象は 2 つの方法で指定します。CloudFormation スタック単位で指定する方法では、特定のスタック (アプリケーション) に含まれるリソースのみを監視します。アプリケーション境界に沿った監視が可能で、異常の影響範囲を特定しやすくなります。AWS アカウント全体を監視する方法では、アカウント内の全リソースを対象にします。DevOps Guru は対象リソースの CloudWatch メトリクスを自動的に収集・分析します。Lambda 関数であれば呼び出し回数、エラー率、実行時間、コールドスタート回数、DynamoDB であれば読み書きキャパシティ使用率、スロットリング回数、RDS であれば CPU 使用率、接続数、ディスク I/O など、サービス固有のメトリクスを自動的に監視します。異常が検知されると Insight (インサイト) として報告され、関連するメトリクスの異常、推定される根本原因、推奨アクションが提示されます。
根本原因分析と推奨アクション
DevOps Guru の Insight には、異常の根本原因の推定と具体的な推奨アクションが含まれます。たとえば、 Lambda 関数のエラー率が増加した場合、同時期に発生した CloudFormation のデプロイイベントや Config の設定変更と相関分析し、「直近のデプロイが原因の可能性がある」と推定します。 DynamoDB のスロットリングが検知された場合、「プロビジョンドキャパシティの増加」や「オンデマンドモードへの切り替え」を推奨します。 Insight は Reactive (既に影響が出ている異常) と Proactive (まだ影響は出ていないが予兆が見られる異常) の 2 種類に分類されます。 Proactive Insight は障害が発生する前に対処できるため、ダウンタイムの予防に直結します。 SNS 通知で Insight の発生を即座にアラートし、 EventBridge 統合で PagerDuty や Slack などの既存のインシデント管理ワークフローに組み込めます。 DevOps 自動化の運用ノウハウを深めるには、専門書籍 (Amazon)が役立ちます。
CloudWatch Anomaly Detection との使い分け
DevOps Guru と CloudWatch Anomaly Detection はどちらも ML ベースの異常検知ですが、スコープが異なります。CloudWatch Anomaly Detection は個別メトリクスに対して異常検知バンド (期待値の範囲) を設定し、バンドを逸脱した場合にアラームを発火します。メトリクスごとに設定が必要で、複数メトリクスの相関分析は行いません。DevOps Guru はアプリケーション全体を対象に、複数メトリクスの相関分析と根本原因推定まで自動的に行います。設定は監視対象の指定のみで、個別メトリクスの閾値設定は不要です。両者は併用可能で、重要な個別メトリクス (API のレイテンシ、エラー率など) には CloudWatch Anomaly Detection で明示的なアラームを設定し、アプリケーション全体の包括的な監視には DevOps Guru を使用するアプローチが効果的です。料金はリソース分析 1 時間あたり 0.0028 USD で、100 リソースを監視する場合は月額約 20 USD です。
DevOps Guru の料金
DevOps Guru の料金は分析対象の AWS リソース数で課金されます。CloudFormation スタックベースの分析は 1 リソースあたり月額約 0.0028 ドル、タグベースの分析は約 0.0042 ドルです。100 リソースの環境で月額約 0.28〜0.42 ドルと低コストです。Proactive Insights (予兆検知) と Reactive Insights (障害分析) の両方が含まれます。分析対象を本番環境のリソースに限定し、開発・テスト環境は除外することでコストを最適化します。
まとめ - DevOps Guru の活用指針
Amazon DevOps Guru は、ML ベースの自動分析で運用上の異常を予兆段階で検知するサービスです。CloudWatch メトリクスの自動分析、複数メトリクスの相関分析、根本原因の推定、推奨アクションの提示が主な強みです。CloudFormation スタック単位の監視でアプリケーション境界に沿った異常検知が可能で、個別メトリクスの閾値設定が不要なため導入が容易です。本番環境のサーバーレスアプリケーションやマイクロサービスの監視に特に効果を発揮します。