

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 로컬에서 X-Ray 대몬(daemon) 실행하기
<a name="xray-daemon-local"></a>

**참고**  
X-Ray SDK/데몬 유지 관리 공지 - 2026년 2월 25일에 AWS X-Ray SDKs/데몬은 유지 관리 모드로 전환되며, 여기서 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 컨테이너에서 로컬로 실행할 수 있습니다. 구성된 애플리케이션을 개발 및 테스트할 때 대몬(daemon)을 실행해 X-Ray로 추적 데이터를 전달합니다. [여기](xray-daemon.md#xray-daemon-downloading)의 지침에 따라 데몬을 다운로드한 다음 추출합니다.

로컬에서 실행할 때 데몬은 AWS SDK 자격 증명 파일(`.aws/credentials`사용자 디렉터리) 또는 환경 변수에서 자격 증명을 읽을 수 있습니다. 자세한 내용은 [대몬(daemon)에 X-Ray로 데이터를 전송할 권한 부여](xray-daemon.md#xray-daemon-permissions) 단원을 참조하십시오.

이 데몬은 포트 2000에서 UDP 데이터를 수신 대기합니다. 구성 파일 및 명령줄 옵션을 사용하여 포트 및 기타 옵션을 변경할 수 있습니다. 자세한 내용은 [AWS X-Ray 데몬 구성](xray-daemon-configuration.md) 단원을 참조하십시오.

## Linux에서 X-Ray 대몬(daemon) 실행
<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 대몬(daemon) 실행
<a name="xray-daemon-local-docker"></a>

도커 컨테이너에서 데몬을 로컬로 실행하기 위해 다음 텍스트를 `Dockerfile`이라는 파일로 저장합니다. Amazon ECR에서 전체 [이미지 예제](https://gallery.ecr.aws/xray/aws-xray-daemon)를 다운로드하십시오. 자세한 내용은 [대몬(daemon) 다운로드하기](xray-daemon.md#xray-daemon-downloading)를 참조하세요.

**Example 도커파일 — 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` – 터미널에서 대몬(daemon) 출력을 봅니다.
+ `-v ~/.aws/:/root/.aws/:ro` - AWS SDK 자격 증명을 읽을 수 있도록 컨테이너에 `.aws` 디렉터리에 대한 읽기 전용 액세스 권한을 부여합니다.
+ `AWS_REGION={{us-east-2}}` – `AWS_REGION` 환경 변수를 설정하여 대몬(daemon)에 어떤 리전을 사용할지 알립니다.
+ `--net=host` – 컨테이너를 `host` 네트워크에 연결합니다. 호스트 네트워크의 컨테이너는 포트를 게시하지 않고 서로 통신할 수 있습니다.
+ `-p 2000:2000/udp` – 컴퓨터의 UDP 포트 2000을 컨테이너의 동일한 포트로 매핑합니다. 동일한 네트워크의 컨테이너끼리 통신하는 데는 필요 없지만, 도커에서 실행되지 않는 애플리케이션이나 [명령줄](xray-api-sendingdata.md#xray-api-daemon)에서 데몬으로 세그먼트를 전송할 수 있게 됩니다.
+ `--name xray-daemon` – 임의의 이름을 생성하는 대신 컨테이너에 `xray-daemon`라는 이름을 지정합니다.
+ `-o` (이미지 이름 뒤) – 컨테이너 내에서 대몬(daemon)을 실행하는 진입점에 `-o` 옵션을 추가합니다. 이 옵션은 대몬(daemon)이 Amazon EC2 인스턴스 메타데이터를 읽지 못하도록 로컬 모드에서 실행하도록 지시합니다.

데몬을 중지하려면 `docker stop`을 사용합니다. `Dockerfile`을 변경하여 새 이미지를 빌드한 경우, 같은 이름으로 다른 컨테이너를 생성하려면 기존 컨테이너를 삭제해야 합니다. 컨테이너는 `docker rm`을 사용하여 삭제합니다.

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

## Windows에서 X-Ray 대몬(daemon) 실행
<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 대몬(daemon) 실행
<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 &
```