AWS X-Ray による分散トレースと構造化ログ
AWS へのアプリケーションデプロイ
Dunieski Otano
Amazon Web Services Solutions Architect
誰も特定できなかった遅いリクエスト
1件のリクエストに4秒かかる
各サービスのログは単独では正常に見える
全体の経路を把握できない
分散トレースが解決する問題
1件のリクエストが
多数のサービス
を経由する
ログだけでは
エンドツーエンドの経路
を把握できない
トレース
がリクエスト全体をつなぎ合わせる
どこに時間がかかったかを正確に確認できる
セグメント、サブセグメント、サービスマップ
セグメント
:1つのサービスが行う処理
サブセグメント
:DBコールなど、セグメント内の単位
サービスマップ
:全セグメントの視覚的なグラフ
各ノードにレイテンシとエラーが表示される
アノテーションとメタデータの違い
アノテーション
インデックス付きのキーと値で
フィルタリング可能
顧客ティアなど、検索に使う情報に適している
メタデータ
追加の詳細情報で
インデックスなし
文脈として付与できるが、検索はできない
トレースIDによるログの関連付け
各トレースには一意の
トレースID
がある
トレースIDを
構造化ログ
に含める
遅いトレースから対応するログ行に直接ジャンプできる
ログとトレースが一体となって調査を支援する
サービスマップでボトルネックを特定する
ログではなく
サービスマップ
から調査を始める
レイテンシ
が最も高いノードを見つける
そのノードの
トレースタイムライン
を掘り下げる
最も長いセグメントがボトルネックの候補
リクエスト全体にわたるトレース
API Gateway・Lambda・下流への呼び出しがすべて
トレース
される
各サービスが同じトレースに
セグメント
を追加する
1つのトレースIDがログとセグメントをつなぐ
すべてのリクエストをエンドツーエンドで可視化できる
練習しましょう!
AWS へのアプリケーションデプロイ
Preparing Video For Download...