

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

# ローカルで X-Ray; デーモンを実行する
<a name="xray-daemon-local"></a>

**注記**  
X-Ray SDK/デーモンメンテナンス通知 – 2026 年 2 月 25 日に、 AWS X-Ray SDKs/Daemon はメンテナンスモードに移行します。 AWS は、X-Ray SDK とデーモンのリリースをセキュリティ上の問題にのみ対処するように制限します。サポートタイムラインの詳細については、「[X-Ray SDK とデーモンのサポートタイムライン](xray-sdk-daemon-timeline.md)」を参照してください。OpenTelemetry に移行することをお勧めします。OpenTelemetry への移行の詳細については、「[X-Ray による計装から OpenTelemetry による計装への移行](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html)」を参照してください。

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

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

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

## Linux で X-Ray デーモンを実行する
<a name="xray-daemon-local-linux"></a>

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

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

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

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

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

```
~$ pkill xray
```

## Docker コンテナで X-Ray デーモンを実行する
<a name="xray-daemon-local-docker"></a>

Docker コンテナでデーモンをローカルで実行するには、`Dockerfile` という名前のファイルに次のテキストを保存します。Amazon ECR で、完全な[イメージ例](https://gallery.ecr.aws/xray/aws-xray-daemon)をダウンロードします。詳細については、「[デーモンのダウンロード](xray-daemon.md#xray-daemon-downloading)」を参照してください。

**Example 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-2` – `AWS_REGION`環境変数を設定して、使用するリージョンをデーモンに指定します。
+ `--net=host` – コンテナを `host` ネットワークにアタッチします。ホストネットワーク上のコンテナは、ポートを公開しなくても相互に通信できます。
+ `-p 2000:2000/udp` – マシン上の UDP ポート 2000 をコンテナの同じポートにマップします。これは、同じネットワークのコンテナが通信するために必要ではありませんが、これにより、[コマンドライン](xray-api-sendingdata.md#xray-api-daemon)または 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 デーモンを実行する
<a name="xray-daemon-local-windows"></a>

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

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

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

**Example 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 デーモンを実行する
<a name="xray-daemon-local-osx"></a>

コマンドラインからデーモンの実行可能ファイルを実行できます。ローカルモードで実行するには `-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 &
```