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 インスタンスにインストールします。
デーモンアーカイブの署名の確認
GPG 署名ファイルは、ZIP アーカイブで圧縮されたデーモンアセットで使用するために含まれています。ホストのパブリックキーは、次の場所にあります。aws-xray.gpg
公開鍵を使用して、デーモンの ZIP アーカイブがオリジナルで変更されていないことを確認できます。まず、GnuPG
パブリックキーをインポートするには
-
公開鍵をダウンロードします。
$
BUCKETURL=https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2
$wget $BUCKETURL/xray-daemon/aws-xray.gpg
-
公開鍵をキーリングにインポートします。
$
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 アーカイブの署名を確認します。
アーカイブの署名を確認するには
-
アーカイブおよび署名ファイルをダウンロードします。
$
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
-
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
プラットフォーム固有の詳細な手順については、以下のトピックを参照してください。
-
Linux (ローカル) – Linux で X-Ray デーモンを実行する
-
Windows (ローカル) – Windows で X-Ray デーモンを実行する
-
Elastic Beanstalk – AWS Elastic Beanstalk で X-Ray デーモンを実行します
-
Amazon EC2 – Amazon EC2 での X-Ray デーモンの実行
-
Amazon ECS – Amazon ECS での X-Ray デーモンの実行
コマンドラインオプションまたは設定ファイルを使用して、デーモンの動作をさらにカスタマイズできます。詳細については、「AWS X-Ray デーモンを設定する」を参照してください。
X-Rayにデータを送信するアクセス権限をデーモンに付与する
X-Ray デーモンは AWS SDK を使用してトレースデータを X-Ray にアップロードするため、許可された AWS 認証情報が必要です。
Amazon EC2 では、デーモンはインスタンスのインスタンスプロファイルのロールを自動的に使用します。デーモンをローカルで実行するために必要な認証情報については、「アプリケーションをローカルで実行する」を参照してください。
1 つ以上の場所 (認証情報ファイル、インスタンスプロファイル、または環境変数) で認証情報を指定する場合、SDK プロバイダーチェーンは、使用される認証情報を決定します。SDK に認証情報を提供する方法の詳細については、 SDK for Go 開発者ガイド
デーモンの認証情報が属している 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 デーモンを実行します」を参照してください。