

AWS App Runner は、2026 年 4 月 30 日以降、新規のお客様に公開されなくなります。App Runner を使用する場合は、その日付より前にサインアップします。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[AWS App Runner  可用性の変更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)」を参照してください。

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

# X-Ray を使用した App Runner アプリケーションのトレース
<a name="monitor-xray"></a>

AWS X-Ray は、アプリケーションが処理するリクエストに関するデータを収集するサービスであり、そのデータを表示、フィルタリング、インサイトを取得して、問題や最適化の機会を特定するために使用できるツールを提供します。アプリケーションへのトレースされたリクエストについては、リクエストとレスポンスだけでなく、アプリケーションがダウンストリーム AWS リソース、マイクロサービス、データベース、HTTP ウェブ APIs に対して行う呼び出しに関する詳細情報も確認できます。

X-Ray は、クラウドアプリケーションを強化する AWS リソースからのトレースデータを使用して、詳細なサービスグラフを生成します。サービスグラフには、フロントエンドサービスが呼び出してリクエストを処理しデータを維持するクライアント、フロントエンドサービス、バックエンドサービスが表示されます。サービスグラフを使用して、ボトルネック、レイテンシーのスパイク、その他の問題を識別して解決し、アプリケーションのパフォーマンスを向上させます。

X-Ray の詳細については、「[AWS X-Ray デベロッパーガイド](https://docs.aws.amazon.com/xray/latest/devguide/)」を参照してください。

![\[App Runner サービスの X-Ray サービスマップの例\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/xray-example.png)


## トレース用にアプリケーションを計測する
<a name="monitor-xray.instrument"></a>

ポータブルテレメトリ仕様である [OpenTelemetry](https://github.com/open-telemetry) を使用して、App Runner サービスアプリケーションをトレース用に計測します。現時点では、App Runner は [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) (ADOT) をサポートしています。ADOT は、 AWS サービスを使用してテレメトリ情報を収集して表示する OpenTelemetry 実装です。X-Ray はトレースコンポーネントを実装します。

アプリケーションで使用している特定の ADOT SDK に応じて、ADOT は*自動*と*手動*の 2 つの計測アプローチをサポートします。SDK を使用した計測の詳細については、[ADOT ドキュメント](https://aws-otel.github.io/docs/introduction)を参照し、ナビゲーションペインで SDK を選択します。

### ランタイム設定
<a name="monitor-xray.instrument.setup"></a>

 App Runner サービスアプリケーションをトレース用に計測するための一般的なランタイムセットアップ手順は次のとおりです。

**ランタイムのトレースを設定するには**

1.  [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) (ADOT) のランタイムに用意されている手順に従って、アプリケーションを計測します。

1.  ソースコードリポジトリを使用している場合は `apprunner.yaml`ファイルの `build`セクションに、コンテナイメージを使用している場合は Dockerfile に必要な`OTEL`依存関係をインストールします。

1.  ソースコードリポジトリを使用している場合は `apprunner.yaml` ファイルで、コンテナイメージを使用している場合は Dockerfile で環境変数を設定します。  
**Example 環境変数**  
**注記**  
次の の例では、 `apprunner.yaml` ファイルに追加する重要な環境変数を一覧表示します。コンテナイメージを使用している場合は、これらの環境変数を Dockerfile に追加します。ただし、各ランタイムは独自の特異度を持つことができ、次のリストにさらに環境変数を追加する必要がある場合があります。ランタイム固有の手順とランタイム用にアプリケーションを設定する方法の例の詳細については、[AWS 「 Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction)」を参照して、*「開始方法」の「ランタイム*」を参照してください。

   ```
   env:
       - name: OTEL_PROPAGATORS
         value: xray
       - name: OTEL_METRICS_EXPORTER
         value: none
       - name: OTEL_EXPORTER_OTLP_ENDPOINT
         value: http://localhost:4317  
       - name: OTEL_RESOURCE_ATTRIBUTES
         value: 'service.name=example_app'
   ```
**注記**  
 `OTEL_METRICS_EXPORTER=none` App Runner Otel コレクターはメトリクスのログ記録を受け入れないため、 は App Runner にとって重要な環境変数です。メトリクストレースのみを受け入れます。

### ランタイムセットアップの例
<a name="monitor-xray.instrument.example"></a>

次の例は、[ADOT Python SDK ](https://aws-otel.github.io/docs/getting-started/python-sdk)を使用してアプリケーションを自動計測する方法を示しています。SDK は、Python コードを 1 行追加することなく、アプリケーションの Python フレームワークで使用される値を記述するテレメトリデータを含むスパンを自動的に生成します。2 つのソースファイルで数行のみを追加または変更する必要があります。

まず、次の例に示すように、いくつかの依存関係を追加します。

**Example requirements.txt**  

```
opentelemetry-distro[otlp]>=0.24b0
opentelemetry-sdk-extension-aws~=2.0
opentelemetry-propagator-aws-xray~=1.0
```

次に、アプリケーションを計測します。これを行う方法は、ソースイメージまたはソースコードなどのサービスソースによって異なります。

------
#### [ Source image ]

サービスソースがイメージの場合、コンテナイメージの構築とイメージ内のアプリケーションの実行を制御する Dockerfile を直接計測できます。次の例は、Python アプリケーション用に実装された Dockerfile を示しています。計測の追加は太字で強調されます。

**Example Dockerfile**  

```
FROM public.ecr.aws/amazonlinux/amazonlinux:latest
RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
RUN opentelemetry-bootstrap --action=install
ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3
ENV OTEL_METRICS_EXPORTER=none              
ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app'
CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py
EXPOSE 8080
```

------
#### [ Source code repository ]

サービスソースがアプリケーションソースを含むリポジトリである場合は、App Runner 設定ファイル設定を使用してイメージを間接的に計測します。これらの設定は、App Runner が生成してアプリケーションのイメージを構築するために使用する Dockerfile を制御します。次の例は、Python アプリケーションの計測された App Runner 設定ファイルを示しています。計測の追加は太字で強調されます。

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    build:
      - pip install -r requirements.txt
      - opentelemetry-bootstrap --action=install
run: 
  command: opentelemetry-instrument python app.py
  network: 
    port: 8080 
  env:
    - name: OTEL_PROPAGATORS
      value: xray
    - name: OTEL_METRICS_EXPORTER
      value: none
    - name: OTEL_PYTHON_ID_GENERATOR
      value: xray  
    - name: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS 
      value: urllib3
    - name: OTEL_RESOURCE_ATTRIBUTES
      value: 'service.name=example_app'
```

------

## App Runner サービスインスタンスロールに X-Ray アクセス許可を追加する
<a name="monitor-xray.role"></a>

App Runner サービスで X-Ray トレースを使用するには、サービスのインスタンスに X-Ray サービスとやり取りするためのアクセス許可を付与する必要があります。これを行うには、インスタンスロールをサービスに関連付け、X-Ray アクセス許可を持つ管理ポリシーを追加します。App Runner インスタンスロールの詳細については、「」を参照してください[インスタンスロール](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service.instance)。`AWSXRayDaemonWriteAccess` 管理ポリシーをインスタンスロールに追加し、作成時にサービスに割り当てます。

## App Runner サービスの X-Ray トレースを有効にする
<a name="monitor-xray.config"></a>

[サービスを作成すると](manage-create.md)、App Runner はデフォルトでトレースを無効にします。オブザーバビリティの設定の一環として、サービスの X-Ray トレースを有効にできます。詳細については、「[オブザーバビリティの管理](manage-configure-observability.md#manage-configure-observability.manage)」を参照してください。

App Runner API または を使用する場合 AWS CLI、ObservabilityConfiguration リソースオブジェクト内の [TraceConfiguration](https://docs.aws.amazon.com/apprunner/latest/api/API_TraceConfiguration.html) オブジェクトにはトレース設定が含まれます。 [ObservabilityConfiguration](https://docs.aws.amazon.com/apprunner/latest/api/API_ObservabilityConfiguration.html) トレースを無効にしたままにするには、 `TraceConfiguration` オブジェクトを指定しないでください。

コンソールと API の両方のケースで、前のセクションで説明したインスタンスロールを App Runner サービスと関連付けてください。

## App Runner サービスの X-Ray トレースデータを表示する
<a name="monitor-xray.view"></a>

App Runner コンソール[のサービスダッシュボードページの](console.md#console.dashboard)**オブザーバビリティ**タブで、**サービスマップを表示**を選択して Amazon CloudWatch コンソールに移動します。

![\[オブザーバビリティタブを示す App Runner サービスダッシュボードページ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/service-dashboad-observability.png)


Amazon CloudWatch コンソールを使用して、アプリケーションが処理するリクエストのサービスマップとトレースを表示します。サービスマップには、リクエストのレイテンシーや、他のアプリケーションや AWS サービスとのやり取りなどの情報が表示されます。コードに追加するカスタム注釈を使用すると、トレースを簡単に検索できます。詳細については、*Amazon CloudWatch ユーザーガイド*[」のServiceLens を使用してアプリケーションの状態をモニタリングする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html)」を参照してください。