Amazon CloudWatch
AWS リソースとアプリケーションのメトリクス、ログ、イベントを統合的に監視・分析するフルマネージドなモニタリングサービス
概要
Amazon CloudWatch は、AWS リソースとアプリケーションのパフォーマンスと運用状態をリアルタイムで監視するモニタリングサービスです。EC2 の CPU 使用率、RDS のデータベース接続数、Lambda の実行時間、ALB のリクエスト数など、AWS サービスのメトリクスを自動的に収集します。CloudWatch Logs でアプリケーションログやシステムログを集約・検索・分析し、CloudWatch Alarms でメトリクスの閾値超過時に SNS 通知や Auto Scaling アクションをトリガーできます。CloudWatch Dashboards でカスタムダッシュボードを作成し、運用状況を一目で把握できます。CloudWatch Logs Insights は SQL ライクなクエリ言語でログデータを高速に分析でき、障害調査やパフォーマンス分析に活用できます。カスタムメトリクスを使えば、アプリケーション固有の指標 (注文数、エラー率など) も CloudWatch で統合管理できます。
CloudWatch のアラームとアクション
CloudWatch Alarms はメトリクスの値が指定した閾値を超えた場合にアクションを実行する機能です。アラームには OK、ALARM、INSUFFICIENT_DATA の 3 つの状態があり、状態遷移時に SNS トピックへの通知、Auto Scaling ポリシーの実行、EC2 インスタンスの停止/終了/再起動、Systems Manager の OpsItem 作成などのアクションをトリガーできます。Composite Alarms は複数のアラームを論理演算 (AND、OR、NOT) で組み合わせ、複合的な条件でアクションを実行します。Anomaly Detection 機能は機械学習を使ってメトリクスの正常な範囲を自動的に学習し、異常値を検出します。これにより、固定の閾値では検出が難しい季節変動やトレンドの変化に対応した監視が可能になります。メトリクスの解像度は標準で 1 分間隔ですが、高解像度メトリクスを使えば 1 秒間隔での監視も可能です。
Azure Monitor との比較
Azure で CloudWatch に対応するサービスは Azure Monitor です。Azure Monitor はメトリクス、ログ、トレースを統合的に管理し、Application Insights (APM)、Log Analytics、Alerts などのコンポーネントで構成されています。CloudWatch と Azure Monitor の大きな違いは、APM (Application Performance Monitoring) の統合度です。Azure Monitor には Application Insights が標準で統合されており、アプリケーションのリクエストトレース、依存関係マッピング、例外追跡が可能です。CloudWatch にも CloudWatch Application Signals (プレビュー) がありますが、本格的な APM には AWS X-Ray を別途使用する必要があります。ログ分析では、CloudWatch Logs Insights が独自のクエリ言語を使用するのに対し、Azure Log Analytics は Kusto Query Language (KQL) を使用し、より高度な分析クエリが可能です。料金面では、CloudWatch のカスタムメトリクスは月額 0.30 ドル/メトリクスで、Azure Monitor のカスタムメトリクスは一定量まで無料です。