

# コンソールの Amazon ECS イベントキャプチャ
<a name="task-lifecycle-events"></a>

Amazon ECS コンソールには、サービスアクションやタスク状態の変更など、Amazon ECS が生成したイベントを EventBridge 経由で Amazon CloudWatch Logs に保存するイベントキャプチャ機能が用意されています。この機能には、モニタリングとトラブルシューティングのためのフィルタリング機能を備えたクエリインターフェイスが含まれています。

イベントは、サービスのデプロイ、サービス、タスク、インスタンスの動作に関する詳細情報を提供します。この情報を使用して、タスクまたはサービスのデプロイの失敗をトラブルシューティングできます。

イベントキャプチャを有効にすると、選択した保持期間中に Amazon ECS が生成するすべてのイベントにアクセスできるようになります。これにより、フィルタリングされていない 100 件を超える過去のイベントにアクセスでき、また、停止したタスクは 1 時間以上表示可能になります。

## 仕組み
<a name="task-lifecycle-events-overview"></a>

イベントキャプチャは EventBridge を使用して、事前定義された Amazon CloudWatch Logs ロググループにイベントを保存します。Amazon ECS コンソールは、事前に構築されたクエリとフィルタリングオプションを提供し、イベントを関連付けて直感的な形式でタスクライフサイクルを提供します。

次のタイプのイベントをクエリして取得できます。
+ **サービスアクションイベント** – プロビジョニングまたはリソース割り当ての問題を特定するのに役立ちます
+ **タスクライフサイクルイベント** – タスクまたはコンテナが起動または実行停止に失敗する理由を特定するのに役立ちます

Amazon ECS コンソールを使用すると、ワンクリックでイベントキャプチャを設定し、一般的に使用されるクエリやフィルタリングを利用できます。クエリ言語の習得は不要で、複数のコンソール間を移動する必要もありません。

## イベントタイプ
<a name="task-lifecycle-events-types"></a>

イベントキャプチャは、Amazon ECS で生成されたすべてのイベントを次のカテゴリに保存します。

タスク状態変更イベント  
コンテナの停止およびその他の終了イベント。トラブルシューティングやタスクのライフサイクルタイムラインのモニタリングに使用できます。

サービスアクション  
定常状態に達する、タスク配置の失敗、リソースの制約などのイベント。

サービスデプロイの状態の変更  
サービスデプロイの状態をモニタリングするために、サーキットブレーカーとロールバック設定によってトリガーされるイベント (進行中のデプロイ、完了したデプロイ、失敗したデプロイなど)。

コンテナインスタンス状態の変更  
EC2 および Amazon ECS マネージドインスタンスのワークロードの場合、イベントには接続と切断の状態が表示されます。

## ロググループ設定
<a name="task-lifecycle-events-log-group"></a>

イベントキャプチャを有効にすると、Amazon ECS は次のリソースを自動的に作成します。
+ `/aws/events/ecs/containerinsights/${clusterName}/performance` という名前の Amazon CloudWatch Logs ロググループ
+ `aws.ecs` ソースからすべてのイベントを取り込みロググループに転送する EventBridge ルール

ロググループの保持期間は 1 日から 10 年の間で指定できます。デフォルトの保持期間は 7 日間です。

## 考慮事項
<a name="task-lifecycle-events-limitations"></a>

イベントキャプチャを使用する場合は、以下の点を考慮してください。
+ イベントキャプチャは、簡素化の目的ですべてのイベントを保存します。Amazon ECS コンソールで、特定のイベントのみをキャプチャするルールを設定することはできません。
+ Amazon ECS コンソールには、事前定義済みのクエリ条件が用意されています。高度なクエリの場合は、Amazon CloudWatch Logs Insights を使用してロググループに直接クエリを実行します。
+ ライブテール機能は Amazon ECS コンソールでは使用できません。ライブテールには Amazon CloudWatch Logs を直接使用します。
+ イベントキャプチャを無効にすると、EventBridge ルールは削除されます。
+ イベントキャプチャでは、EventBridge のデータ取り込み、Amazon CloudWatch Logs ストレージ、クエリの実行に追加のコストが発生します。

  EventBridge の料金の詳細については、「[EventBridge の料金](https://aws.amazon.com/eventbridge/pricing/)」を参照してください。

  CloudWatch の料金の詳細については、「[CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」をご覧ください。

## イベントベースのトラブルシューティング
<a name="task-lifecycle-events-troubleshooting"></a>

Amazon ECS で生成されたイベントを活用して、一般的なトラブルシューティングの疑問に対応します。

### タスク障害分析
<a name="task-lifecycle-events-task-failures"></a>

`STOPPED` タスクの状態変更イベント、停止コード、コンテナ終了コードを確認して、タスクが起動に失敗した理由や、実行中に失敗した理由を特定できます。

配置の失敗およびリソース制約情報に関するサービスアクションイベントを確認して、リソースの制約が原因でタスクが配置に失敗した理由を特定できます。

### 一般的なタスク障害シナリオ
<a name="task-lifecycle-events-common-issues"></a>

最も一般的に発生する異常なタスク障害は、次の問題に関連しています。
+ CI/CD サービスのデプロイの失敗
+ 自動スケーリングの失敗
+ タスクの再調整の失敗
+ out–of–memory (OOM) エラーなど、異常なコンテナの終了

異常なタスク障害は、`EssentialContainerExited` または `TaskFailedToStart` の停止コードを含む `STOPPED` タスク状態変更イベントを生成します。これらの停止コードでフィルタリングして、コンテナの実行と停止の動作を調べることができます。