web100tips’s blog

webエンジニアが知っておくべきこと100を1日1投稿します

AWS CloudWatchとログ監視のすべて:安定運用に不可欠なログ戦略

 

CloudWatchやログ監視の概要

Webアプリケーションやインフラを安定運用するうえで、ログの収集と監視は非常に重要です。本記事では、AWS CloudWatch を中心に、ログ監視の基本概念、設定方法、応用テクニックについて体系的に解説します。

1. ログ監視とは

ログ監視とは、アプリケーションやサーバが出力するログを収集・分析し、異常やトラブルの兆候を検知・通知するための仕組みです。

代表的な監視対象ログ

  • アプリケーションログ
  • Webサーバ(Nginx、Apache)ログ
  • OS/システムログ(/var/log/)
  • コンテナログ(Docker, ECS, Kubernetes
  • DBログ(MySQL, PostgreSQLなど)

2. AWS CloudWatchとは

AWS CloudWatchは、AWS環境における監視とログ管理を統合的に提供するサービスです。以下の主な機能があります。

  • CloudWatch Logs:ログの収集・検索・可視化
  • CloudWatch Metrics:リソースのメトリクス監視
  • CloudWatch Alarms:しきい値によるアラート通知
  • CloudWatch Dashboards:可視化ダッシュボード
  • CloudWatch Logs Insights:クエリベースのログ分析

3. CloudWatch Logsの基本構成

  • Log Group:ログのグループ単位
  • Log Stream:ログデータの連続的な流れ(例:1つのEC2インスタンス
  • ログエージェント:CloudWatch Agent、Fluent Bit、AWS CLI など

4. ログ送信の設定

EC2からの送信


  sudo yum install amazon-cloudwatch-agent
  sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  sudo systemctl start amazon-cloudwatch-agent
  

ECS・Fargateからの送信

ログドライバにawslogsを指定。


  logConfiguration:
    logDriver: awslogs
    options:
      awslogs-group: "/ecs/my-app"
      awslogs-region: "ap-northeast-1"
      awslogs-stream-prefix: "ecs"
  

5. CloudWatch Logs Insights

ログに対してSQLライクなクエリを実行し、エラー数やリクエスト数を可視化できます。


  fields @timestamp, @message
  | filter @message like /ERROR/
  | sort @timestamp desc
  | limit 20
  

6. アラーム通知の設定

メトリクスに対してCloudWatch Alarmを設定し、SNS経由で通知を送信。


  - メトリクス:CPU使用率, エラーレート
  - 通知:Amazon SNS → Email, Slack, Lambda
  

7. 他のログ監視サービスとの比較

  • Datadog:UIが優れており、CloudWatch連携も簡単
  • New Relic:アプリケーションパフォーマンス分析に強い
  • Elastic Stack(ELK):完全オープンソースで柔軟性あり

8. ベストプラクティス

  • ログ量を制御し、コスト対策(サンプリング・保存期間の見直し)
  • 環境ごとにLog Groupを分ける(dev/stg/prod)
  • アプリケーションログは構造化形式(JSON)で出力
  • 監視とアラートは最小限かつ意味のあるものに

まとめ

ログ監視はトラブル対応・障害検知だけでなく、アプリケーションやシステムの改善にも役立ちます。CloudWatchを中心とした監視体制を整備することで、Webサービスの安定運用が実現できます。