Amazon CloudWatch で構築する統合監視 - メトリクス、ログ、アラームの設計
メトリクス・ログ・アラームの 3 本柱で統合監視を構築する。Logs Insights の対話的分析、複合アラームによる高精度通知、Embedded Metric Format の活用を紹介します。
CloudWatch の概要
CloudWatch は AWS リソースとアプリケーションの監視・ログ管理・アラームを提供するサービスです。メトリクス (数値データ)、ログ (テキストデータ)、アラーム (閾値通知) の 3 つの柱で統合的な監視を実現します。カスタムメトリクスでアプリケーション固有の指標を収集し、Logs Insights で対話的なログ分析を実行できます。
メトリクスとアラーム設計
AWS サービスは CPU 使用率、ネットワーク I/O、リクエスト数などの基本メトリクスを自動的に CloudWatch に送信します。カスタムメトリクスは PutMetricData API で送信し、ビジネスメトリクス (注文数/分、売上/時) を監視します。アラームは単一メトリクスの閾値超過で SNS 通知や Lambda 実行をトリガーします。複合アラームは複数のアラームを AND/OR で組み合わせ、「CPU 使用率が高い AND メモリ使用率が高い」場合のみ通知するといった条件で誤報を削減します。Logs Insights は CloudWatch Logs に対する SQL ライクなクエリエンジンで、エラーログの集計やレイテンシの分析を即座に実行できます。
Logs Insights と Contributor Insights
CloudWatch Logs Insights は対話的なログ分析クエリエンジンで、独自のクエリ言語でログデータを検索・集約します。 fields 、 filter 、 stats 、 sort コマンドを組み合わせて、エラーログの集計、レイテンシの分布分析、特定パターンの検索を実行します。クエリ結果をダッシュボードに固定し、定期的な監視に活用できます。 Contributor Insights はログデータからトップ N の寄与者 (最もエラーが多い API 、最もリクエストが多い IP アドレス) を自動的に特定するルールベースの分析機能です。 Lambda Insights はサーバーレス関数のパフォーマンスメトリクス (コールドスタート、メモリ使用率、実行時間) を自動収集します。 監視の運用ノウハウを深めるには、専門書籍 (Amazon)が役立ちます。
CloudWatch の料金最適化
CloudWatch の主要なコスト要因はカスタムメトリクス (月額 0.30 ドル/メトリクス)、ログの取り込み (1 GB あたり約 0.50 ドル)、ログの保存 (1 GB あたり月額約 0.03 ドル) です。メトリクスの解像度を標準 (60 秒) と高解像度 (1 秒) で使い分け、高解像度が必要なメトリクスを限定します。ログの保持期間をロググループごとに設定し、デバッグログは 7 日、監査ログは 1 年といった差別化でストレージコストを削減します。Embedded Metric Format (EMF) でアプリケーションログからメトリクスを自動抽出し、カスタムメトリクスの PutMetricData API コールを削減します。不要なメトリクスフィルターやアラームを定期的に棚卸しします。
まとめ
CloudWatch はメトリクス、ログ、アラームの統合監視を提供するサービスです。Logs Insights で対話的なログ分析を実行し、複合アラームで複数条件を組み合わせた高精度な通知を実現します。Embedded Metric Format でアプリケーションログからメトリクスを自動抽出し、Contributor Insights でトップ N の寄与者を特定します。