AWS X-Ray デーモン - AWS X-Ray

AWS X-Ray デーモン

注記

CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクス、ログ、トレースを収集できます。CloudWatch エージェントバージョン 1.300025.0 以降では、OpenTelemetry または X-Ray クライアント SDK からトレースを収集し、それらを X-Ray に送信できます。X-Ray デーモンまたは AWS Distro for OpenTelemetry (ADOT) Collector の代わりに CloudWatch エージェントを使用してトレースを収集すると、管理するエージェントの数を減らすのに役立ちます。詳細については、「CloudWatch ユーザーガイド」の「CloudWatch エージェント」のトピックを参照してください。

AWS X-Ray デーモンは、UDP ポート 2000 のトラフィックをリッスンし、未加工のセグメントデータを収集して AWS X-Ray API に中継するソフトウェアアプリケーションです。デーモンは AWS X-Ray SDK と連動し、SDK によって送信されたデータが X-Ray サービスに到達するように実行する必要があります。X-Ray デーモンは、オープンソースプロジェクトです。プロジェクトに従って、GitHub github.com/aws/aws-xray-daemon で問題とプルリクエストを送信できます。

AWS Lambda および AWS Elastic Beanstalk で、X-Ray を使用したこのようなサービスの統合を使用して、デーモンを実行します。Lambda は、サンプルリクエスト用に関数が呼び出される度に自動的にデーモンを実行します。Elastic Beanstalk では、XRayEnabled設定オプションを使用して、環境のインスタンスでデーモンを実行します。詳細については、以下を参照してください。

X-Ray デーモンをローカル、オンプレミス、またはその他の AWS のサービス で実行するには、X-Ray デーモンをダウンロードして実行しアクセス許可を付与して X-Ray にセグメントドキュメントをアップロードします。

デーモンのダウンロード

デーモンは、Amazon S3、Amazon ECR、または Docker Hub からダウンロードしてローカルで実行するか、起動時に Amazon EC2 インスタンスにインストールします。

Amazon S3
X-Ray デーモンのインストーラおよび実行ファイル

これらのリンクは、常にデーモンの最新の3.xリリースを指しています。特定のリリースをダウンロードするには、以下を実行します。

  • バージョン 3.3.0 より前のリリースをダウンロードする場合は、3.x をそのバージョン番号に置き換えます。例えば、2.1.0 と指定します。3.3.0 より前のバージョンでは、使用可能なアーキテクチャは arm64 のみです。例えば、2.1.0arm64 です。

  • バージョン 3.3.0 より後のリリースをダウンロードする場合は、3.x をそのバージョン番号に、arch をアーキテクチャタイプに置き換えます。

X-Ray アセットは、サポートされている各リージョンのバケットにレプリケートされます。最寄りのバケットまたは AWS リソースを使用するには、上記リンクのリージョンを対象のリージョンに置き換えます。

https://s3.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-3.x.rpm
Amazon ECR

バージョン 3.2.0 以降は、デーモンはAmazon ECRに掲載されています。イメージを引っ張る前にAmazon ECR パブリックレジストリにDocker クライアントを認証する必要があります。

次のコマンドを実行して、最新のリリース 3.x バージョンタグを引き出します。

docker pull public.ecr.aws/xray/aws-xray-daemon:3.x

以前のリリースまたはアルファ版は、3.xalphaまたは特定のバージョン番号に置き換えてダウンロードできます。本番環境では、アルファタグ付きのデーモンイメージを使用することは推奨されません。

Docker Hub

デーモンは、Docker Hubで見ることができます。次のコマンドを実行して、最新リリースの3.xバージョンをダウンロードします。

docker pull amazon/aws-xray-daemon:3.x

デーモンの以前のリリースは、3.x希望のバージョンに置き換えてリリースすることができます。

デーモンアーカイブの署名の確認

GPG 署名ファイルは、ZIP アーカイブで圧縮されたデーモンアセットで使用するために含まれています。ホストのパブリックキーは、次の場所にあります。aws-xray.gpg

公開鍵を使用して、デーモンの ZIP アーカイブがオリジナルで変更されていないことを確認できます。まず、GnuPG で公開鍵をインポートします。

パブリックキーをインポートするには
  1. 公開鍵をダウンロードします。

    $ BUCKETURL=https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2 $ wget $BUCKETURL/xray-daemon/aws-xray.gpg
  2. 公開鍵をキーリングにインポートします。

    $ gpg --import aws-xray.gpg gpg: /Users/me/.gnupg/trustdb.gpg: trustdb created gpg: key 7BFE036BFE6157D3: public key "AWS X-Ray <aws-xray@amazon.com>" imported gpg: Total number processed: 1 gpg: imported: 1

インポートされたキーを使用してデーモンの ZIP アーカイブの署名を確認します。

アーカイブの署名を確認するには
  1. アーカイブおよび署名ファイルをダウンロードします。

    $ BUCKETURL=https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2 $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip.sig
  2. gpg --verify を実行して署名を確認します。

    $ gpg --verify aws-xray-daemon-linux-3.x.zip.sig aws-xray-daemon-linux-3.x.zip gpg: Signature made Wed 19 Apr 2017 05:06:31 AM UTC using RSA key ID FE6157D3 gpg: Good signature from "AWS X-Ray <aws-xray@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EA6D 9271 FBF3 6990 277F 4B87 7BFE 036B FE61 57D3

信頼性に関する警告に注意します。自分や信頼する人が署名した場合、鍵は信頼されます。これは、署名が無効であることを意味するものではなく、公開鍵を確認していないことを意味します。

デーモンを実行する

コマンドラインからローカルでデーモンを実行します。ローカルモードで実行するには -o オプションを、リージョンを設定するには -n を使用します。

~/Downloads$ ./xray -o -n us-east-2

プラットフォーム固有の詳細な手順については、以下のトピックを参照してください。

コマンドラインオプションまたは設定ファイルを使用して、デーモンの動作をさらにカスタマイズできます。詳細については、「AWS X-Ray デーモンを設定する」を参照してください。

X-Rayにデータを送信するアクセス権限をデーモンに付与する

X-Ray デーモンは AWS SDK を使用してトレースデータを X-Ray にアップロードするため、許可された AWS 認証情報が必要です。

Amazon EC2 では、デーモンはインスタンスのインスタンスプロファイルのロールを自動的に使用します。デーモンをローカルで実行するために必要な認証情報については、「アプリケーションをローカルで実行する」を参照してください。

1 つ以上の場所 (認証情報ファイル、インスタンスプロファイル、または環境変数) で認証情報を指定する場合、SDK プロバイダーチェーンは、使用される認証情報を決定します。SDK に認証情報を提供する方法の詳細については、 SDK for Go 開発者ガイドAWS認証情報の指定を参照してください。

デーモンの認証情報が属している IAM ロールまたはユーザーには、サービスにデータを書き込むアクセス権限が必要です。

  • Amazon EC2 でデーモンを使用するには、新しいインスタンスプロファイルのロールを作成するか、既存のロールに管理ポリシーを追加します。

  • Elastic Beanstalk でデーモンを使用するには、管理ポリシーを Elastic Beanstalk のデフォルトのインスタンスプロファイルのロールに追加します。

  • デーモンをローカルで実行するには、「アプリケーションをローカルで実行する」を参照してください。

詳細については、「AWS X-Ray のためのアイデンティティおよびアクセス管理」を参照してください。

X-Ray デーモンログ

デーモンは、現在の設定に関する情報および AWS X-Ray に送信するセグメントを出力します。

2016-11-24T06:07:06Z [Info] Initializing AWS X-Ray daemon 2.1.0 2016-11-24T06:07:06Z [Info] Using memory limit of 49 MB 2016-11-24T06:07:06Z [Info] 313 segment buffers allocated 2016-11-24T06:07:08Z [Info] Successfully sent batch of 1 segments (0.123 seconds) 2016-11-24T06:07:09Z [Info] Successfully sent batch of 1 segments (0.006 seconds)

デフォルトでは、デーモンはログを STDOUT に出力します。デーモンをバックグラウンドで実行する場合は、--log-file コマンドラインオプションまたは設定ファイルを使用してログファイルパスを設定します。ログレベルを設定し、ログローテーションを無効にすることもできます。手順については、「AWS X-Ray デーモンを設定する」を参照してください。

Elastic Beanstalk では、プラットフォームはデーモンログの場所を設定します。詳細については、「AWS Elastic Beanstalk で X-Ray デーモンを実行します」を参照してください。