

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

# Amazon ECS での X-Ray デーモンの実行
<a name="xray-daemon-ecs"></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)」を参照してください。

Amazon ECS で、X-Ray デーモンを実行する Docker イメージを作成し、それを Docker イメージリポジトリにアップロードして、 クラスターにデプロイできます。タスク定義ファイルでポートマッピングとネットワークモード設定を使用すると、アプリケーションがデーモンコンテナと通信できるようになります。

## 公式 Docker イメージの使用
<a name="xray-daemon-ecs-image"></a>

X-Ray は、アプリケーションと一緒にデプロイできる Amazon ECRのDocker [コンテナイメージ](https://gallery.ecr.aws/xray/aws-xray-daemon)を提供します。詳細については、「[デーモンのダウンロード](xray-daemon.md#xray-daemon-downloading)」を参照してください。

**Example タスク定義**  

```
    {
      "name": "xray-daemon",
      "image": "amazon/aws-xray-daemon",
      "cpu": 32,
      "memoryReservation": 256,
      "portMappings" : [
          {
              "hostPort": 0,
              "containerPort": 2000,
              "protocol": "udp"
          }
       ]
    }
```

## Docker イメージの作成と構築
<a name="xray-daemon-ecs-build"></a>

カスタム設定では、独自の Docker イメージの定義が必要になる場合があります。

タスクロールに管理ポリシーを追加して、デーモンにトレースデータを X-Ray にアップロードするアクセス許可を与えます。詳細については、「[X-Rayにデータを送信するアクセス権限をデーモンに付与する](xray-daemon.md#xray-daemon-permissions)」を参照してください。

次のいずれかの Dockerfiles を使用して、デーモンを実行するイメージを作成します。

**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
```

**注記**  
マルチコンテナ環境のループバックをリッスンするためのバインディングアドレスを指定するには、フラグ `-t` および `-b` が必要です。

**Example Dockerfile - Ubuntu**  
Debian から派生した OS では、認証機関 (CA) の証明書をインストールして、インストーラのダウンロード時の問題を回避します。  

```
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y --force-yes --no-install-recommends apt-transport-https curl ca-certificates wget && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
RUN wget https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.deb
RUN dpkg -i aws-xray-daemon-3.x.deb
ENTRYPOINT ["/usr/bin/xray", "--bind=0.0.0.0:2000", "--bind-tcp=0.0.0.0:2000"]
EXPOSE 2000/udp
EXPOSE 2000/tcp
```

タスク定義では、使用するネットワーキングモードによって設定が異なります。デフォルトはブリッジネットワーキングで、デフォルトの VPC で使用できます。ブリッジネットワークで、X-Ray SDK に参照先のコンテナポートを指示し、ホストポートを設定するように `AWS_XRAY_DAEMON_ADDRESS` 環境変数を設定します。たとえば、UDP ポート 2000 を発行し、アプリケーションコンテナからデーモンコンテナへのリンクを作成します。

**Example タスク定義**  

```
    {
      "name": "xray-daemon",
      "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/xray-daemon",
      "cpu": 32,
      "memoryReservation": 256,
      "portMappings" : [
          {
              "hostPort": 0,
              "containerPort": 2000,
              "protocol": "udp"
          }
       ]
    },
    {
      "name": "scorekeep-api",
      "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/scorekeep-api",
      "cpu": 192,
      "memoryReservation": 512,
      "environment": [
          { "name" : "AWS_REGION", "value" : "us-east-2" },
          { "name" : "NOTIFICATION_TOPIC", "value" : "arn:aws:sns:us-east-2:123456789012:scorekeep-notifications" },
          { "name" : "AWS_XRAY_DAEMON_ADDRESS", "value" : "xray-daemon:2000" }
      ],
      "portMappings" : [
          {
              "hostPort": 5000,
              "containerPort": 5000
          }
      ],
      "links": [
        "xray-daemon"
      ]
    }
```

VPC のプライベートサブネットでクラスターを実行する場合は、[`awsvpc` ネットワークモード](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)を使用して、Elastic Network Interface (ENI) をコンテナにアタッチできます。これにより、リンクの使用を避けることができます。ポートマッピング、リンク、および `AWS_XRAY_DAEMON_ADDRESS` 環境変数でホストポートを省略します。

**Example VPC タスク定義**  

```
{
    "family": "scorekeep",
    "networkMode":"awsvpc",
    "containerDefinitions": [
        {
          "name": "xray-daemon",
          "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/xray-daemon",
          "cpu": 32,
          "memoryReservation": 256,
          "portMappings" : [
              {
                  "containerPort": 2000,
                  "protocol": "udp"
              }
          ]
        },
        {
            "name": "scorekeep-api",
            "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/scorekeep-api",
            "cpu": 192,
            "memoryReservation": 512,
            "environment": [
                { "name" : "AWS_REGION", "value" : "us-east-2" },
                { "name" : "NOTIFICATION_TOPIC", "value" : "arn:aws:sns:us-east-2:123456789012:scorekeep-notifications" }
            ],
            "portMappings" : [
                {
                    "containerPort": 5000
                }
            ]
        }
    ]
}
```

## Amazon ECS コンソールでのコマンドラインオプションの構成
<a name="xray-daemon-ecs-cmdline"></a>

コマンドラインオプションは、イメージの設定ファイル内の競合する値を上書きします。コマンドラインオプションは、一般的にローカルテストに使用されますが、環境変数を設定する際の便宜上、または起動プロセスを制御するために使用することもできます。

コマンドラインオプションを追加することで、コンテナに渡される Docker `CMD` が更新されます。詳細については、[Docker run リファレンス](https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults)を参照してください。

**コマンドラインオプションを設定するには**

1. Amazon ECS クラシックコンソール ([https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/)) を開きます。

1. ナビゲーションバーから、タスク定義を含むリージョンを選択します。

1. ナビゲーションペインで、**[タスク定義]** を選択します。

1. [**Task Definitions**] ページで、変更するタスク定義の左側にあるボックスをオンにし、[**Create new revision**] を選択します。

1. [**Create new revision of Task Definition (タスク定義の新しいリビジョンを作成)**] ページで、コンテナを選択します。

1. [**ENVIRONMENT (環境)**] セクションで、コマンドラインオプションのカンマ区切りリストを [**Command (コマンド)**] フィールドに追加します。

1. **[更新]** を選択します。

1. 情報を確認し、[**Create**] を選択します。

次の例は、`RoleARN` オプションのコマンドラインオプションをカンマで区切って記述する方法を示しています。`RoleARN` オプションは、セグメントを別のアカウントにアップロードするために、指定された IAM ロール を引き受けます。

**Example**  

```
--role-arn, arn:aws:iam::123456789012:role/xray-cross-account
```

X-Ray で使用可能なコマンドラインオプションの詳細については、[AWS X-Ray 「 デーモンの設定](xray-daemon-configuration.md)」を参照してください。