CloudWatch
AWS のモニタリング・ログ管理サービスで、メトリクス収集、ログ分析、アラートを提供する
AWSオブザーバビリティ
CloudWatch とは
Amazon CloudWatch は、AWS リソースとアプリケーションのモニタリング・ログ管理サービスで、メトリクス収集、ログ分析、アラート、ダッシュボードを提供する。
3 つの機能
CloudWatch は大きく 3 つの機能で構成される。CloudWatch Metrics は CPU 使用率やエラー数などの数値データを時系列で収集する。CloudWatch Logs はアプリケーションやインフラのログを収集・検索・分析する。CloudWatch Alarms はメトリクスが閾値を超えた際にアラートを発報する。
Lambda のメトリクス
| メトリクス | 説明 |
|---|---|
| Invocations | 呼び出し回数 |
| Duration | 実行時間 |
| Errors | エラー数 |
| Throttles | スロットリング数 |
| ConcurrentExecutions | 同時実行数 |
CloudWatch Logs Insights
-- Lambda のエラーログを検索
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
-- レスポンスタイムの統計
fields @duration
| stats avg(@duration), max(@duration), p95(@duration) by bin(5m)
アラーム
CloudWatch Alarms はメトリクスが閾値を超えた際に SNS トピックへ通知を送る。Lambda のエラー数が 5 分間で 5 回を超えたらアラートを発報する、といった設定が可能。
カスタムメトリクス
CloudWatch にアプリケーション固有のメトリクス (注文数、処理時間など) を送信できる。Lambda Powertools の Metrics モジュールを使うと、Embedded Metrics Format で効率的にメトリクスを出力できる。
ダッシュボード
CloudWatch ダッシュボードで Lambda のエラー率、レイテンシ、DynamoDB のスロットリングを一覧表示する。
コスト最適化
| 対策 | 効果 |
|---|---|
| ログの保持期間を設定 | 古いログを自動削除 |
| メトリクスフィルターを使う | 全ログを保存せず必要な情報だけ抽出 |
| Embedded Metrics Format | カスタムメトリクスのコスト削減 |
実践的な知識は関連書籍でも得られる。