

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# EMR Serverless 애플리케이션 및 작업 모니터링
<a name="app-job-metrics"></a>

EMR Serverless에 대한 Amazon CloudWatch 지표를 사용하면 1분 CloudWatch 지표를 수신하고 CloudWatch 대시보드에 액세스하여 거의 실시간에 가까운 EMR Serverless 애플리케이션의 작업 및 성능에 액세스할 수 있습니다.

EMR Serverless는 매분 CloudWatch로 지표를 전송합니다. EMR Serverless는 애플리케이션 수준과 작업, 작업자 유형 및 용량 할당 유형 수준에서 이러한 지표를 내보냅니다.

시작하려면 [EMR Serverless GitHub 리포지토리](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/)에서 제공하는 EMR Serverless CloudWatch 대시보드 템플릿을 사용하고 배포합니다.

**참고**  
[EMR Serverless 대화형 워크로드](interactive-workloads.md)에서는 애플리케이션 수준 모니터링만 활성화되며, 새로운 작업자 유형 차원(`Spark_Kernel`)을 포함합니다. 대화형 워크로드를 모니터링 및 디버깅하기 위해 [EMR Studio Workspace 내](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-debug.html#emr-studio-debug-serverless)에서 로그 및 Apache Spark UI에 액세스할 수 있습니다.

## 지표 모니터링
<a name="app-job-metrics-versions"></a>

**중요**  
지표 표시를 재구성하여 `ApplicationName` 및 `JobName`을 차원으로 추가합니다. 릴리스 7.10 이상에서는 이전 지표가 더 이상 업데이트되지 않습니다. EMR 릴리스 7.10 이하의 경우 이전 지표를 계속 사용할 수 있습니다.

**현재 차원**

아래 표에서는 `AWS/EMR Serverless` 네임스페이스 내에서 사용할 수 있는 EMR Serverless 차원을 설명합니다.


**EMR Serverless 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| ApplicationId | 애플리케이션 ID를 사용하여 EMR Serverless 애플리케이션의 모든 지표를 필터링합니다. | 
| ApplicationName | 이름을 사용하여 EMR Serverless 애플리케이션의 모든 지표를 필터링합니다. 이름이 지정되지 않거나 ASCII가 아닌 문자가 포함된 경우 **[지정되지 않음]**으로 게시됩니다. | 
| JobId | EMR Serverless의 모든 메트릭을 작업 실행 ID로 필터링합니다. | 
| JobName | 이름을 사용하여 실행되는 EMR Serverless 작업의 모든 메트릭에 대한 필터입니다. 이름이 지정되지 않거나 ASCII가 아닌 문자가 포함된 경우 **[지정되지 않음]**으로 게시됩니다. | 
| WorkerType | 주어진 작업자 유형의 모든 지표를 필터링합니다. 예를 들어, Spark 작업에 대해 `SPARK_DRIVER` 및 `SPARK_EXECUTORS`를 필터링할 수 있습니다. | 
| CapacityAllocationType | 주어진 용량 할당 유형의 모든 지표를 필터링합니다. 예를 들어, 사전 초기화된 용량에 대해서는 `PreInitCapacity`, 이와 모든 항목에 대해서는 `OnDemandCapacity`를 필터링할 수 있습니다. | 

## 애플리케이션 수준 모니터링
<a name="app-level-metrics"></a>

Amazon CloudWatch 지표를 사용하여 EMR Serverless 애플리케이션 수준에서 용량 사용량을 모니터링할 수 있습니다. 또한 CloudWatch 대시보드에서 애플리케이션 용량 사용량을 모니터링하도록 단일 보기를 설정할 수도 있습니다.


**EMR Serverless 애플리케이션 지표**  

| 지표 | 설명 | 단위 | 측정 기준 | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  애플리케이션에 대해 허용되는 최대 CPU.  | vCPU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  애플리케이션에 대해 허용되는 GB 단위의 최대 메모리.  | 기가바이트(GB) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  애플리케이션에 대해 허용되는 GB 단위의 최대 스토리지.  | 기가바이트(GB) | ApplicationId, ApplicationName | 
| CPUAllocated |  할당된 총 vCPU 수.  | vCPU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  유휴 상태인 총 작업자 수.  | 개수 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  할당된 GB 단위의 총 메모리.  | 기가바이트(GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  생성 보류 중인 총 작업자 수.  | 개수 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  애플리케이션에서 사용 중인 총 작업자 수.  | 개수 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  할당된 GB 단위의 총 디스크 스토리지.  | 기가바이트(GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  사용 가능한 총 작업자 수.  | 개수 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## 작업 수준 모니터링
<a name="job-level-metrics"></a>

Amazon EMR Serverless는 1분마다 Amazon CloudWatch 로 다음과 같은 작업 수준 지표를 전송합니다. 작업 실행 상태별로 집계 작업 실행의 지표 값에 액세스할 수 있습니다. 각 지표의 단위는 *개수*입니다.


**EMR Serverless 작업 수준 지표**  

| 지표 | 설명 | 측정 기준 | 
| --- | --- | --- | 
| SubmittedJobs | 제출됨 상태의 최대 작업 수. | ApplicationId, ApplicationName | 
| PendingJobs | 보류 중 상태의 작업 수. | ApplicationId, ApplicationName | 
| ScheduledJobs | 예약된 상태의 작업 수. | ApplicationId, ApplicationName | 
| RunningJobs | 실행 중 상태의 작업 수. | ApplicationId, ApplicationName | 
| SuccessJobs | 성공 상태의 작업 수. | ApplicationId, ApplicationName | 
| FailedJobs | 실패 상태의 작업 수. | ApplicationId, ApplicationName | 
| CancellingJobs | 취소 중 상태의 작업 수. | ApplicationId, ApplicationName | 
| CancelledJobs | 취소됨 상태의 작업 수. | ApplicationId, ApplicationName | 

엔진별 애플리케이션 UI를 사용하여 EMR Serverless의 실행 중인 작업 및 완료된 작업에 대한 엔진별 지표를 모니터링할 수 있습니다. 실행 중인 작업의 UI에 접근하면 실시간 업데이트가 적용된 라이브 애플리케이션 UI가 표시됩니다. 완료된 작업의 UI에 접근하면 영구 앱 UI가 표시됩니다.

**작업 실행**

EMR Serverless의 실행 중인 작업에 대해서는 엔진별 지표를 제공하는 실시간 인터페이스에 액세스할 수 있습니다. Apache Spark UI 또는 Hive Tez UI를 사용하여 작업을 모니터링하고 디버깅할 수 있습니다. 이러한 UI에 액세스하려면 EMR Studio 콘솔을 사용하거나 AWS Command Line Interface를 사용하여 보안 URL 엔드포인트를 요청합니다.

**작업 완료됨**

완료된 EMR Serverless 작업의 경우 Spark 기록 서버 또는 영구 Hive Tez UI를 사용하여 Spark 또는 Hive 작업 실행에 대한 작업 세부 정보, 단계, 태스크 및 지표에 액세스할 수 있습니다. 이러한 UI에 액세스하려면 EMR Studio 콘솔을 사용하거나 AWS Command Line Interface를 사용하여 보안 URL 엔드포인트를 요청합니다.

## 작업 작업자 수준 모니터링
<a name="job-worker-level-metrics"></a>

Amazon EMR Serverless는 `AWS/EMRServerless` 네임스페이스 및 `Job Worker Metrics` 지표 그룹에서 사용할 수 있는 다음과 같은 작업 작업자 수준 지표를 Amazon CloudWatch로 전송합니다. EMR Serverless는 작업 수준, 작업자 유형 및 용량 할당 유형 수준에서 작업이 실행되는 동안 개별 작업자로부터 데이터 포인트를 수집합니다. `ApplicationId`를 차원으로 사용하여 동일한 애플리케이션에 속하는 여러 작업을 모니터링할 수 있습니다.

**참고**  
Amazon CloudWatch 콘솔에서 지표를 볼 때 EMR Serverless 작업에서 사용하는 총 CPU 및 메모리를 보려면 통계를 합계로, 기간을 1분으로 사용합니다.


**EMR Serverless 작업 작업자 수준 지표**  

| 지표 | 설명 | 단위 | 측정 기준 | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | 작업 실행에서 작업자에 대해 할당된 총 vCPU 코어 수. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerCpuUsed | 작업 실행에서 작업자가 활용하는 총 vCPU 코어 수. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerMemoryAllocated | 작업 실행에서 작업자에 대해 할당된 GB 단위의 총 메모리. | 기가바이트(GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerMemoryUsed | 작업 실행에서 작업자가 활용하는 GB 단위의 총 메모리. | 기가바이트(GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | 작업 실행에서 작업자에 대해 할당된 임시 스토리지의 바이트 수. | 기가바이트(GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerEphemeralStorageUsed | 작업 실행에서 작업자가 활용하는 임시 스토리지의 바이트 수. | 기가바이트(GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerStorageReadBytes | 작업 실행에서 작업자가 스토리지에서 읽은 바이트 수. | 바이트 | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 
| WorkerStorageWriteBytes | 작업 실행에서 작업자의 스토리지에 쓴 바이트 수. | 바이트 | JobId, JobName, ApplicationId, ApplicationName, WorkerType, 및 CapacityAllocationType | 

아래 단계에서는 다양한 유형의 지표에 액세스하는 방법을 설명합니다.

------
#### [ Console ]

**콘솔을 사용하여 애플리케이션 UI에 액세스하는 방법**

1. [콘솔에서 시작하기](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-console)의 지침에 따라 EMR Studio에서 EMR Serverless 애플리케이션으로 이동합니다.

1. 실행 중인 작업에 대한 엔진별 애플리케이션 UI 및 로그에 액세스하려면 다음을 수행합니다.

   1. `RUNNING` 상태의 작업을 선택합니다.

   1. **애플리케이션 세부 정보** 페이지에서 작업을 선택하거나 작업에 대한 **작업 세부 정보** 페이지로 이동합니다.

   1. **UI 표시** 드롭다운 메뉴에서 **Spark UI** 또는 **Hive Tez UI**를 선택하여 작업 유형에 맞는 애플리케이션 UI로 이동합니다.

   1. Spark 엔진 로그에 액세스하려면 Spark UI의 **실행기** 탭으로 이동하여 드라이버의 **로그** 링크를 선택합니다. Hive 엔진 로그에 액세스하려면 Hive Tez UI에서 적절한 DAG에 대한 **로그** 링크를 선택합니다.

1. 완료된 작업에 대한 엔진별 애플리케이션 UI 및 로그에 액세스하려면 다음을 수행합니다.

   1. `SUCCESS` 상태의 작업을 선택합니다.

   1. 애플리케이션의 **애플리케이션 세부 정보** 페이지에서 작업을 선택하거나 작업의 **작업 세부 정보** 페이지로 이동합니다.

   1. **UI 표시** 드롭다운 메뉴에서 **Spark 기록 서버** 또는 **영구 Hive Tez UI**를 선택하여 작업 유형에 맞는 애플리케이션 UI로 이동합니다.

   1. Spark 엔진 로그에 액세스하려면 Spark UI의 **실행기** 탭으로 이동하여 드라이버의 **로그** 링크를 선택합니다. Hive 엔진 로그에 액세스하려면 Hive Tez UI에서 적절한 DAG에 대한 **로그** 링크를 선택합니다.

------
#### [ AWS CLI ]

**를 사용하여 애플리케이션 UI에 액세스하려면 AWS CLI**
+ 실행 중인 작업과 완료된 작업에 대해 애플리케이션 UI에 액세스하는 데 사용할 수 있는 URL을 생성하려면 `GetDashboardForJobRun` API를 직접 호출합니다.

  ```
  aws emr-serverless get-dashboard-for-job-run /
  --application-id <application-id> /
  --job-run-id <job-id>
  ```

  생성하는 URL은 1시간 동안 유효합니다.

------