CloudWatch メトリクス

AWS のモニタリングとトラブルシューティング

John Q. Martin

Principal Consultant

CloudWatch メトリクスの構造

 

CloudWatch メトリクスのデータポイントを示す図(名前空間、名前、ディメンション、タイムスタンプ、単位)

AWS のモニタリングとトラブルシューティング

標準メトリクスとカスタムメトリクス

標準メトリクス

  • AWS サービスが自動的に発行
  • EC2: 無料の5分間隔、有料の詳細モニタリングで1分間隔
  • 例: EC2 CPUUtilization、RDS DatabaseConnections、Lambda Invocations

カスタムメトリクス

  • ページロード数、注文数、キャッシュヒット率など任意の値を計測
  • 名前空間、ディメンション、単位、解像度を自由に設定可能
  • 名前空間・名前・ディメンションの組み合わせごとに課金
AWS のモニタリングとトラブルシューティング

メトリクスの解像度

CloudWatch メトリクスの解像度比較(1秒から5分)

  • 本番環境は1分間隔、開発・テスト環境は5分間隔
  • 1秒間隔は本当に必要な場合のみ使用
  • 標準: 自動かつ無料だが、データが欠落する場合あり
  • カスタム: 完全な制御が可能だが、メトリクスごとに課金
AWS のモニタリングとトラブルシューティング

カスタムメトリクスの発行

メトリクス発行に使用する AWS CLI を表すアイコン

  • CLI の put-metric-data を使ったクイックテスト

REST API によるカスタムメトリクス発行を表すアイコン

  • HTTP POST による REST API での直接統合

メトリクス発行に使用する Amazon SDK を表すアイコン

  • Amazon SDK

CloudWatch Unified Agent を表すアイコン

  • CloudWatch Unified Agent
AWS のモニタリングとトラブルシューティング

CLI によるメトリクスの発行

   


aws cloudwatch put-metric-data \
  --namespace "Pipeline/DeployDb" \
  --metric-name "stepDuration" \
  --dimensions Name=Pipeline,Value=ProdApp01 \
  --value 42 \
  --unit "Seconds"

 

メトリクス発行に使用する AWS CLI を表すアイコン

  • CLI を呼び出せるものであれば何でも計測可能
  • ディメンションを活用する
AWS のモニタリングとトラブルシューティング

SDK によるメトリクスの発行

  Amazon CloudWatch SDK を使ってカスタムメトリクスを発行する C# コードのサンプル

 

メトリクス発行に使用する Amazon SDK を表すアイコン

  • C#、Java、Go、Rust などの SDK に対応
  • アプリケーションコードからメトリクスを発行
  • ディメンションでアプリの各部分を区別
AWS のモニタリングとトラブルシューティング

Unified Agent

メトリクスと収集間隔を定義する CloudWatch Unified Agent の JSON 設定ファイル

CloudWatch Unified Agent を表すアイコン

  • OS レベルのメトリクスとログを収集
  • EC2 インスタンスまたはコンテナ上で動作
  • JSON 設定で収集対象を指定
  • メトリクスごとに収集間隔を調整可能
AWS のモニタリングとトラブルシューティング

Embedded Metric Format(EMF)

{
  "_aws": {
    "CloudWatchMetrics": [{
      "Namespace": "MyApp",
      "Dimensions": [["functionName"]],
      "Metrics": [{"Name": "latency", "Unit": "Milliseconds"}]
    }]
  },
  "functionName": "checkout",
  "latency": 56
}

 

  • ログに構造化 JSON としてメトリクスを記述
  • CloudWatch が自動的にメトリクスを抽出
  • Lambda やコンテナに最適。追加の API 呼び出し不要
  • 1 回の書き込みでメトリクスとログを同時に記録
AWS のモニタリングとトラブルシューティング

メトリクスストリーム

 

  • データを外部ターゲットへ継続的にエクスポート
  • S3 や New Relic、Datadog などのパートナーへ送信
  • CloudWatch 単体より高度な分析が可能
  • ハイブリッドクラウドを一元管理

CloudWatch メトリクスストリームが外部ターゲットにデータをエクスポートする概要図

AWS のモニタリングとトラブルシューティング

Amazon S3 へのストリーミング

CloudWatch から Kinesis Data Firehose を経由して S3 バケットにメトリクスをストリーミングする図

AWS のモニタリングとトラブルシューティング

パートナーソリューションへのストリーミング

Kinesis Firehose を経由してパートナーソリューションのエンドポイントに S3 バックアップ付きでメトリクスをストリーミングする図

AWS のモニタリングとトラブルシューティング

まとめ

メトリクスとカスタムメトリクス

  • ワークロードの属性を計測
  • 独自アプリ向けのカスタムメトリクス
  • ディメンションを活用する

 

検出のための解像度

  • 粒度が重要
  • 無料と有料の違い
  • サービスによって異なる

カスタムメトリクスの発行

  • プロセスとアプリケーションを計測
  • 分類にはディメンションを使用
  • API より SDK または CLI を優先

 

メトリクスストリーム

  • S3 またはパートナーソリューションへ送信
  • カスタム分析の実現
  • 一元管理ビュー
AWS のモニタリングとトラブルシューティング

練習しましょう!

AWS のモニタリングとトラブルシューティング

Preparing Video For Download...