AWS主要サービスの監視項目:ALB・EC2・ECS・Aurora・Lambda完全ガイド
ALB、EC2、ECS、Aurora、Lambdaの監視すべきメトリクス、推奨閾値、アラート設定を実践的な表形式でまとめました。本番運用で必須の監視項目を網羅。
AWS主要サービスの監視項目
本ドキュメントでは、AWSの主要サービス(ALB、EC2、ECS、Aurora、Lambda)における具体的な監視項目を表形式でまとめます。
各メトリクスはGoogleのSREが提唱する「4つのゴールデンシグナル」の観点で分類しています。
ALB(Application Load Balancer)の監視
基本メトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| HealthyHostCount | サチュレーション | 正常なターゲット数 | Minimum | < 2 | 1分×1/1 | P0 | 冗長性の喪失、サービス停止リスク |
| UnHealthyHostCount | サチュレーション | 異常なターゲット数 | Maximum | >= 1 | 1分×5/5 | P1 | ターゲットの異常、要調査(5分継続で判定) |
| TargetResponseTime | レイテンシ | ターゲットの応答時間 | P95, P99 | P95 > 1秒 or P99 > 3秒 | 1分×3/3 | P2 | パフォーマンス劣化 |
| RequestCount | トラフィック | リクエスト数 | Sum | 前週比±50% | 5分×3/5 | P2 | トラフィック異常、攻撃の可能性 |
| HTTPCode_Target_4XX_Count | エラー | ターゲット側の4xxエラー | Sum | > 100件/分 or エラー率 > 5% | 1分×2/3 | P2 | アプリケーションエラー |
| HTTPCode_Target_5XX_Count | エラー | ターゲット側の5xxエラー | Sum | > 10件/分 or エラー率 > 1% | 1分×2/2 | P1 | サーバーエラー、要即時対応 |
| HTTPCode_ELB_5XX_Count | エラー | ALB側の5xxエラー | Sum | > 5件/分 | 1分×2/2 | P0 | ALBレベルの問題、ターゲット不足 |
| RejectedConnectionCount | サチュレーション | 拒否された接続数 | Sum | > 0 | 1分×2/2 | P1 | キャパシティ不足 |
| TargetConnectionErrorCount | エラー | ターゲットへの接続エラー | Sum | > 10件/分 | 1分×2/3 | P1 | ターゲットの接続問題 |
| ActiveConnectionCount | トラフィック | アクティブ接続数 | Sum | ベースライン200%超 | 5分×3/3 | P2 | 異常なトラフィック |
| NewConnectionCount | トラフィック | 新規接続数 | Sum | ベースライン300%超 | 5分×3/3 | P2 | 急激なトラフィック増加 |
| ProcessedBytes | トラフィック | 処理バイト数 | Sum | ベースライン200%超 | 5分×3/5 | P3 | 帯域幅の監視 |
エラー率の計算(重要)
エラーの絶対数だけでなく、エラー率を監視することが重要です。
| 計算メトリクス | ゴールデンシグナル | 計算式 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|
| エラー率(5xx) | エラー | (HTTPCode_Target_5XX_Count / RequestCount) × 100 | > 1% | 1分×2/3 | P1 | サーバーエラーの割合が高い |
| エラー率(5xx) | エラー | 同上 | > 5% | 1分×2/2 | P0 | 重大なエラー率 |
| エラー率(4xx) | エラー | (HTTPCode_Target_4XX_Count / RequestCount) × 100 | > 10% | 1分×3/3 | P2 | クライアントエラーの割合が高い |
CloudWatch Math式の例:
エラー率 = (m1 / m2) * 100 m1 = HTTPCode_Target_5XX_Count (Sum, 1分) m2 = RequestCount (Sum, 1分)
HealthyHostCount と UnHealthyHostCount の優先度の違い
なぜ HealthyHostCount が P0 で UnHealthyHostCount が P1 なのか?
HealthyHostCount(正常なターゲット数)が最重要な理由
- サービスの可用性を直接示す: 正常なターゲットが残っていればサービスは継続できる
- 閾値が明確: 冗長性を失う瞬間(< 2台)が明確に判断できる
- ゼロになるとサービス停止: HealthyHostCount = 0 は完全なサービス停止を意味する
- 予防的監視: 残り1台になった時点で即座にアラートを出すことで、完全停止を防ぐ
例: HealthyHostCount = 1(残り1台) → P0アラート → この1台が落ちるとサービス停止するため、最優先で対処が必要
UnHealthyHostCount(異常なターゲット数)が次点の理由
- サービスは継続中: 異常なターゲットがあっても、正常なターゲットが動いていればサービスは利用可能
- 徐々に悪化する指標: 1台→2台→3台と徐々に増えていくため、若干の猶予がある
- 一時的な異常の可能性: デプロイ中の再起動など、一時的に異常になることがある(5分継続で判定)
- HealthyHostCount で補完: 正常なターゲット数が十分あれば、一部の異常は許容できる
例: HealthyHostCount = 5, UnHealthyHostCount = 1 → サービスは正常稼働中。異常な1台の原因を調査するが、緊急度は低い
両方を監視する理由
| シナリオ | HealthyHostCount | UnHealthyHostCount | 判断 |
|---|---|---|---|
| 全台正常 | 10 | 0 | 正常 |
| 1台異常 | 9 | 1 | 注意(P1):異常な1台を調査 |
| 残り1台のみ | 1 | 9 | 危機(P0):残り1台が落ちるとサービス停止 |
| 全台異常 | 0 | 10 | 停止(P0):サービス完全停止 |
結論: HealthyHostCount は「今サービスが動いているか」を示し、UnHealthyHostCount は「何台に問題があるか」を示します。サービスの継続性という観点で、HealthyHostCount の方が決定的に重要です。
SSL/TLS関連
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| ClientTLSNegotiationErrorCount | エラー | TLS接続エラー | Sum | > 10件/分 | 1分×3/3 | P2 | SSL証明書問題、互換性問題 |
ターゲットグループ固有メトリクス
ターゲットグループごとに以下を監視:
- HealthyHostCount(ターゲットグループ別)
- RequestCountPerTarget(ターゲット間の負荷分散確認)
- TargetResponseTime(ターゲットグループ別のレイテンシ)
EC2の監視
標準メトリクス(エージェント不要)
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| StatusCheckFailed_System | エラー | システムステータスチェック | Maximum | >= 1 | 1分×2/2 | P0 | AWSインフラ障害、要リカバリ |
| StatusCheckFailed_Instance | エラー | インスタンスステータスチェック | Maximum | >= 1 | 1分×2/2 | P0 | OS障害、要再起動 |
| StatusCheckFailed_AttachedEBS | エラー | EBSステータスチェック | Maximum | >= 1 | 1分×2/2 | P1 | EBS障害、要調査 |
| CPUUtilization | サチュレーション | CPU使用率 | Average | > 80% | 5分×3/3 | P2 | リソース逼迫、スケーリング検討 |
| CPUCreditBalance | サチュレーション | CPUクレジット残高(T系) | Average | < 最大の30% | 5分×3/5 | P2 | バースト性能の枯渇リスク |
| NetworkIn | トラフィック | 受信バイト数 | Sum | 帯域80%超 | 5分×3/3 | P3 | ネットワーク帯域の逼迫 |
| NetworkOut | トラフィック | 送信バイト数 | Sum | 帯域80%超 | 5分×3/3 | P3 | ネットワーク帯域の逼迫 |
| NetworkPacketsIn | トラフィック | 受信パケット数 | Sum | PPS上限80%超 | 5分×3/3 | P3 | パケット処理能力の逼迫 |
| NetworkPacketsOut | トラフィック | 送信パケット数 | Sum | PPS上限80%超 | 5分×3/3 | P3 | パケット処理能力の逼迫 |
EBS関連メトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| EBSReadOps | トラフィック | EBS読み込みIOPS | Sum | IOPS 85%超 | 5分×3/3 | P2 | IOPS上限到達リスク |
| EBSWriteOps | トラフィック | EBS書き込みIOPS | Sum | IOPS 85%超 | 5分×3/3 | P2 | IOPS上限到達リスク |
| EBSReadBytes | トラフィック | EBS読み込みバイト数 | Sum | スループット80%超 | 5分×3/3 | P2 | スループット上限到達リスク |
| EBSWriteBytes | トラフィック | EBS書き込みバイト数 | Sum | スループット80%超 | 5分×3/3 | P2 | スループット上限到達リスク |
| EBSIOBalance% | サチュレーション | EBSバーストIOバランス | Average | < 25% | 5分×3/5 | P3 | バースト性能の枯渇 |
| EBSByteBalance% | サチュレーション | EBSバーストバイトバランス | Average | < 25% | 5分×3/5 | P3 | バースト性能の枯渇 |
CloudWatch Agentによるカスタムメトリクス(OS内部)
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| mem_used_percent | サチュレーション | メモリ使用率 | Average | > 80% | 5分×3/3 | P2 | メモリ不足リスク |
| mem_available_percent | サチュレーション | 利用可能メモリ率 | Average | < 20% | 1分×3/3 | P1 | OOM Killerリスク |
| swap_used_percent | サチュレーション | スワップ使用率 | Average | > 50% | 5分×3/3 | P2 | スラッシング、性能劣化 |
| disk_used_percent | サチュレーション | ディスク使用率 | Maximum | > 85% | 5分×3/5 | P2 | ディスク容量不足 |
| disk_inodes_free | サチュレーション | inode空き数 | Minimum | < 10% | 5分×3/5 | P2 | inode枯渇リスク |
| netstat_tcp_established | トラフィック | TCP確立接続数 | Average | > 10000 | 5分×3/3 | P3 | 接続数の異常増加 |
| netstat_tcp_time_wait | サチュレーション | TIME_WAIT接続数 | Average | > 5000 | 5分×3/3 | P3 | 接続の滞留 |
| processes_running | トラフィック | 実行中プロセス数 | Average | ベースライン200%超 | 5分×3/3 | P3 | プロセス異常増加 |
| processes_blocked | サチュレーション | ブロック中プロセス数 | Average | > 10 | 5分×3/3 | P2 | I/O待ちの増加 |
プロセス監視(procstat)
特定のプロセス(nginx, apache, app など)の監視:
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 |
|---|---|---|---|---|---|---|
| procstat_lookup_pid_count | エラー | プロセス数 | Minimum | < 1 | 1分×2/2 | P0 |
| procstat_cpu_usage | サチュレーション | プロセスCPU使用率 | Average | > 80% | 5分×3/3 | P2 |
| procstat_memory_rss | サチュレーション | プロセスメモリ使用量 | Average | 異常増加 | 5分×3/3 | P2 |
ECS(Elastic Container Service)の監視
サービスレベルメトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| CPUUtilization | サチュレーション | サービスのCPU使用率 | Average | > 80% | 5分×3/3 | P2 | リソース不足、スケーリング検討 |
| MemoryUtilization | サチュレーション | サービスのメモリ使用率 | Average | > 80% | 5分×3/3 | P2 | メモリ不足、スケーリング検討 |
| RunningTasksCount | サチュレーション | 実行中のタスク数 | Average | < DesiredCount | 1分×3/3 | P1 | タスク起動失敗、リソース不足 |
| DesiredTaskCount | トラフィック | 希望するタスク数 | Average | - | - | P3 | スケーリング状況の確認 |
| PendingTasksCount | サチュレーション | 保留中のタスク数 | Maximum | > 0 | 5分×5/5 | P2 | リソース不足、タスク起動失敗 |
タスクレベルメトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| TaskCPUUtilization | サチュレーション | タスクのCPU使用率 | Maximum | > 90% | 5分×3/3 | P2 | CPU制限到達 |
| TaskMemoryUtilization | サチュレーション | タスクのメモリ使用率 | Maximum | > 90% | 1分×3/3 | P1 | OOM Killerリスク |
| TaskSetRunningTasksCount | サチュレーション | 実行中タスク数 | Minimum | < 1 | 1分×2/2 | P0 | 全タスク停止 |
コンテナレベルメトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| ContainerCPUUtilization | サチュレーション | コンテナのCPU使用率 | Average | > 80% | 5分×3/3 | P2 | コンテナリソース不足 |
| ContainerMemoryUtilization | サチュレーション | コンテナのメモリ使用率 | Average | > 85% | 5分×3/3 | P2 | メモリ不足の兆候 |
Container Insights(推奨)
Container Insightsを有効化すると、より詳細なメトリクスが取得できます。
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| CpuUtilized | サチュレーション | 実際に使用されたCPUユニット | Average | 定義の80%超 | 5分×3/3 | P2 | CPU不足 |
| MemoryUtilized | サチュレーション | 実際に使用されたメモリ(MB) | Average | 定義の80%超 | 5分×3/3 | P2 | メモリ不足 |
| NetworkRxBytes | トラフィック | 受信バイト数 | Sum | ベースライン比較 | 5分×3/5 | P3 | ネットワーク監視 |
| NetworkTxBytes | トラフィック | 送信バイト数 | Sum | ベースライン比較 | 5分×3/5 | P3 | ネットワーク監視 |
| StorageReadBytes | トラフィック | ストレージ読み込み | Sum | ベースライン比較 | 5分×3/5 | P3 | I/O監視 |
| StorageWriteBytes | トラフィック | ストレージ書き込み | Sum | ベースライン比較 | 5分×3/5 | P3 | I/O監視 |
| TaskCount | トラフィック | タスク数 | Average | < DesiredCount | 1分×3/3 | P1 | タスク数不足 |
ECS Fargate固有メトリクス
Fargateを使用している場合の追加メトリクス:
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| EphemeralStorageUtilized | サチュレーション | 一時ストレージ使用量(GB) | Maximum | 85%超 | 5分×3/3 | P2 | ストレージ容量不足 |
サービスイベント監視
CloudWatch EventsまたはEventBridgeで以下のイベントを監視:
| イベント | ゴールデンシグナル | 説明 | 優先度 | アラート理由 |
|---|---|---|---|---|
| ECS Task State Change | エラー | タスク状態の変化(STOPPED) | P1 | タスク異常終了の検知 |
| ECS Service Action | - | サービスのデプロイイベント | P3 | デプロイ監視 |
| ECS Container Instance State Change | エラー | コンテナインスタンス状態変化 | P2 | インスタンス異常(EC2起動タイプ) |
タスク終了理由の監視
タスクが停止した理由を監視することが重要です:
| 終了理由 | ゴールデンシグナル | 説明 | 優先度 | 対応 |
|---|---|---|---|---|
| Essential container exited | エラー | アプリケーションエラー | P1 | ログ確認、アプリ修正 |
| OutOfMemory | エラー | メモリ不足 | P1 | メモリ増量、メモリリーク調査 |
| Task failed ELB health checks | エラー | ヘルスチェック失敗 | P1 | アプリケーション調査 |
| Scaling activity initiated | - | スケーリングによる終了 | P3 | 正常動作 |
| Service scheduler initiated | - | サービス更新による終了 | P3 | 正常動作 |
ALB統合時の追加監視
ECSサービスがALBと統合されている場合、ALBのメトリクスも併せて監視:
- TargetResponseTime(ターゲットグループごと)
- HealthyHostCount / UnHealthyHostCount
- HTTPCode_Target_5XX_Count
Auto Scaling関連
| メトリクス | ゴールデンシグナル | 説明 | 推奨閾値 | 優先度 |
|---|---|---|---|---|
| TargetTrackingScalingPolicy | サチュレーション | スケーリングポリシーの目標値 | CPUまたはMemoryの70-80% | P3 |
| AlarmHigh / AlarmLow | - | スケールアウト/インの発動頻度 | 頻発する場合は閾値調整 | P3 |
ECS起動タイプ別の注意点
EC2起動タイプ
- コンテナインスタンス(EC2)のメトリクスも監視が必要
- EC2のCPU/メモリ使用率も確認
- ECS Agentの正常性確認
Fargate起動タイプ
- インフラ管理不要だが、タスク定義のリソース設定が重要
- EphemeralStorageの使用状況監視
- タスク起動時間(コールドスタート)の監視
Container Insightsの有効化方法
# クラスターレベルで有効化 aws ecs update-cluster-settings \ --cluster <cluster-name> \ --settings name=containerInsights,value=enabled # アカウントレベルでデフォルト有効化 aws ecs put-account-setting \ --name containerInsights \ --value enabled
ログ監視
CloudWatch Logsに出力されるコンテナログも監視:
- アプリケーションエラーログ
- 起動/終了時のログ
- ヘルスチェック失敗のログ
- OOMエラーのログ
推奨ダッシュボード構成
上段: - RunningTasksCount / DesiredTaskCount(時系列) - CPUUtilization / MemoryUtilization(時系列) - TaskCount(Container Insights) 中段: - HealthyHostCount / UnHealthyHostCount(ALB) - TargetResponseTime(ALB) - HTTPCode_Target_5XX_Count(ALB) 下段: - タスク停止イベント(理由別) - NetworkRxBytes / NetworkTxBytes - EphemeralStorageUtilized(Fargate)
Aurora(RDS)の監視
基本パフォーマンスメトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| CPUUtilization | サチュレーション | CPU使用率 | Average | > 80% | 5分×3/3 | P2 | リソース不足、スケールアップ検討 |
| DatabaseConnections | トラフィック | DB接続数 | Average | max_connections 80%超 | 1分×3/3 | P1 | 接続枯渇リスク |
| FreeableMemory | サチュレーション | 空きメモリ | Average | < 総メモリの20% | 5分×3/3 | P2 | メモリ不足 |
| SwapUsage | サチュレーション | スワップ使用量 | Average | > 256 MB | 5分×3/3 | P2 | メモリ不足の兆候 |
| ReadLatency | レイテンシ | 読み込みレイテンシ | P95 | > 20ms | 5分×3/3 | P2 | 読み込み性能劣化 |
| WriteLatency | レイテンシ | 書き込みレイテンシ | P95 | > 20ms | 5分×3/3 | P2 | 書き込み性能劣化 |
| ReadThroughput | トラフィック | 読み込みスループット | Average | ベースライン比較 | 5分×3/5 | P3 | パターン監視 |
| WriteThroughput | トラフィック | 書き込みスループット | Average | ベースライン比較 | 5分×3/5 | P3 | パターン監視 |
| ReadIOPS | トラフィック | 読み込みIOPS | Average | IOPS 85%超 | 5分×3/3 | P2 | IOPS上限到達 |
| WriteIOPS | トラフィック | 書き込みIOPS | Average | IOPS 85%超 | 5分×3/3 | P2 | IOPS上限到達 |
Aurora固有メトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| AuroraReplicaLag | レイテンシ | レプリカラグ(ms) | Maximum | > 1000ms | 1分×3/3 | P2 | レプリカ遅延、整合性問題 |
| AuroraReplicaLagMaximum | レイテンシ | 最大レプリカラグ | Maximum | > 5000ms | 1分×2/2 | P1 | 重大なレプリケーション遅延 |
| BufferCacheHitRatio | サチュレーション | バッファキャッシュヒット率 | Average | < 95% | 5分×3/5 | P3 | キャッシュ効率低下 |
| CommitLatency | レイテンシ | コミットレイテンシ | P95 | > 50ms | 5分×3/3 | P2 | 書き込み性能の問題 |
| CommitThroughput | トラフィック | コミットスループット | Average | ベースライン比較 | 5分×3/5 | P3 | 書き込みパターン監視 |
| DDLLatency | レイテンシ | DDLレイテンシ | Average | > 1000ms | 5分×3/3 | P3 | スキーマ変更の遅延 |
| DMLLatency | レイテンシ | DMLレイテンシ | P95 | > 100ms | 5分×3/3 | P2 | クエリ性能の劣化 |
| SelectLatency | レイテンシ | SELECTレイテンシ | P95 | > 50ms | 5分×3/3 | P2 | 読み取り性能の劣化 |
| SelectThroughput | トラフィック | SELECTスループット | Average | ベースライン比較 | 5分×3/5 | P3 | 読み取りパターン監視 |
接続とデッドロック
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| Deadlocks | エラー | デッドロック発生回数 | Sum | > 5回/分 | 1分×3/3 | P2 | アプリケーションロジック要確認 |
| BlockedTransactions | エラー | ブロックされたトランザクション | Average | > 10 | 5分×3/3 | P2 | ロック競合 |
| AbortedClients | エラー | 異常終了したクライアント | Sum | > 10/分 | 1分×3/3 | P2 | 接続エラー |
| LoginFailures | エラー | ログイン失敗回数 | Sum | > 10/分 | 1分×3/3 | P2 | 認証エラー、攻撃可能性 |
ストレージ
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| VolumeBytesUsed | サチュレーション | ストレージ使用量 | Average | 80%超 | 5分×3/5 | P3 | 容量不足の予兆 |
| VolumeReadIOPs | トラフィック | ボリューム読み込みIOPS | Average | - | 5分×3/5 | P3 | パターン監視 |
| VolumeWriteIOPs | トラフィック | ボリューム書き込みIOPS | Average | - | 5分×3/5 | P3 | パターン監視 |
| BackupRetentionPeriodStorageUsed | サチュレーション | バックアップストレージ使用量 | Average | 想定値120%超 | 1時間×3/5 | P3 | コスト監視 |
Performance Insights(推奨)
Performance Insightsを有効化して以下を監視:
- DBLoad: データベース負荷(Average Active Sessions)
- 推奨閾値: vCPU数を超える状態が継続
- Top SQL: 負荷の高いクエリの特定
- Wait Events: 待機イベントの分析(I/O、ロック、CPU等)
Enhanced Monitoring(推奨)
より詳細なOS レベルのメトリクス:
- プロセスごとのCPU/メモリ使用率
- ファイルシステムの詳細
- ネットワーク統計
Lambdaの監視
基本メトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| Invocations | トラフィック | 呼び出し回数 | Sum | 前週比±100% | 5分×3/5 | P2 | トラフィック異常 |
| Errors | エラー | エラー回数 | Sum | > 10回/分 | 1分×2/3 | P1 | 関数エラー、即時対応要 |
| Throttles | エラー | スロットル回数 | Sum | > 0 | 1分×2/2 | P1 | 同時実行数制限到達 |
| Duration | レイテンシ | 実行時間 | P95 | > タイムアウト80% | 5分×3/3 | P2 | タイムアウトリスク |
| ConcurrentExecutions | サチュレーション | 同時実行数 | Maximum | 予約数80%超 | 1分×3/3 | P2 | 同時実行数の逼迫 |
| UnreservedConcurrentExecutions | サチュレーション | 未予約同時実行数 | Maximum | 制限80%超 | 1分×2/2 | P1 | アカウント制限到達 |
| IteratorAge | レイテンシ | イテレーター経過時間 | Maximum | > 60000ms | 1分×3/3 | P2 | ストリーム処理遅延 |
| DeadLetterErrors | エラー | DLQへの送信エラー | Sum | > 0 | 1分×1/1 | P1 | DLQ設定ミス |
エラー率の計算(重要)
エラーの絶対数だけでなく、エラー率とスロットル率を監視することが重要です。
| 計算メトリクス | ゴールデンシグナル | 計算式 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|
| エラー率 | エラー | (Errors / Invocations) × 100 | > 1% | 1分×3/3 | P2 | 関数エラーの割合が高い |
| エラー率 | エラー | 同上 | > 5% | 1分×2/2 | P1 | 重大なエラー率 |
| スロットル率 | エラー | (Throttles / Invocations) × 100 | > 0.1% | 1分×2/2 | P1 | 同時実行数制限の影響 |
CloudWatch Math式の例:
エラー率 = (m1 / m2) * 100 m1 = Errors (Sum, 1分) m2 = Invocations (Sum, 1分)
非同期実行関連
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| AsyncEventsReceived | トラフィック | 受信した非同期イベント | Sum | ベースライン比較 | 5分×3/5 | P3 | パターン監視 |
| AsyncEventAge | レイテンシ | 非同期イベントの経過時間 | Maximum | > 300000ms | 1分×3/3 | P2 | イベント処理の遅延 |
| AsyncEventsDropped | エラー | ドロップされた非同期イベント | Sum | > 0 | 1分×1/1 | P0 | イベントロスト |
ストリーム処理(Kinesis/DynamoDB Streams)
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| IteratorAge | レイテンシ | 最古レコードの経過時間 | Maximum | > 60000ms | 1分×3/3 | P2 | 処理遅延 |
| StreamRecordsTruncated | エラー | 切り詰められたレコード数 | Sum | > 0 | 1分×2/2 | P2 | ペイロードサイズ問題 |
コスト関連メトリクス
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨統計 | 推奨閾値 | データポイント | 優先度 | アラート理由 |
|---|---|---|---|---|---|---|---|
| Duration × Invocations | - | 課金対象実行時間合計 | Sum | 予算80%超 | 1日×1/1 | P3 | コストアラート |
Lambda Insights(推奨)
Lambda Insightsを有効化して以下を監視:
| メトリクス名 | ゴールデンシグナル | 説明 | 推奨閾値 | データポイント | 優先度 |
|---|---|---|---|---|---|
| memory_utilization | サチュレーション | メモリ使用率 | > 90% | 1分×3/3 | P2 |
| cpu_total_time | サチュレーション | CPU時間 | 異常な増加 | 5分×3/3 | P2 |
| tx_bytes / rx_bytes | トラフィック | ネットワークトラフィック | ベースライン比較 | 5分×3/5 | P3 |
| init_duration | レイテンシ | コールドスタート時間 | > 3000ms | 5分×3/5 | P3 |
アラート設定の推奨構成
P0(Critical)アラート
- Errors > 10回/分 かつ エラー率 > 10% - Throttles > 1回/分 - AsyncEventsDropped > 0 - DeadLetterErrors > 0
P1(High)アラート
- エラー率 > 5% - スロットル率 > 1% - ConcurrentExecutions が制限の80%超 - IteratorAge > 5分(ストリーム処理)
P2(Medium)アラート
- エラー率 > 1% - Duration P95 が タイムアウトの80%超 - AsyncEventAge > 5分 - memory_utilization > 90%
監視ダッシュボードの構成例
ALBダッシュボード
上段: - HealthyHostCount / UnHealthyHostCount(時系列) - RequestCount(時系列) - TargetResponseTime P95/P99(時系列) 中段: - HTTPCode_Target_5XX_Count(時系列) - HTTPCode_ELB_5XX_Count(時系列) - エラー率(計算メトリクス) 下段: - ActiveConnectionCount(時系列) - TargetConnectionErrorCount(時系列) - RejectedConnectionCount(時系列)
EC2ダッシュボード
上段: - CPUUtilization(全インスタンス) - mem_used_percent(全インスタンス) - disk_used_percent(全インスタンス) 中段: - StatusCheckFailed(全インスタンス) - NetworkIn/Out(時系列) - EBS IOPS(時系列) 下段: - プロセス監視(重要プロセスのpid_count) - swap_used_percent - netstat_tcp_established
ECSダッシュボード
上段: - RunningTasksCount / DesiredTaskCount(時系列) - CPUUtilization / MemoryUtilization(サービスレベル) - TaskCount(Container Insights) 中段: - HealthyHostCount / UnHealthyHostCount(ALB統合時) - TargetResponseTime(ALB統合時) - PendingTasksCount(時系列) 下段: - タスク停止イベント(理由別、過去24時間) - NetworkRxBytes / NetworkTxBytes - EphemeralStorageUtilized(Fargate)
Auroraダッシュボード
上段: - CPUUtilization(Writer/Reader別) - DatabaseConnections(Writer/Reader別) - AuroraReplicaLag(各Reader) 中段: - ReadLatency / WriteLatency P95 - SelectLatency / DMLLatency P95 - Deadlocks 下段: - Performance Insights(DBLoad) - BufferCacheHitRatio - VolumeBytesUsed
Lambdaダッシュボード
上段: - Invocations(時系列) - Errors + エラー率(時系列) - Throttles + スロットル率(時系列) 中段: - Duration P50/P95/P99(時系列) - ConcurrentExecutions(時系列) - IteratorAge(ストリーム処理の場合) 下段: - Lambda Insights(memory_utilization) - AsyncEventAge(非同期の場合) - DeadLetterErrors
参考リソース
AWS公式ドキュメント
-
CloudWatch メトリクス
- ALB メトリクス: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html
- EC2 メトリクス: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
- ECS メトリクス: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html
- Aurora メトリクス: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Monitoring.html
- Lambda メトリクス: https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html
-
CloudWatch Agent
-
Container Insights
- ECS Container Insights: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html
- Container Insights メトリクス: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html
-
Performance Insights
- Aurora Performance Insights: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html
-
Lambda Insights
適切な監視設定で、障害の早期発見とシステムの安定稼働を実現しましょう。