AWS X-Ray のユースケースと要件 - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS X-Ray のユースケースと要件

X-Ray SDK およびAWSサービス統合により、ローカルまたはで実行されているアプリケーションへのリクエストを計測できます。AWSAmazon EC2、Elastic Beanstalk、Amazon ECS、AWS Lambda。

アプリケーションコードを計測するには、X-Ray SDK。SDK は受信および送信リクエストに関するデータを記録し、それを X-Ray デーモンに送信します。デーモンはデータをバッチで X-Ray に中継します。たとえば、アプリケーションが DynamoDB テーブルからユーザー情報を取得するために DynamoDB を呼び出す場合、X-Ray SDK はクライアントリクエストと DynamoDB ダウンストリーム呼び出しの両方のデータを記録します。


      X-Ray SDK は、クライアントリクエストと DynamoDB へのダウンストリーム呼び出しの両方のデータを記録します。

その他AWSサービスを X-Ray と統合することで、アプリケーションのコンポーネントの計測が簡単になります。サービス統合では、受信リクエストにトレースヘッダーを追加したり、トレースデータを X-Ray に送信したり、X-Ray デーモンを実行したりできます。例:AWS Lambdaは、リクエストに関するトレースデータを Lambda 関数に送信したり、X-Ray SDK を使用しやすくするためにワーカーで X-Ray デーモンを実行したりできます。


      X-Ray SDK とのLambda 統合

多くの計測シナリオで必要となるのは、設定の変更のみです。たとえば、すべての受信 HTTP リクエストとAWSサービスを Java アプリケーションが作成します。これを行うには、X-Ray SDK for Java のフィルタをサーブレット設定に追加し、AWS SDK for Javaビルド依存関係としてのInstrumentorサブモジュール。高度な計測の場合、アプリケーションコードを変更して、SDK から X-Ray に送信されるデータをカスタマイズしたり注釈を加えたりできます。

サポートされている言語とフレームワーク

AWS X-Ray では、さまざまな言語、フレームワークおよびプラットフォームをサポートするツールと統合を提供しています。

C#

Windows Server で、.NET 用 X-Ray SDK を使用して、受信リクエストを計測できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント OnAWS Lambdaでは、Lambda X-Ray 統合を使用して受信リクエストを計測できます。

詳細については、「AWS X-Ray SDK for .NET」を参照してください。

  • Windows Server の .NETメッセージハンドラーの追加HTTP 設定に追加して、受信リクエストを計測します。

  • C# .NET Core onAWS Lambda— Lambda 関数設定の X-Ray を有効にし、受信リクエストを計測します。

Go

すべての Go アプリケーションで、X-Ray SDK for Go クラスを使用して、受信リクエストを計測できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント 自動リクエスト計測は、HTTP ハンドラーを使用するアプリケーションで使用できます。

OnAWS Lambdaでは、Lambda X-Ray 統合を使用して受信リクエストを計測できます。完全な計測のためには、Go 用 X-Ray SDK を関数に追加します。

詳細については、「Go 対応 AWS X-Ray SDK」を参照してください。

  • Go ウェブアプリケーション— を使用するSDK for Go X-Rayを使用して、ルートで受信リクエストを処理します。

  • Go on onAWS Lambda— Lambda 関数設定の X-Ray を有効にし、受信リクエストを計測します。Go 用 X-Ray SDK の追加AWSSDK、HTTP、SQL クライアントを読み込みます。

Java

すべての Java アプリケーションで、X-Ray SDK for Java クラスを使用して、受信リクエストを計測できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント 自動リクエスト計測は、Java サーブレットをサポートするフレームワークで利用できます。自動 SDK 計測は、Instrumentor サブモジュールを通して使用できます。

OnAWS Lambdaでは、Lambda X-Ray 統合を使用して受信リクエストを計測できます。完全な計測のためには、Java 用 X-Ray SDK を関数に追加します。

詳細については、「AWS X-Ray SDK for Java」を参照してください。

  • Tomcatサーブレット・フィルタの追加をデプロイメント記述子 (web.xml) を使用して、受信リクエストを計測します。

  • Spring ブーツサーブレット・フィルタの追加に E メールを送信しますWebConfigクラスを使用して、受信リクエストを計測します。

  • Java on JavaAWS Lambda— Lambda 関数で X-Ray を有効にし、受信リクエストを計測します。Java 用 X-Ray SDK を計測しますAWSSDK、HTTP、SQL クライアントを読み込みます。

  • その他のフレームワーク— フレームワークでサーブレットがサポートされている場合はサーブレットフィルタを追加するか、受信リクエストごとに手動でセグメントを作成します。

Node.js

すべての Node.js アプリケーションで、X-Ray SDK for Node.js クラスを使用して、受信リクエストを計測できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント 自動リクエスト計測は、Express および Restify フレームワークを使用するアプリケーションで使用できます。

OnAWS Lambdaでは、Lambda X-Ray 統合を使用して受信リクエストを計測できます。完全な計測のためには、Node.js 用 X-Ray SDK を関数に追加します。

詳細については、「AWS The X-Ray SDK for Node.js」を参照してください。

  • Express または RestifyX-Ray SDK for Node.js着信リクエストを計測します。

  • 上の Node.jsAWS Lambda— Lambda 関数で X-Ray を有効にし、受信リクエストを計測します。The X-Ray SDK for Node.jsAWSSDK、HTTP、SQL クライアント

  • その他のフレームワーク— 受信リクエストごとに、手動でセグメントを作成します。

Python

すべての Python アプリケーションで、X-Ray SDK for Python クラスを使用して、受信リクエストを計測できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント 自動リクエスト計測は、Django および Flask フレームワークを使用するアプリケーションで使用できます。

OnAWS Lambdaでは、Lambda X-Ray 統合を使用して受信リクエストを計測できます。完全な計測のためには、Python 用 X-Ray SDK を関数に追加します。

詳細については、「Python 用 AWS X-Ray SDK」を参照してください。

  • Django または FlaskX-Ray SDK for Python着信リクエストを計測します。

  • Python onAWS Lambda— Lambda 関数設定の X-Ray を有効にし、受信リクエストを計測します。The X-Ray SDK for PythonAWSSDK、HTTP、SQL クライアントを読み込みます。

  • その他のフレームワーク— 受信リクエストごとに、手動でセグメントを作成します。

Ruby

すべての Ruby アプリケーションで、受信リクエストを計測する X-Ray SDK for Ruby を使用できます。AWSSDK クライアント、SQL クライアント、および HTTP クライアント 自動リクエスト計測は、Rails フレームワークを使用するアプリケーションで使用できます。

使用している言語またはプラットフォームで X-Ray SDK を使用できない場合は、トレースデータを手動で生成して、X-Ray デーモンまたは直接X-Ray API

サポート対象AWSサービス

複数AWSサービスが提供するX-Ray 統合統合サービスさまざまなレベルの統合を提供し、受信リクエストのサンプリングとヘッダーの追加、X-Ray デーモンの実行、トレースデータの自動送信を含む。

  • アクティブ計測— 受信リクエストをサンプリングして計測します。

  • パッシブ計測— 別のサービスでサンプリングされたリクエストを計測します。

  • リクエストのトレース— すべての受信リクエストにトレースヘッダーを追加して、ダウンストリーム伝達します。

  • ツーリング— X-Ray デーモンを実行して X-Ray SDK からセグメントを受信します。

以下のサービスでは X-Ray の統合が提供されます。

  • AWS Lambda— すべてのランタイムの受信リクエストのアクティブ計測およびパッシブ計測。AWS Lambdaはサービスマップに 2 つのノードを追加します。1 つはAWS Lambdaサービスで 1 つは関数用です。インストルメンテーションを有効にすると、AWS Lambdaまた、Java ランタイムおよび Node.js ランタイムで X-Ray デーモンを実行して X-Ray SDK で使用します。詳細はこちら

  • Amazon API Gateway— アクティブおよびパッシブ計測。API Gateway はサンプリングルールを使用して記録するリクエストを決定し、ゲートウェイステージ用のノードをサービスマップに追加します。詳細はこちら

  • Elastic Load Balancing— アプリケーションロードバランサーのトレースリクエストです。アプリケーションロードバランサーはトレース ID をリクエストヘッダーに追加してからターゲットグループに送信します。詳細はこちら

  • AWS Elastic Beanstalk— ツーリング。Elastic Beanstalk には以下のプラットフォームで X-Ray デーモンが含まれています。

    • Java SE— 2.3.0 以降の設定

    • Tomcat— 2.4.0 以降の設定

    • Node.js— 3.2.0 以降の設定

    • Windows Server— Windows Server Core 以外、2016 年 12 月 9 日以降にリリースされたすべての設定。

    Elastic Beanstalk コンソールを使用して、これらのプラットフォームでデーモンを実行するように Elastic Beanstalk に指示を出すか、XRayEnabledオプションでaws:elasticbeanstalk:xray名前空間。詳細はこちら

  • Amazon EventBridge— パッシブ計測。EventBridge にイベントを発行するサービスが X-Ray SDK でインストルメントされている場合、イベントターゲットはトレーシングヘッダーを受け取り、元のトレース ID を引き続き伝播できます。詳細はこちら

  • Amazon Simple Notification Service— パッシブ計測。Amazon SNS パブリッシャーが X-Ray SDK を使用してクライアントをトレースする場合、サブスクライバーはトレースヘッダーを取得し、同じトレース ID を持つパブリッシャーからの元のトレースを継続して伝達できます。詳細はこちら

  • Amazon Simple Queue Service— パッシブ計測。サービスが X-Ray SDK を使用してリクエストをトレースする場合、Amazon SQS はトレースヘッダーを送信し、整合性のあるトレース ID を持つコンシューマーに、送信者から元のトレースを伝達し続けます。詳細はこちら

コードおよび設定の変更

コードに対して機能を変更をすることなく、大量のトレースデータを生成できます。フロントエンドおよびダウンストリーム呼び出しの詳細なトレースは、構築およびデプロイ時間を最小限変更するだけで設定できます。

コードおよび設定変更の例

  • AWSリソース設定— 変更AWSリソース設定を使用して、Lambda 関数へのリクエストを計測します。Elastic Beanstalk 環境のインスタンスで X-Ray デーモンを実行するには、オプション設定を変更します。

  • ビルド設定— X-Ray SDK for Java サブモジュールをコンパイル時間依存関係として、すべてのダウンストリームリクエストをAWSサービス、および Amazon DynamoDB テーブル、Amazon SQS キュー、Amazon S3 バケットなどのリソースに送信できます。

  • アプリケーションの設定— 受信 HTTP リクエストを計測するには、Java アプリケーションにサーブレットフィルタを追加するか、X-Ray SDK for Node.js ミドルウェアとして Express アプリケーションで使用します。サンプリングルールを変更してプラグインを有効にし、Amazon EC2、Amazon ECS、およびAWS Elastic Beanstalkアプリケーションを実行するリソースです。

  • クラスまたはオブジェクトの設定— 送信 HTTP 呼び出しを Java で計測するには、X-Ray SDK for Java バージョンのHttpClientBuilderの代わりに Apache.org のバージョンです。

  • 機能の変更— リクエストハンドラをAWSSDK クライアントを計測して、AWSのサービス。サブセグメントを作成してダウンストリーム呼び出しをグループ化し、注釈またはメタデータを使用してセグメントにデバッグ情報を追加します。