AWS のモニタリングとトラブルシューティング
John Q. Martin
Principal Consultant
トレースデータから自動生成:手動設定不要

一目でわかる:緑 = 正常 · 黄 = 遅延 · 赤 = 停止

サービスマップを開いたら、緑以外の箇所をすぐに確認しましょう。
ノードをクリックすると、レスポンス時間の分布・HTTPステータスの内訳・エラーの種類を確認できます。

API Gateway (50ms)
-> OrderService (50ms)
-> PaymentService (100ms)
-> External API (200ms)
Total: 400ms
External API = 全レイテンシの 50%
別のパスと比較:
OrderService -> DynamoDB
Total: 120ms (fast)


Query 1 (10-30ms)
-> Query 2 (30-50ms)
-> Query 3 (50-70ms)
-> Query 4 (70-90ms)

Get user list (10-20ms)
Get user 1 details (20-30ms)
Get user 2 details (30-40ms)
... ×100 sequential queries
解決策:バッチクエリ、積極的ローディング
解決策:バッチリクエスト、メッセージキュー、キャッシュ

解決策:プロビジョンド同時実行、初期化処理の最適化
Service A [Error]
-> Service B [Timeout 5s]
-> Service C [Timeout 5s]
-> Database [Timeout 5s]
トレース階層全体にわたってタイムアウトが積み重なって表示される
解決策:タイムアウト、サーキットブレーカー、フォールバック

グループ比較:
response_time > 1000ms、処理時間で並べ替え
# High latency alarm
aws cloudwatch put-metric-alarm \
--alarm-name HighLatency \
--metric-name ResponseTime \
--namespace AWS/XRay \
--statistic Average \
--period 300 \
--threshold 1000 \
--comparison-operator GreaterThanThreshold
# High error count alarm
aws cloudwatch put-metric-alarm \
--alarm-name HighErrorCount \
--metric-name ErrorCount \
--namespace AWS/XRay \
--statistic Sum \
--period 300 \
--threshold 50 \
--comparison-operator GreaterThanThreshold
AWS のモニタリングとトラブルシューティング