AWS X-Ray のアイコン

AWS X-Ray

分散アプリケーションのリクエストをトレースし、パフォーマンスのボトルネックを特定するサービス

何ができるか

AWS X-Ray は、分散アプリケーションのリクエストをエンドツーエンドでトレースするサービスです。API Gateway、Lambda、ECS、EC2 などを経由するリクエストの流れを可視化し、レイテンシのボトルネックやエラーの発生箇所を特定します。サービスマップでアプリケーション全体のアーキテクチャと依存関係を視覚的に把握できます。

どのような場面で使うか

マイクロサービスアーキテクチャのパフォーマンス分析、Lambda 関数のコールドスタートやタイムアウトの調査、API のレイテンシ問題の原因特定、エラー率の高いサービスの特定に利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

宅配便の追跡システムに例えられます。荷物 (リクエスト) が倉庫 (サービス) を経由するたびに追跡番号 (トレース ID) で記録され、どこで遅延が発生したか、どこで荷物が紛失 (エラー) したかを追跡できます。

X-Ray とは

この記事は約 2 分で読めます。 AWS X-Ray は、分散トレーシングサービスです。アプリケーションに X-Ray SDK を組み込むか、Lambda や API Gateway の設定でトレースを有効化すると、リクエストごとにトレース ID が付与され、各サービスでの処理時間が記録されます。サービスマップでは、サービス間の呼び出し関係、平均レイテンシ、エラー率が一目で確認できます。

トレースとセグメント

X-Ray のトレースは、1 つのリクエストが通過するすべてのサービスの記録です。各サービスでの処理はセグメントとして記録され、外部 API 呼び出しや DB クエリはサブセグメントとして詳細に記録されます。トレースのタイムラインビューで、どのサービスのどの処理に時間がかかっているかを視覚的に特定できます。サンプリングルールでトレースの収集量を制御し、コストを管理します。

はじめかた

Lambda 関数の場合、関数の設定で「アクティブトレース」を有効にするだけで X-Ray トレースが開始されます。EC2 や ECS の場合は X-Ray デーモンをインストールし、アプリケーションに X-Ray SDK を組み込みます。CloudWatch コンソールの X-Ray トレースセクションでサービスマップとトレースを確認できます。

Azure・オンプレミスとの比較

Azure の対応サービス Azure Application Insights (分散トレーシング)
オンプレミスでの対応手段 Jaeger、Zipkin、Datadog APM

AWS の優位点

  • Lambda、API Gateway、ECS などの AWS サービスとネイティブ統合され、SDK なしでトレースを有効化可能
  • サービスマップでアプリケーション全体の依存関係とパフォーマンスを視覚的に把握
  • サンプリングルールでトレース収集量を柔軟に制御し、コストとデータ量のバランスを最適化

注意点

  • トレースの記録数とスキャン数に応じた従量課金。サンプリングルールで収集量を制御してコストを管理する
  • X-Ray は CloudWatch と統合されており、CloudWatch ServiceLens からサービスマップとトレースを確認可能

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。