

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

# ジョブのモニタリング
<a name="monitoring"></a>

Amazon CloudWatch Events を使用して、Amazon EMR on EKS 仮想クラスターで実行されるジョブを追跡できます。イベントを使用して、仮想クラスターで実行しているジョブのアクティビティと正常性を追跡できます。以下の各トピックでは、リソースの正常性を維持するためにモニタリングを効果的に設定する方法を示します。

**Topics**
+ [Amazon CloudWatch Events でジョブをモニタリングする](#monitoring-cloudwatch-events)
+ [CloudWatch Events で Amazon EMR on EKS を自動化する](#monitoring-automate-emr-on-eks)
+ [例: Lambda を呼び出すルールを設定する](#monitoring-example-rule)
+ [Amazon CloudWatch Events を使用して再試行ポリシーでジョブのドライバーポッドを監視する](#monitor-jobs-with-retry-policies)

## Amazon CloudWatch Events でジョブをモニタリングする
<a name="monitoring-cloudwatch-events"></a>

Amazon EMR on EKS では、ジョブ実行の状態が変化したときにイベントが出力されます。各イベントが提供する情報には、そのイベントが発生した日時のほか、仮想クラスターの ID や影響を受けたジョブ実行の ID などの詳細が含まれています。

イベントを使用して、仮想クラスターで実行しているジョブのアクティビティと正常性を追跡できます。また、Amazon CloudWatch Events を使用すると、指定したパターンと一致するイベントがジョブ実行によって生成された場合に実行するアクションを定義できます。イベントは、ジョブ実行のライフサイクル中に特定の発生をモニタリングするのに便利です。例えば、ジョブ実行の状態が `submitted` から `running` に変化するタイミングをモニタリングできます。CloudWatch イベントの詳細については、「*[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)*」を参照してください。

次の表は、Amazon EMR on EKS のイベント、イベントが示す状態や状態の変化、イベントの重要度、イベントメッセージを示しています。各イベントは、イベントのストリームに自動的に送信される JSON オブジェクトとして表されます。JSON オブジェクトにはイベントの詳細が含まれます。JSON オブジェクトは、CloudWatch Events を使用してイベント処理のルールを設定する場合に特に重要です。ルールでは JSON オブジェクトでパターンのマッチングが行われるからです。詳細については、「*[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#emr_event_type)*」の「[Amazon EventBridge のイベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)」と「Amazon EMR on EKS イベント」を参照してください。


**ジョブ実行の状態変更イベント**  

| State | 緊急度 | メッセージ | 
| --- | --- | --- | 
| SUBMITTED | 情報 | {{Time}} UTC に、ジョブ実行 {{JobRunId}} ({{JobRunName}}) が仮想クラスター {{VirtualClusterId}} に正常に送信されました。 | 
| RUNNING | 情報 | 仮想クラスター {{VirtualClusterId}} 内のジョブ実行 {{JobRunId}} ({{JobRunName}}) が、{{Time}} に実行を開始しました。 | 
| COMPLETED | 情報 | 仮想クラスター {{VirtualClusterId}} 内のジョブ実行 {{jobRunId}} ({{JobRunName}}) が {{Time}} に完了しました。ジョブ実行は {{Time}} に実行を開始し、完了するまでに {{Num}} 分かかりました。 | 
| CANCELLED | WARN | 仮想クラスター {{VirtualClusterId}} 内のジョブ実行 {{JobRunId}} ({{JobRunName}}) のキャンセルリクエストが {{Time}} に成功し、ジョブ実行がキャンセルされました。 | 
| FAILED | エラー | 仮想クラスター {{VirtualClusterId}} 内のジョブ実行 {{JobRunId}} ({{JobRunName}}) が {{Time}} に失敗しました。 | 

## CloudWatch Events で Amazon EMR on EKS を自動化する
<a name="monitoring-automate-emr-on-eks"></a>

Amazon CloudWatch Events を使用して AWS サービスを自動化し、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに対応できます。 AWS サービスからのイベントは、ほぼリアルタイムで CloudWatch Events に配信されます。どのイベントに興味があるのか、イベントがルールに一致した場合にどのように自動的に実行するアクションをとるのか簡単なルールを指定して書き込みすることができます。自動的にトリガーできるオペレーションには、以下が含まれます。
+  AWS Lambda 関数の呼び出し
+ Amazon EC2 Run Command の呼び出し
+ Amazon Kinesis Data Streams へのイベントの中継
+  AWS Step Functions ステートマシンのアクティブ化
+  Amazon Simple Notification Service (SNS) トピックまたは Amazon Simple Queue Service (SQS) キューの通知

Amazon EMR on EKS で CloudWatch Events を使用する例は次のとおりです。
+ ジョブ実行が成功したときの Lambda 関数のアクティブ化
+ ジョブ実行が失敗したときの Amazon SNS トピックの通知

"`detail-type:`" "`EMR Job Run State Change`" の CloudWatch Events は、`SUBMITTED`、`RUNNING`、`CANCELLED`、`FAILED`、`COMPLETED` の状態が変化したときに Amazon EMR on EKS によって生成されます。

## 例: Lambda を呼び出すルールを設定する
<a name="monitoring-example-rule"></a>

次の手順に従って、"EMR Job Run State Change" イベントの発生時に Lambda を呼び出す CloudWatch Events ルールを設定します。

```
aws events put-rule \
--name cwe-test \
--event-pattern '{"detail-type": ["EMR Job Run State Change"]}'
```

次のように、所有する Lambda 関数を新しいターゲットとして追加し、Lambda 関数を呼び出すためのアクセス許可を CloudWatch Events に付与します。{{123456789012}} は自分のアカウント ID に置き換えます。

```
aws events put-targets \
--rule cwe-test \
--targets Id=1,Arn=arn:aws:lambda:us-east-1:{{123456789012}}:function:MyFunction
```

```
aws lambda add-permission \
--function-name MyFunction \
--statement-id MyId \
--action 'lambda:InvokeFunction' \
--principal events.amazonaws.com
```

**注記**  
通知イベントは順番が間違っていたり欠落していたりする可能性があるため、通知イベントの順序や有無に依存するプログラムは作成できません。イベントは、ベストエフォートベースで出力されます。

## Amazon CloudWatch Events を使用して再試行ポリシーでジョブのドライバーポッドを監視する
<a name="monitor-jobs-with-retry-policies"></a>

CloudWatch イベントを使用すると、再試行ポリシーのあるジョブで作成されたドライバーポッドを監視できます。詳細については、このガイドの「[再試行ポリシーを使用してジョブをモニタリングする](jobruns-using-retry-policies.md#monitoring-retry)」を参照してください。