X-Ray
AWS の分散トレーシングサービスで、リクエストの経路とレイテンシを可視化する
X-Ray とは
AWS X-Ray は、分散トレーシングサービスで、リクエストが API Gateway → Lambda → DynamoDB のようにどのサービスを通過し、どこで時間がかかっているかを可視化する。マイクロサービスやサーバーレスアーキテクチャのパフォーマンス分析とデバッグに使う。
トレースマップ
トレースマップを図で示す。
[API Gateway] → [Lambda A] → [DynamoDB]
50ms 120ms 30ms
→ [Lambda B] → [SQS]
80ms 10ms
合計: 170ms
X-Ray はリクエストの全経路をトレースマップとして可視化し、ボトルネックを特定する。
Tracing: Active で Lambda の X-Ray トレーシングが有効になる。
トレースの構造
X-Ray のトレースは 1 つのリクエスト全体を表し、セグメント (各サービスの処理) とサブセグメント (サービス内の個別操作) で構成される。各セグメントに処理時間が記録されるため、どのサービスやどの DB 呼び出しがボトルネックかを視覚的に特定できる。
Trace (1 リクエスト全体)
└── Segment (API Gateway)
└── Subsegment (Lambda)
├── Subsegment (DynamoDB GetItem: 30ms)
└── Subsegment (外部 API 呼び出し: 200ms) ← ボトルネック
CloudWatch との連携
CloudWatch との連携を以下にまとめる。
| サービス | 用途 |
|---|---|
| X-Ray | リクエストの経路とレイテンシ |
| CloudWatch Logs | ログの詳細 |
| CloudWatch Metrics | メトリクス (エラー率、レイテンシ) |
3 つを組み合わせてオブザーバビリティを実現する。
サンプリング
全リクエストをトレースするとコストが増加する。サンプリングルールで一部のリクエストのみトレースする。
{
"version": 2,
"default": { "fixed_target": 1, "rate": 0.05 }
}
1 秒あたり 1 リクエスト + 残りの 5% をサンプリング。
Lambda Powertools との統合
Lambda Powertools との 統合のコード例を示す。
import { Tracer } from '@aws-lambda-powertools/tracer';
const tracer = new Tracer();
class MyHandler {
@tracer.captureMethod()
async getUser(id: string) { /* 自動的にサブセグメントが作成される */ }
}
さらに掘り下げるなら関連書籍が参考になる。
この記事は役に立ちましたか?
関連用語
関連する記事
写経を超える - 技術書のコードを自分のプロジェクトに応用する方法
技術書のサンプルコードを写経するだけでは実力は伸びません。書籍のコードを自分のプロジェクトに応用し、実務で使える力に変える 5 つのステップを解説します。
コードを「書く力」と「読む力」は別物 - 読解力を鍛える技術書の使い方
プログラミングの「書く力」ばかり鍛えていませんか。他人のコードを正確に読み解く力は、技術書を使って意識的に鍛えられます。読解力を高める具体的な方法を紹介。
チーム開発・マネジメント本ガイド - 技術リーダーが読むべき本
チーム開発、1on1、技術マネジメントを学べる技術書の選び方を紹介。メンバー時代からマネージャーまで、段階別の読書ロードマップを解説します。