全般

Q: AWS X-Ray とは何ですか?
開発者は、AWS X-Ray を使用して、本番環境や分散アプリケーション (マイクロサービスアーキテクチャを使用して構築されたアプリケーションなど) を分析およびデバッグできます。X-Ray を使用すると、アプリケーションやその基盤となるサービスの実行状況を把握し、パフォーマンスの問題やエラーの根本原因を特定して、トラブルシューティングを行えます。X-Ray では、アプリケーション内で転送されるリクエストがエンドツーエンドで表示され、アプリケーションの基盤となるコンポーネントのマップも表示されます。X-Ray を使用すると、開発中か本番環境かにかかわらず、シンプルな 3 層アプリケーションから数千のサービスで構成される複雑なマイクロサービスアプリケーションまで、さまざまなアプリケーションを分析できます。

Q: X-Ray を使用するメリットは何ですか?
現在、分散アプリケーションを構築して実行する際、アプリケーションを構成するさまざまなコンポーネントを経由するリクエストを追跡するには、サービスごと、またはリソースごとのプロセスに頼る必要があります。アプリケーションを実行する、またはアプリケーションで使用されるフレームワーク、サービス、リソースによってログの形式やストレージメディアが異なることから、この問題はさらに複雑化しています。そのため、各種のデータ要素を関連付け、エンドユーザーやサービスの下でリクエストが発生してからアプリケーションによってレスポンスが返されるまでの全体像を把握することが難しくなっています。X-Ray では、サービスやリソース中心ではない、ユーザーを中心としたモデルを通して、アプリケーションに対するリクエストに関連したデータが収集されます。このモデルにより、ユーザーを中心とした視点で、サービスやリソースを経由するリクエストを把握することができます。X-Ray によってデータの関連付けと集計が実行されることで、お客様はアプリケーションのエンドユーザー環境を向上させることに注力できます。

Q: X-Ray ではどのようなことができますか?
X-Ray を使用すれば、以下の作業を簡単に行えます。

  • サービスマップの作成 – アプリケーションに対するリクエストが追跡され、アプリケーションによって使用されるサービスマップが作成されます。これにより、アプリケーション内のサービス間のつながりを把握でき、依存性ツリーの作成、複数の AWS アベイラビリティゾーンまたはリージョン間で発生するレイテンシーやエラーの検出、正常に実行されていないサービスの把握などを行えます。
  • エラーとバグの特定 – アプリケーションに対する各リクエストの応答コードが分析され、アプリケーション内のバグやエラーが自動的に検出されます。これにより、バグやエラーを再現することなく、アプリケーションコードを簡単にデバッグできます。
  • 独自の分析と可視化アプリケーションの作成 – X-Ray で用意されたクエリ API のセットを使用して、X-Ray で記録されたデータに基づく独自の分析や可視化のためのアプリケーションを構築できます。

重要な概念

Q: 追跡とは何ですか?
X-Ray の追跡は、同じ追跡 ID を持つデータポイントの集合体です。たとえば、あるクライアントからアプリケーションに対するリクエストが作成されると、それに対して一意の追跡 ID が割り当てられます。このリクエストがアプリケーション内の複数のサービスを経由すると、リクエストに関する情報は、この一意の追跡 ID によってサービスから X-Ray に中継されます。アプリケーション内のサービスから X-Ray に中継される各情報はセグメントであり、追跡はセグメントの集合体です。

Q: セグメントとは何ですか?
X-Ray のセグメントは、分散アプリケーションの 1 つのコンポーネント (認証サービスなど) に関するすべてのデータポイントをカプセル化したものです。セグメントには、システム定義のデータとユーザー定義のデータが注釈の形式で含まれています。各セグメントは、サービスからのリモートコールを表す 1 つ以上のサブセグメントで構成されます。たとえば、リクエストに応じてアプリケーションからデータベースが呼び出されると、そのリクエストに対して、データベース呼び出しとその結果を表すサブセグメントを伴うセグメントが作成されます。サブセグメントには、クエリ、使用されたテーブル、タイムスタンプ、エラーステータスなどのデータが含まれます。

Q: 注釈とは何ですか?
X-Ray の注釈は、セグメントに関連付けられたシステム定義のデータまたはユーザー定義のデータです。1 つのセグメントに複数の注釈が含まれる場合もあります。システム定義の注釈には、AWS のサービスによってセグメントに追加されたデータが含まれています。一方、ユーザー定義の注釈は、開発者がセグメントに追加したメタデータです。たとえば、アプリケーションによって自動的に作成されたセグメントには、AWS のサービス呼び出しに対するリージョンデータが自動的に挿入されます。一方、AWS 以外のサービスに対する呼び出しの場合は、リージョンデータの追加を選択することができます。

Q: エラーとは何ですか?
X-Ray のエラーは、エラーが返された呼び出しのあるセグメントに関連付けられたシステム注釈です。エラーには、ソースファイルと関連付けるためのエラーメッセージ、スタックトレースやその他の追加情報 (バージョンやコミット ID など) が含まれます。

Q: サンプリングとは何ですか?
パフォーマンスやコスト効率の観点から、X-Ray ではアプリケーションに送信されるリクエストすべてのデータが収集されるわけではありません。代わりに、統計的に有意なリクエスト数のデータが収集されます。X-Ray ではデータの完全性が保証されないため、監査やコンプライアンスのツールとして使用することはできません。

Q: X-Ray エージェントとは何ですか?
X-Ray エージェントでは、データがログファイルから収集され、X-Ray サービスに送信されます。その後、データは X-Ray サービスで集計、分析、保存されます。このエージェントにより、API を使って直接送信するよりも簡単にデータを X-Ray サービスに送信することができます。エージェントは Amazon Linux AMI、Red Hat Enterprise Linux (RHEL)、Windows Server 2012 R2 以降のオペレーティングシステムで使用できます。

AWS X-Ray の使用

Q: どうすれば X-Ray の使用を開始できますか?
X-Ray の使用を開始するには、X-Ray 言語の SDK をアプリケーションに組み込み、X-Ray エージェントをインストールします。詳細については、X-Ray のユーザーガイドを参照してください。

Q: どのようなタイプのアプリケーションが X-Ray で使用できますか?
X-Ray では、あらゆるサイズの分散アプリケーションを使用して、同期リクエストと非同期イベントの両方を追跡してデバッグすることができます。たとえば、ウェブアプリケーションに対するウェブリクエストや Amazon SQS キューを使用した非同期イベントを追跡できます。

Q: X-Ray を使用できる AWS のサービスはどれですか?
X-Ray は、EC2、ECS、Lambda、Amazon SQS、Amazon SNS、Elastic Beanstalk で実行しているアプリケーションで使用できます。また、X-Ray SDK では、AWS SDK を使用して、AWS のサービスに対する API コールのメタデータが自動的に取得されます。さらに、X-Ray SDK には、MySQL ドライバーおよび PostgreSQL ドライバー用のアドオンも用意されています。

Q: X-Ray を使用するには、アプリケーションにどのようなコード変更を加える必要がありますか?
Elastic Beanstalk を使用している場合は、言語固有の X-Ray ライブラリをアプリケーションコードに含める必要があります。EC2 や ECS など、その他の AWS のサービスで実行されるアプリケーションの場合は、X-Ray エージェントをインストールし、アプリケーションコードを設定する必要があります。

Q: X-Ray には API がありますか?
はい。X-Ray にはリクエストデータの取り込み、追跡のクエリ、サービスの設定を行うための API セットが用意されています。X-Ray API を使用すれば、X-Ray で用意されているものに加えて、分析と可視化のためのアプリケーションを構築することができます。

リージョン

Q: どのリージョンで X-Ray を使用できますか?
詳細については、各リージョンの製品とサービスを参照してください。

Q: X-Ray を使用して、複数のリージョンにまたがるアプリケーションやサービスからのリクエストを追跡できますか?
はい。X-Ray を使用すると、複数のリージョンにまたがるアプリケーションやサービスを経由するリクエストを追跡することができます。X-Ray のデータは処理されたリージョンのローカルに保存されますが、十分な情報に基づき、クライアントアプリケーションによってデータが組み合わせられ、グローバルな追跡状況が表示されます。AWS のサービスに関するリージョンの注釈は自動的に追加されますが、リージョン間サポートを利用するには、リージョンの注釈を追加するようにカスタムサービスを設定する必要があります。

データの取り扱い

Q: 追跡データを X-Ray で使用できるようになるまでに、どのくらいかかりますか?
X-Ray に送信される追跡データは、サービスで受信されてから原則として 30 秒以内に取得、フィルタリングできます。

Q: 追跡データは、どれだけさかのぼってクエリを実行できますか? X-Ray に追跡データが保存される期間はどのくらいですか?
X-Ray では、直近 30 日間の追跡データが保存されます。したがって、過去 30 日間の追跡データに対してクエリを実行できます。

Q: 部分的な追跡しか表示されないことがあるのはなぜですか?
X-Ray ではできる限り完全な追跡情報を提示するよう処理が実行されます。しかし、状況によっては (接続の問題、セグメント受信の遅れなど)、X-Ray API からの追跡情報が部分的になる可能性があります。そのような場合、X-Ray では、追跡に不完全または部分的であることを示すタグが付けられます。

Q: アプリケーションのコンポーネントはそれぞれ独自の AWS アカウントで実行されています。X-Ray を使用して、複数の AWS アカウント間のデータを収集できますか?
はい。X-Ray エージェントでは、エージェントを実行するアカウントとは別のアカウントにデータをパブリッシュするロールを設定できます。そのため、アプリケーションのさまざまなコンポーネントからのデータを 1 つの中心的なアカウントにパブリッシュできます。

AWS X-Ray の料金の詳細を見る

料金表のページを見る
構築を始めましょう。
AWS X-Ray を開始する
ご不明な点がおありですか?
お問い合わせ