AWS X-Ray
開発者ガイド

AWS X-Ray デーモン

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 サービスで実行するには、Amazon S3 からダウンロードして実行し、アクセス許可を付与して X-Ray にセグメントドキュメントをアップロードします。

デーモンのダウンロード

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

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

これらのリンクは、常にデーモンの最新のリリースをポイントします。特定のリリースをダウンロードするには、3.x を対象のバージョン番号に置き換えます。たとえば、2.1.0 と指定します。

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

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

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

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

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

パブリックキーをインポートするには

  1. 公開鍵をダウンロードします。

    $ BUCKETURL=https://s3.dualstack.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.dualstack.us-east-2.amazonaws.com/aws-xray-assets.us-east-2 $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.0.0.zip $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.0.0.zip.sig
  2. gpg --verify を実行して署名を確認します。

    $ gpg --verify aws-xray-daemon-linux-3.0.0.zip.sig aws-xray-daemon-linux-3.0.0.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 では、デーモンはインスタンスのインスタンスプロファイルのロールを自動的に使用します。ローカルで、credentials という名前のフォルダ内のユーザーディレクトリにある .aws という名前のファイルにアクセスキーを保存します。

例 ~/.aws/credentials

[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

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

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

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

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

  • ローカルでデーモンを実行するには、IAM ユーザーを作成し、そのアクセスキーをコンピュータに保存します。

詳細については、「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 デーモンを実行する」を参照してください。