ローカルで X-Ray; デーモンを実行する - AWS X-Ray

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

ローカルで X-Ray; デーモンを実行する

AWS X-Ray デーモンは、Linux、MacOS、Windows、または Docker コンテナでローカルに実行できます。実装されたアプリケーションを開発してテストするときに、デーモンを実行してトレースデータを X-Ray に中継します。ここに示す手順を使用して、デーモンをダウンロードして解凍します。

ローカルで実行する場合、デーモンは認証情報ファイル (.aws/credentialsユーザーディレクトリの) AWS SDKまたは環境変数から認証情報を読み取ることができます。詳細については、「X-Rayにデータを送信するアクセス権限をデーモンに付与する」を参照してください。

デーモンはポート 2000 でUDPデータをリッスンします。ポートおよびその他のオプションは、設定ファイルとコマンドラインオプションを使用して変更できます。詳細については、「AWS X-Ray デーモンの設定」を参照してください。

Linux で X-Ray デーモンを実行する

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

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

バックグラウンドでデーモンを実行するには、& を使用します。

~/xray-daemon$ ./xray -o -n us-east-2 &

pkill を使用してバックグラウンドで実行されるデーモンプロセスを終了します。

~$ pkill xray

Docker コンテナで X-Ray デーモンを実行する

Docker コンテナでデーモンをローカルで実行するには、Dockerfile という名前のファイルに次のテキストを保存します。Amazon で完全なサンプルイメージをダウンロードしますECR。詳細については、「デーモンのダウンロード」を参照してください。

例 Dockerfile — Amazon Linux
FROM amazonlinux RUN yum install -y unzip RUN curl -o daemon.zip https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip RUN unzip daemon.zip && cp xray /usr/bin/xray ENTRYPOINT ["/usr/bin/xray", "-t", "0.0.0.0:2000", "-b", "0.0.0.0:2000"] EXPOSE 2000/udp EXPOSE 2000/tcp

docker build を使用してコンテナイメージを構築します。

~/xray-daemon$ docker build -t xray-daemon .

docker run を使用してコンテナでイメージを実行します。

~/xray-daemon$ docker run \ --attach STDOUT \ -v ~/.aws/:/root/.aws/:ro \ --net=host \ -e AWS_REGION=us-east-2 \ --name xray-daemon \ -p 2000:2000/udp \ xray-daemon -o

このコマンドでは、以下のオプションを使用します。

  • --attach STDOUT – ターミナルにデーモンからの出力を表示します。

  • -v ~/.aws/:/root/.aws/:ro – コンテナに .aws ディレクトリへの読み取り専用アクセスを許可して、認証情報を読み取らせます AWS SDK。

  • AWS_REGION=us-east-2AWS_REGION環境変数を設定して、使用するリージョンをデーモンに指定します。

  • --net=host – コンテナを host ネットワークにアタッチします。ホストネットワーク上のコンテナは、ポートを公開しなくても相互に通信できます。

  • -p 2000:2000/udp – マシンのUDPポート 2000 をコンテナの同じポートにマッピングします。これは、同じネットワークのコンテナが通信するために必要ではありませんが、これにより、コマンドラインまたは Docker で実行されていないアプリケーションからセグメントをデーモンに送信できます。

  • --name xray-daemon – ランダムな名前を生成する代わりに、コンテナに xray-daemon という名前を付けます。

  • -o (イメージ名の後ろ) – コンテナ内でデーモンを実行するエントリポイントに -o オプションを追加します。このオプションは、デーモンが Amazon EC2インスタンスメタデータを読み取ろうとしないように、ローカルモードで実行するようにデーモンに指示します。

デーモンを停止するには、docker stop を使用します。Dockerfile を変更して新しいイメージを作成する場合は、同じ名前の別のコンテナを作成する前に、既存のコンテナを削除する必要があります。docker rm を使用してコンテナを削除します。

$ docker stop xray-daemon $ docker rm xray-daemon

Windows で X-Ray デーモンを実行する

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

> .\xray_windows.exe -o -n us-east-2

PowerShell スクリプトを使用して、デーモンのサービスを作成して実行します。

例 PowerShell スクリプト - Windows
if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ){ sc.exe stop AWSXRayDaemon sc.exe delete AWSXRayDaemon } if ( Get-Item -path aws-xray-daemon -ErrorAction SilentlyContinue ) { Remove-Item -Recurse -Force aws-xray-daemon } $currentLocation = Get-Location $zipFileName = "aws-xray-daemon-windows-service-3.x.zip" $zipPath = "$currentLocation\$zipFileName" $destPath = "$currentLocation\aws-xray-daemon" $daemonPath = "$destPath\xray.exe" $daemonLogPath = "C:\inetpub\wwwroot\xray-daemon.log" $url = "https://s3.dualstack.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip" Invoke-WebRequest -Uri $url -OutFile $zipPath Add-Type -Assembly "System.IO.Compression.Filesystem" [io.compression.zipfile]::ExtractToDirectory($zipPath, $destPath) sc.exe create AWSXRayDaemon binPath= "$daemonPath -f $daemonLogPath" sc.exe start AWSXRayDaemon

OS X で X-Ray デーモンを実行する

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

~/xray-daemon$ ./xray_mac -o -n us-east-2

バックグラウンドでデーモンを実行するには、& を使用します。

~/xray-daemon$ ./xray_mac -o -n us-east-2 &

ターミナル終了時にデーモンが終了されるのを防止するには、nohup を使用します。

~/xray-daemon$ nohup ./xray_mac &