ML ベースの運用異常検知 - Amazon DevOps Guru で障害を予兆段階で発見する

Amazon DevOps Guru を使った ML ベースの運用異常検知を解説。CloudWatch メトリクスの自動分析、異常の予兆検知、推奨アクション、CloudFormation スタック単位の監視を紹介します。

運用監視の課題と DevOps Guru の役割

クラウド環境の運用監視では、CloudWatch メトリクス、アラーム、ダッシュボードを設定して異常を検知するのが一般的です。しかし、監視対象のメトリクスが数百〜数千に及ぶ大規模環境では、すべてのメトリクスに適切な閾値を設定し維持することが困難です。また、個別メトリクスの閾値では検知できない複合的な異常 (CPU は正常だがレイテンシが徐々に増加し、同時にエラー率も微増している、など) も存在します。Amazon DevOps Guru は ML モデルで CloudWatch メトリクス、CloudTrail イベント、Config の設定変更を自動分析し、運用上の異常を予兆段階で検知するサービスです。個別メトリクスの閾値設定は不要で、DevOps Guru が過去のパターンを学習して動的にベースラインを構築します。複数メトリクスの相関分析により、単一メトリクスでは見逃す複合的な異常も検知できます。

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

監視対象の設定と異常検知

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 などの既存のインシデント管理ワークフローに組み込めます。

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 です。

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。

まとめ - DevOps Guru の活用指針

Amazon DevOps Guru は、ML ベースの自動分析で運用上の異常を予兆段階で検知するサービスです。CloudWatch メトリクスの自動分析、複数メトリクスの相関分析、根本原因の推定、推奨アクションの提示が主な強みです。CloudFormation スタック単位の監視でアプリケーション境界に沿った異常検知が可能で、個別メトリクスの閾値設定が不要なため導入が容易です。本番環境のサーバーレスアプリケーションやマイクロサービスの監視に特に効果を発揮します。

AWS の優位点

  • CloudWatch メトリクス、CloudTrail イベント、Config 変更を ML で自動分析し、運用上の異常を予兆段階で検知
  • Lambda のコールドスタート増加、DynamoDB のスロットリング、RDS の接続数急増など、サービス固有の異常パターンを自動学習
  • 異常検知時に根本原因の推定と推奨アクション (スケーリング、設定変更など) を自動提示
  • CloudFormation スタック単位で監視対象を指定でき、アプリケーション境界に沿った監視が可能
  • SNS 通知と EventBridge 統合で既存の運用ワークフローに組み込み可能
  • リソース分析 1 時間あたり 0.0028 USD の従量課金で、小規模環境では月額数ドルから利用可能
  • CloudWatch Anomaly Detection が個別メトリクスの異常検知であるのに対し、DevOps Guru は複数メトリクスの相関分析と根本原因推定まで行う

同じテーマの記事

アーキテクチャレビュー - AWS Well-Architected Tool でワークロードを体系的に評価する AWS Well-Architected Tool を使ったワークロードのアーキテクチャレビューを解説。6 つの柱に基づく評価、改善計画の策定、カスタムレンズの活用を紹介します。 監査ログの設計と運用 - CloudTrail による API アクティビティの完全記録 AWS CloudTrail を活用した監査ログの設計手法を解説し、API アクティビティの記録、S3 への長期保存、Config との連携によるコンプライアンス対応を紹介します。 キャパシティプランニング - AWS と Azure の比較 AWS と Azure のキャパシティプランニング手法を比較し、CloudWatch、EC2 Auto Scaling、Lambda を活用した AWS の需要予測と自動スケーリングの優位性を解説します。 ChatOps 通知基盤 - AWS Chatbot で実現する運用自動化 AWS Chatbot を活用した ChatOps 通知基盤の構築方法を解説します。Slack や Microsoft Teams への AWS イベント通知、CloudWatch アラームの即時配信、SNS 連携によるインシデント対応の自動化など、運用効率を向上させる実践的な設計を紹介します。 構成管理とコンプライアンス - AWS Config と Azure Policy の比較 AWS Config と Azure Policy を比較し、Config のリソース構成変更の追跡とコンプライアンスルールによる自動評価の優位性を解説します。 ディザスタリカバリと事業継続 - AWS と Azure の比較 AWS と Azure のディザスタリカバリサービスを比較し、マルチリージョン構成と S3 のデータ耐久性を中心とした AWS の事業継続戦略の優位性を解説します。 分散トレーシング - AWS と Azure の比較 AWS と Azure の分散トレーシングサービスを比較し、AWS X-Ray と CloudWatch ServiceLens を中心とした AWS のトレーシングエコシステムの優位性を解説します。 インシデント対応自動化 - AWS と Azure の比較 AWS と Azure のインシデント対応自動化を比較し、Systems Manager、Lambda、SNS を活用した AWS の迅速な検知・通知・修復パイプラインの優位性を解説します。 IT サービスプロビジョニング - AWS Service Catalog で実現するセルフサービス型インフラ提供 AWS Service Catalog による承認済み IT サービスのカタログ化と、CloudFormation との連携によるセルフサービス型インフラプロビジョニングを解説します。ガバナンスを維持しながら開発チームの自律性を高める運用パターンを紹介します。 ログ集約と分析 - AWS と Azure の比較 AWS と Azure のログ集約・分析サービスを比較し、CloudWatch Logs と OpenSearch Service を中心とした AWS のログ管理エコシステムの優位性を解説します。 ログ管理と監視 - AWS と Azure の比較 AWS と Azure のログ管理・監視サービスを比較し、CloudWatch と CloudTrail を中心とした AWS の統合オブザーバビリティ基盤の優位性を解説します。 メトリクス収集と可視化 - AWS と Azure の比較 AWS と Azure のメトリクス収集・可視化サービスを比較し、CloudWatch Metrics と OpenSearch Dashboards を中心とした AWS の監視エコシステムの優位性を解説します。 マルチアカウント管理 - AWS Organizations と RAM で実現する組織全体のガバナンス AWS Organizations によるマルチアカウント戦略の設計と、AWS RAM (Resource Access Manager) によるリソース共有の実践手法を解説します。組織全体のセキュリティガバナンスとコスト管理の最適化パターンを紹介します。 マルチアカウント戦略と AWS Organizations - クラウドガバナンスの最適解 AWS Organizations を活用したマルチアカウント戦略を解説します。Azure や従来のオンプレミス環境と比較し、AWS のアカウント分離によるセキュリティ強化、コスト管理、ガバナンス統制の優位性を具体的に紹介します。 オブザーバビリティ戦略 - AWS と Azure の比較 AWS と Azure のオブザーバビリティサービスを比較し、CloudWatch・OpenSearch・Lambda を中心とした AWS の統合監視・分析基盤の優位性を解説します。 運用監視の実践 - CloudWatch によるフルスタック可観測性の実現 AWS CloudWatch を中心とした運用監視の設計手法を解説し、メトリクス収集、ログ分析、アラーム設定による包括的な可観測性の実現方法を紹介します。 パッチ管理の自動化 - AWS Systems Manager Patch Manager vs Azure Update Manager AWS Systems Manager Patch Manager と Azure Update Manager を比較し、パッチベースライン、メンテナンスウィンドウ、コンプライアンスレポートの違いを具体的に解説します。 レジリエンス評価 - AWS Resilience Hub でアプリケーションの耐障害性を定量化する AWS Resilience Hub を使ったアプリケーションの耐障害性評価を解説。RTO/RPO の定義、レジリエンスポリシー、自動評価、改善推奨事項の活用を紹介します。 リソース共有管理 - AWS RAM で実現するマルチアカウント環境の効率的なリソース活用 AWS RAM (Resource Access Manager) によるマルチアカウント環境でのリソース共有と、AWS Organizations との連携による組織全体のリソース管理を解説します。VPC サブネット共有やトランジットゲートウェイ共有の実践パターンを紹介します。 システム運用管理の効率化 - Systems Manager による統合運用基盤の構築 AWS Systems Manager を活用したシステム運用管理の設計手法を解説し、パッチ管理、パラメータストア、Run Command による運用自動化の実現方法を紹介します。 AWS 環境の最適化診断 - Trusted Advisor によるベストプラクティスチェック AWS Trusted Advisor を使った環境の自動診断を解説。コスト最適化・セキュリティ・耐障害性・パフォーマンス・サービス制限の 5 カテゴリのチェック項目と活用方法を紹介します。 Well-Architected フレームワーク活用 - AWS と Azure の比較 AWS Well-Architected フレームワークと Azure Well-Architected Framework を比較し、AWS のベストプラクティス体系の成熟度と実践的な活用方法を解説します。