

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

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

# App Runner サービスのオブザーバビリティ
<a name="monitor"></a>

AWS App Runner は複数の AWS サービスと統合され、App Runner サービス用の広範なオブザーバビリティツールスイートを提供します。この章のトピックでは、これらの機能について説明します。

**Topics**
+ [App Runner サービスアクティビティの追跡](monitor-activity.md)
+ [CloudWatch Logs にストリーミングされた App Runner ログの表示](monitor-cwl.md)
+ [CloudWatch にレポートされた App Runner サービスメトリクスの表示](monitor-cw.md)
+ [EventBridge での App Runner イベントの処理](monitor-ev.md)
+ [を使用した App Runner API コールのログ記録 AWS CloudTrail](monitor-ct.md)
+ [X-Ray を使用した App Runner アプリケーションのトレース](monitor-xray.md)

# App Runner サービスアクティビティの追跡
<a name="monitor-activity"></a>

AWS App Runner はオペレーションのリストを使用して、App Runner サービスのアクティビティを追跡します。オペレーションは、サービスの作成、設定の更新、サービスのデプロイなど、API アクションへの非同期呼び出しを表します。以下のセクションでは、App Runner コンソールで API を使用してアクティビティを追跡する方法を示します。

## App Runner サービスアクティビティを追跡する
<a name="monitor-activity.monitor"></a>

次のいずれかの方法を使用して、App Runner サービスアクティビティを追跡します。

------
#### [ App Runner console ]

App Runner コンソールには App Runner サービスアクティビティが表示され、オペレーションを探索するさまざまな方法が用意されています。

**サービスのアクティビティを表示するには**

1. [App Runner コンソール](https://console.aws.amazon.com/apprunner)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、**サービス**を選択し、App Runner サービスを選択します。

   コンソールには、サービスダッシュボードに**サービスの概要**が表示されます。  
![\[アクティビティリストを示す App Runner サービスダッシュボードページ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/console-dashboard.png)

1. サービスダッシュボードページで、**まだ**選択されていない場合はアクティビティタブを選択します。

   コンソールにオペレーションのリストが表示されます。

1. 特定のオペレーションを検索するには、検索語を入力してリストの範囲を絞り込みます。テーブルに表示される任意の値を検索できます。

1. リストされたオペレーションを選択して、関連するログを表示またはダウンロードします。

------
#### [ App Runner API or AWS CLI ]

[ListOperations](https://docs.aws.amazon.com/apprunner/latest/api/API_ListOperations.html) アクションは、App Runner サービスの Amazon リソースネーム (ARN) を指定して、このサービスで発生したオペレーションのリストを返します。各リスト項目には、オペレーション ID といくつかの追跡の詳細が含まれています。

------

# CloudWatch Logs にストリーミングされた App Runner ログの表示
<a name="monitor-cwl"></a>

Amazon CloudWatch Logs を使用して、さまざまな AWS サービスのリソースが生成するログファイルをモニタリング、保存、およびアクセスできます。詳細については、[Amazon CloudWatch Logs ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)を参照してください。

AWS App Runner は、アプリケーションデプロイとアクティブなサービスの出力を収集し、CloudWatch Logs にストリーミングします。以下のセクションでは、App Runner ログストリームを一覧表示し、App Runner コンソールでそれらを表示する方法を示します。

## App Runner ロググループとストリーム
<a name="monitor-cwl.streams"></a>

CloudWatch Logs はログデータをログストリームに保持し、さらにロググループに整理します。*ログストリーム*は、特定のソースからの一連のログイベントです。*ロググループ*は、保持、モニタリング、アクセス制御について同じ設定を共有するログストリームのグループです。

App Runner は、 内の App Runner サービスごとに、それぞれに複数のログストリームがある 2 つの CloudWatch Logs ロググループを定義します AWS アカウント。

### サービスログ
<a name="monitor-cwl.streams.service"></a>

サービスロググループには、App Runner サービスを管理し、そのサービスを操作する際に App Runner によって生成されたログ出力が含まれます。


|  **ロググループ名**  |  **例**  | 
| --- | --- | 
|  `/aws/apprunner/service-name/service-id/service`  |  `/aws/apprunner/python-test/ac7ec8b51ff34746bcb6654e0bcb23da/service`  | 

サービスロググループ内で、App Runner はイベントログストリームを作成して、App Runner サービスのライフサイクルのアクティビティをキャプチャします。例えば、アプリケーションの起動や一時停止などです。

さらに、App Runner は、サービスに関連する長時間実行される非同期オペレーションごとにログストリームを作成します。ログストリーム名には、オペレーションタイプと特定のオペレーション ID が反映されます。

*デプロイ*はオペレーションの一種です。デプロイログには、サービスの作成時またはアプリケーションの新しいバージョンのデプロイ時に App Runner が実行するビルドおよびデプロイステップのログ出力が含まれます。デプロイログストリーム名は で始まり`deployment/`、デプロイを実行するオペレーションの ID で終わります。このオペレーションは、最初のアプリケーションデプロイの場合は [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) 呼び出し、以降のデプロイの場合は [StartDeployment](https://docs.aws.amazon.com/apprunner/latest/api/API_StartDeployment.html) 呼び出しです。

デプロイログ内では、各ログメッセージはプレフィックスで始まります。
+ `[AppRunner]` – デプロイ中に App Runner が生成する出力。
+ `[Build]` – 独自のビルドスクリプトの出力。


|  **ログストリーム名**  |  **例**  | 
| --- | --- | 
|  `events`  |  *該当なし (固定名)*  | 
|  `operation-type/operation-id`  |  `deployment/c2c8eeedea164f459cf78f12a8953390`  | 

### アプリケーションログ
<a name="monitor-cwl.streams.deployment"></a>

アプリケーションロググループには、実行中のアプリケーションコードの出力が含まれます。


|  **ロググループ名**  |  **例**  | 
| --- | --- | 
|  `/aws/apprunner/service-name/service-id/application`  |  `/aws/apprunner/python-test/ac7ec8b51ff34746bcb6654e0bcb23da/application`  | 

アプリケーションロググループ内で、App Runner はアプリケーションを実行しているインスタンス (スケーリングユニット) ごとにログストリームを作成します。


|  **ログストリーム名**  |  **例**  | 
| --- | --- | 
|  `instance/instance-id`  |  `instance/1a80bc9134a84699b7b3432ebeebb591`  | 

## コンソールでの App Runner ログの表示
<a name="monitor-cwl.console"></a>

App Runner コンソールには、サービスのすべてのログの概要が表示され、それらを表示、探索、ダウンロードできます。

**サービスのログを表示するには**

1. [App Runner コンソール](https://console.aws.amazon.com/apprunner)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、**サービス**を選択し、App Runner サービスを選択します。

   コンソールには、サービスダッシュボードに**サービスの概要**が表示されます。  
![\[アクティビティリストを示す App Runner サービスダッシュボードページ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/console-dashboard.png)

1. サービスダッシュボードページで、**ログ**タブを選択します。

   コンソールには、いくつかのセクションにいくつかのタイプのログが表示されます。
   + **イベントログ** – App Runner サービスのライフサイクルにおけるアクティビティ。コンソールに最新のイベントが表示されます。
   + **デプロイログ** – App Runner サービスへのソースリポジトリのデプロイ。コンソールには、デプロイごとに個別のログストリームが表示されます。
   + **アプリケーションログ** – App Runner サービスにデプロイされたウェブアプリケーションの出力。コンソールは、実行中のすべてのインスタンスからの出力を 1 つのログストリームに結合します。  
![\[App Runner サービスダッシュボードページのログタブ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/service-dashboad-logs.png)

1. 特定のデプロイを検索するには、検索語を入力してデプロイログリストの範囲を絞り込みます。テーブルに表示される任意の値を検索できます。

1. ログの内容を表示するには、**フルログの表示** (イベントログ) またはログストリーム名 (デプロイログとアプリケーションログ) を選択します。

1. **ダウンロード**を選択してログをダウンロードします。デプロイログストリームの場合は、まずログストリームを選択します。

1. **CloudWatch で表示** を選択して CloudWatch コンソールを開き、その完全な機能を使用して App Runner サービスログを調べます。デプロイログストリームの場合は、まずログストリームを選択します。
**注記**  
CloudWatch コンソールは、結合されたアプリケーションログではなく、特定のインスタンスのアプリケーションログを表示する場合に特に便利です。

# CloudWatch にレポートされた App Runner サービスメトリクスの表示
<a name="monitor-cw"></a>

Amazon CloudWatch は、Amazon Web Services (AWS) リソースと、 で実行されているアプリケーションを AWS リアルタイムでモニタリングします。CloudWatch を使用してメトリクスを収集および追跡できます。メトリクスとは、リソースやアプリケーションについて測定できる変数です。これを使用して、メトリクスを監視するアラームを作成することもできます。特定のしきい値に達すると、CloudWatch は通知を送信するか、モニタリング対象のリソースに自動的に変更を加えます。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

AWS App Runner は、App Runner サービスの使用、パフォーマンス、可用性をより詳細に可視化するさまざまなメトリクスを収集します。一部のメトリクスはウェブサービスを実行する個々のインスタンスを追跡しますが、他のメトリクスはサービスレベル全体です。以下のセクションでは、App Runner メトリクスを一覧表示し、App Runner コンソールでそれらを表示する方法を示します。

## App Runner メトリクス
<a name="monitor-cw.metrics"></a>

App Runner は、サービスに関連する以下のメトリクスを収集し、 `AWS/AppRunner`名前空間の CloudWatch に公開します。

**注記**  
2023 年 8 月 23 日より前は、**CPU 使用率**と**メモリ使用率**のメトリクスは、現在計算されている*使用率*ではなく、vCPU ユニットと使用されたメモリのメガバイトに基づいていました。アプリケーションがこの日付より前に App Runner で実行され、App Runner または CloudWatch コンソールでこの日付のメトリクスの表示に戻ることを選択した場合、両方のユニットにメトリクスが表示され、結果としていくつかの異常も表示されます。

**重要**  
CPU *使用率*と*メモリ使用率*のメトリクス値に基づく CloudWatch アラームは、2023 年 8 月 23 日より前に更新する必要があります。vCPU やメガバイトではなく使用率に基づいてトリガーするようにアラームを更新します。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

**インスタンスレベルのメトリクス**は、インスタンス (スケーリングユニット) ごとに個別に収集されます。


|  **何を測定しますか?** |  **メトリクス**  |  **説明**  | 
| --- | --- | --- | 
|  CPU utilization  |  `CPUUtilization`  |  サービス設定によって予約された合計 CPU 使用率のうち、1 分間の平均 CPU 使用率の割合。  | 
|  Memory utilization  |  `MemoryUtilization`  |  サービス設定によって予約された合計メモリのうち、1 分間の平均メモリ使用量の割合。  | 

**サービスレベルのメトリクス**は、サービス全体で収集されます。


|  **何を測定しますか?** |  **メトリクス**  |  **説明**  | 
| --- | --- | --- | 
|  CPU utilization  |  `CPUUtilization`  |  サービス設定によって予約された合計 CPU 使用率のうち、1 分間にすべてのインスタンスで集計された CPU 使用率の割合。  | 
|  Memory utilization  |  `MemoryUtilization`  |  サービス設定によって予約された合計メモリのうち、1 分間のすべてのインスタンスでの合計メモリ使用量の割合。  | 
|  Concurrency  |  `Concurrency`  |  サービスによって処理される同時リクエストのおおよその数。  | 
|  HTTP request count  |  `Requests`  |  サービスが受信した HTTP リクエストの数。  | 
|  HTTP status counts  |  `2xxStatusResponses` `4xxStatusResponses` `5xxStatusResponses`  |  カテゴリ (2XX、4XX, 5XX) 別にグループ化された各レスポンスステータスを返した HTTP リクエストの数。  | 
|  HTTP request latency  |  `RequestLatency`  |  ウェブサービスが HTTP リクエストを処理するのにかかったミリ秒単位の時間。  | 
|  Instance counts  |  `ActiveInstances`  |  サービスの HTTP リクエストを処理しているインスタンスの数。   `ActiveInstances` メトリクスにゼロが表示された場合は、サービスに対するリクエストがないことを意味します。サービスのインスタンス数がゼロであることを示すものではありません。   | 

## コンソールでの App Runner メトリクスの表示
<a name="monitor-cw.console"></a>

App Runner コンソールは、App Runner がサービス用に収集するメトリクスをグラフィカルに表示し、それらを探索するより多くの方法を提供します。

**注記**  
現時点では、コンソールにはサービスメトリクスのみが表示されます。インスタンスメトリクスを表示するには、CloudWatch コンソールを使用します。

**サービスのログを表示するには**

1. [App Runner コンソール](https://console.aws.amazon.com/apprunner)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、**サービス**を選択し、App Runner サービスを選択します。

   コンソールには、サービスダッシュボードに**サービスの概要**が表示されます。  
![\[アクティビティリストを示す App Runner サービスダッシュボードページ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/console-dashboard.png)

1. サービスダッシュボードページで、**メトリクス**タブを選択します。

   コンソールには、一連のメトリクスグラフが表示されます。  
![\[App Runner サービスダッシュボードページのメトリクスタブ\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/images/service-dashboad-metrics.png)

1. 期間 (**12 時間**など) を選択して、メトリクスグラフをその期間の最近の期間にスコープします。

1. グラフセクションのいずれかの上部にある**ダッシュボードに追加**を選択するか、任意のグラフのメニューを使用して、CloudWatch コンソールのダッシュボードに関連メトリクスを追加して詳細な調査を行います。

# EventBridge での App Runner イベントの処理
<a name="monitor-ev"></a>

Amazon EventBridge を使用すると、特定のパターンについて AWS App Runner サービスからのリアルタイムデータのストリームをモニタリングするイベント駆動型ルールを設定できます。ルールのパターンが一致する AWS Batchと、EventBridge は Amazon ECS AWS Lambda、Amazon SNS などのターゲットでアクションを開始します。例えば、サービスへのデプロイが失敗するたびに Amazon SNS トピックをシグナリングすることで、E メール通知を送信するルールを設定できます。または、サービスの更新が失敗するたびに Slack チャネルに通知するように Lambda 関数を設定できます。EventBridge の詳細については、[「Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)」を参照してください。

App Runner が EventBridge に次のイベントタイプを送信する
+ *サービスステータスの変更* – App Runner サービスのステータスの変更。たとえば、サービスのステータスが に変更されました`DELETE_FAILED`。
+ *サービスオペレーションステータスの変更* – App Runner サービスでの長い非同期オペレーションのステータスの変更。たとえば、サービスの作成が開始された、サービスの更新が正常に完了した、サービスデプロイがエラーで完了したなどです。

## App Runner イベントを処理する EventBridge ルールの作成
<a name="monitor-ev.rule"></a>

EventBridge *イベント*は、ソース AWS サービスや詳細 (イベント) タイプ、イベントの詳細を含むイベント固有のフィールドセットなど、一部の標準 EventBridge フィールドを定義するオブジェクトです。EventBridge ルールを作成するには、EventBridge コンソールを使用して*イベントパターン* (追跡する必要があるイベント) を定義し、*ターゲットアクション* (一致に対して何をすべきか) を指定します。イベントパターンは、一致するイベントに似ています。一致するフィールドのサブセットを指定し、フィールドごとに可能な値のリストを指定します。このトピックでは、App Runner イベントとイベントパターンの例を示します。

EventBridge ルールの作成の詳細については、「Amazon EventBridge [ユーザーガイド」の AWS 「 サービスのルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html)」を参照してください。 * EventBridge *

**注記**  
一部のサービスは、EventBridge *で事前定義されたパターン*をサポートしています。これは、イベントパターンが作成される方法を簡素化します。フォーム上のフィールド値を選択すると、EventBridge がパターンを生成します。現時点では、App Runner は事前定義されたパターンをサポートしていません。パターンを JSON オブジェクトとして入力する必要があります。このトピックの例は、開始点として使用できます。

## App Runner イベントの例
<a name="monitor-ev.event-examples"></a>

以下は、App Runner が EventBridge に送信するイベントの例です。
+ サービスステータス変更イベント。具体的には、 から `RUNNING`ステータス`OPERATION_IN_PROGRESS`に変更されたサービスです。

  ```
  { 
    "version": "0",
    "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
    "detail-type": "AppRunner Service Status Change",
    "source": "aws.apprunner",
    "account": "111122223333",
    "time": "2021-04-29T11:54:23Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:apprunner:us-east-2:123456789012:service/my-app/8fe1e10304f84fd2b0df550fe98a71fa"
    ],
    "detail": {
      "previousServiceStatus": "OPERATION_IN_PROGRESS",
      "currentServiceStatus": "RUNNING",
      "serviceName": "my-app",
      "serviceId": "8fe1e10304f84fd2b0df550fe98a71fa",
      "message": "Service status is set to RUNNING.",
      "severity": "INFO"
    }
  }
  ```
+ オペレーションステータス変更イベント。具体的には、正常に完了した `UpdateService` オペレーションです。

  ```
  { 
    "version": "0",
    "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
    "detail-type": "AppRunner Service Operation Status Change",
    "source": "aws.apprunner",
    "account": "111122223333",
    "time": "2021-04-29T18:43:48Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:apprunner:us-east-2:123456789012:service/my-app/8fe1e10304f84fd2b0df550fe98a71fa"
    ],
    "detail": {
      "operationStatus": "UpdateServiceCompletedSuccessfully",
      "serviceName": "my-app",
      "serviceId": "8fe1e10304f84fd2b0df550fe98a71fa",
      "message": "Service update completed successfully. New application and configuration is deployed.",
      "severity": "INFO"
    }
  }
  ```

## App Runner イベントパターンの例
<a name="monitor-ev.pattern-examples"></a>

次の例は、EventBridge ルールで 1 つ以上の App Runner イベントを照合するために使用できるイベントパターンを示しています。イベントパターンはイベントに似ています。一致させるフィールドのみを含め、それぞれにスカラーの代わりにリストを指定します。
+ サービスがステータスでなくなった特定のアカウントのサービスのサービス`RUNNING`ステータス変更イベントをすべて一致させます。

  ```
  { 
    "detail-type": [ "AppRunner Service Status Change" ],
    "source": [ "aws.apprunner" ],
    "account": [ "111122223333" ],
    "detail": {
      "previousServiceStatus": [ "RUNNING" ]
    }
  }
  ```
+ オペレーションが失敗した特定のアカウントのサービスのオペレーションステータス変更イベントをすべて一致させます。

  ```
  { 
    "detail-type": [ "AppRunner Service Operation Status Change" ],
    "source": [ "aws.apprunner" ],
    "account": [ "111122223333" ],
    "detail": {
      "operationStatus": [
        "CreateServiceFailed",
        "DeleteServiceFailed",
        "UpdateServiceFailed",
        "DeploymentFailed",
        "PauseServiceFailed",
        "ResumeServiceFailed"
      ]
    }
  }
  ```

## App Runner イベントリファレンス
<a name="monitor-ev.ref"></a>

### サービスステータスの変更
<a name="monitor-ev.ref.service"></a>

サービスステータス変更イベントが に`detail-type`設定されています`AppRunner Service Status Change`。次の詳細フィールドと値があります。

```
"serviceId": "your service ID",
"serviceName": "your service name",
"message": "Service status is set to CurrentStatus.",
"previousServiceStatus": "any valid service status",
"currentServiceStatus": "any valid service status",
"severity": "varies"
```

### オペレーションステータスの変更
<a name="monitor-ev.ref.operation"></a>

オペレーションステータスの変更イベントが に`detail-type`設定されています`AppRunner Service Operation Status Change`。次の詳細フィールドと値があります。

```
"operationStatus": "see following table",
"serviceName": "your service name",
"serviceId": "your service ID",
"message": "see following table",
"severity": "varies"
```

次の表に、使用可能なすべてのステータスコードと関連するメッセージを示します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/monitor-ev.html)

# を使用した App Runner API コールのログ記録 AWS CloudTrail
<a name="monitor-ct"></a>

App Runner は AWS CloudTrail、App Runner のユーザー、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています。CloudTrail は、App Runner のすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、App Runner コンソールからの呼び出しと App Runner API オペレーションへのコード呼び出しが含まれます。証跡を作成する場合は、App Runner のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、App Runner に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

## CloudTrail の App Runner 情報
<a name="apprunner-info-in-cloudtrail"></a>

CloudTrail は、アカウントの作成 AWS アカウント 時に で有効になります。App Runner でアクティビティが発生すると、そのアクティビティはイベント**履歴**の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。で最近のイベントを表示、検索、ダウンロードできます AWS アカウント。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

App Runner のイベントなど AWS アカウント、 のイベントの継続的な記録については、証跡を作成します。*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集されたイベントデータをさらに分析して処理するように他の AWS サービスを設定できます。詳細については、次を参照してください: 
+ [証跡の作成のための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail がサポートするサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [CloudTrail 用 Amazon SNS 通知の構成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

すべての App Runner アクションは CloudTrail によってログに記録され、 AWS App Runner API リファレンスに記載されています。たとえば、`CreateService`、`DeleteConnection`、`StartDeployment` の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。同一性情報は次の判断に役立ちます。
+ リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

## App Runner ログファイルエントリについて
<a name="understanding-apprunner-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルには、ログエントリが 1 つ以上あります。イベントは、あらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、およびリクエストパラメータに関する情報が含まれています。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、`CreateService` アクションを示す CloudTrail ログエントリです。

**注記**  
セキュリティ上の理由から、一部のプロパティ値はログで編集され、テキスト に置き換えられます`HIDDEN_DUE_TO_SECURITY_REASONS`。これにより、シークレット情報が意図せず公開されるのを防ぐことができます。ただし、これらのプロパティがリクエストで渡されたか、レスポンスで返されたことがわかります。

### `CreateService` App Runner アクションの CloudTrail ログエントリの例
<a name="understanding-apprunner-entries.example"></a>

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE",
    "arn": "arn:aws:iam::123456789012:user/aws-user",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "userName": "aws-user"
  },
  "eventTime": "2020-10-02T23:25:33Z",
  "eventSource": "apprunner.amazonaws.com",
  "eventName": "CreateService",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.0",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36",
  "requestParameters": {
    "serviceName": "python-test",
    "sourceConfiguration": {
      "codeRepository": {
        "repositoryUrl": "https://github.com/github-user/python-hello",
        "sourceCodeVersion": {
          "type": "BRANCH",
          "value": "main"
        },
        "codeConfiguration": {
          "configurationSource": "API",
          "codeConfigurationValues": {
            "runtime": "python3",
            "buildCommand": "HIDDEN_DUE_TO_SECURITY_REASONS",
            "startCommand": "HIDDEN_DUE_TO_SECURITY_REASONS",
            "port": "8080",
            "runtimeEnvironmentVariables": "HIDDEN_DUE_TO_SECURITY_REASONS"
          }
        }
      },
      "autoDeploymentsEnabled": true,
      "authenticationConfiguration": {
        "connectionArn": "arn:aws:apprunner:us-east-2:123456789012:connection/your-connection/e7656250f67242d7819feade6800f59e"
      }
    },
    "healthCheckConfiguration": {
      "protocol": "HTTP"
    },
    "instanceConfiguration": {
      "cpu": "256",
      "memory": "1024"
    }
  },
  "responseElements": {
    "service": {
        "serviceName": "python-test",
        "serviceId": "dfa2b7cc7bcb4b6fa6c1f0f4efff988a",
        "serviceArn": "arn:aws:apprunner:us-east-2:123456789012:service/python-test/dfa2b7cc7bcb4b6fa6c1f0f4efff988a",
        "serviceUrl": "generated domain",
        "createdAt": "2020-10-02T23:25:32.650Z",
        "updatedAt": "2020-10-02T23:25:32.650Z",
        "status": "OPERATION_IN_PROGRESS",
        "sourceConfiguration": {
            "codeRepository": {
                "repositoryUrl": "https://github.com/github-user/python-hello",
                "sourceCodeVersion": {
                    "type": "Branch",
                    "value": "main"
                },
                "sourceDirectory": "/",
                "codeConfiguration": {
                    "codeConfigurationValues": {
                        "configurationSource": "API",
                        "runtime": "python3",
                        "buildCommand": "HIDDEN_DUE_TO_SECURITY_REASONS",
                        "startCommand": "HIDDEN_DUE_TO_SECURITY_REASONS",
                        "port": "8080",
                        "runtimeEnvironmentVariables": "HIDDEN_DUE_TO_SECURITY_REASONS"
                    }
                }
            },
            "autoDeploymentsEnabled": true,
            "authenticationConfiguration": {
                "connectionArn": "arn:aws:apprunner:us-east-2:123456789012:connection/your-connection/e7656250f67242d7819feade6800f59e"
            }
        },
        "healthCheckConfiguration": {
            "protocol": "HTTP",
            "path": "/",
            "interval": 5,
            "timeout": 2,
            "healthyThreshold": 3,
            "unhealthyThreshold": 5
        },
        "instanceConfiguration": {
            "cpu": "256",
            "memory": "1024"
        },
        "autoScalingConfigurationSummary": {
            "autoScalingConfigurationArn": "arn:aws:apprunner:us-east-2:123456789012:autoscalingconfiguration/DefaultConfiguration/1/00000000000000000000000000000001",
            "autoScalingConfigurationName": "DefaultConfiguration",
            "autoScalingConfigurationRevision": 1
        }
    }
},
  "requestID": "1a60af60-ecf5-4280-aa8f-64538319ba0a",
  "eventID": "e1a3f623-4d24-4390-a70b-bf08a0e24669",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "recipientAccountId": "123456789012"
}
```

# 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)」を参照してください。