

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

# 추론 파이프라인 로그 및 지표
<a name="inference-pipeline-logs-metrics"></a>

모니터링은 Amazon SageMaker AI 리소스의 신뢰성, 가용성 및 성능을 유지하는 데 중요합니다. 추론 파이프라인 성능을 모니터링하고 문제를 해결하려면 Amazon CloudWatch 로그 및 오류 메시지를 사용하세요. SageMaker AI가 제공하는 모니터링 도구에 대한 자세한 내용은 [Amazon SageMaker AI의 AWS 리소스 모니터링](monitoring-overview.md) 섹션을 참조하세요.

## 지표를 사용하여 멀티컨테이너 모델 모니터링
<a name="inference-pipeline-metrics"></a>

추론 파이프라인의 다중 컨테이너 모델을 모니터링하려면 Amazon CloudWatch를 사용하세요. CloudWatch는 원시 데이터를 수집하여 읽기 쉽고 실시간에 가까운 지표로 처리합니다. SageMaker AI 훈련 작업 및 엔드포인트는 `AWS/SageMaker` 네임스페이스에 CloudWatch 지표와 로그를 작성합니다.

다음 표는 다음에서 사용 가능한 지표와 차원을 열거한 것입니다.
+ 엔드포인트 호출
+ 훈련 작업, 배치 변환 작업 및 엔드포인트 인스턴스

*차원*이란 지표를 고유하게 식별하는 데 도움이 되는 이름/값 쌍을 말합니다. 각 지표에 측정기준을 최대 10개까지 할당할 수 있습니다. CloudWatch를 사용한 모니터링에 대한 자세한 정보는 [Amazon CloudWatch의 Amazon SageMaker AI 지표](monitoring-cloudwatch.md) 섹션을 참조하세요.

**Endpoint Invocation Metric(엔드포인트 호출 지표)**

`AWS/SageMaker` 네임스페이스에는 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html) 호출에 대한 요청 지표가 포함되어 있습니다.

지표는 1분 간격으로 보고됩니다.


| 지표 | 설명 | 
| --- | --- | 
| Invocation4XXErrors | 모델이 `4xx` HTTP 응답 코드를 반환하는 `InvokeEndpoint` 요청의 수. 각 `4xx` 응답에 대해 SageMaker AI는 `1`을 보냅니다.<br />단위: 없음<br />유효한 통계: `Average`, `Sum`  | 
| Invocation5XXErrors | 모델이 `5xx` HTTP 응답 코드를 반환하는 `InvokeEndpoint` 요청의 수. 각 `5xx` 응답에 대해 SageMaker AI는 `1`을 보냅니다.<br />단위: 없음<br />유효한 통계: `Average`, `Sum`  | 
| Invocations | 모델 엔드포인트에 전송된 `number of InvokeEndpoint` 요청의 수입니다.<br />모델 엔드포인트에 전송된 총 요청 수를 가져오려면 `Sum` 통계를 사용합니다.<br />단위: 없음<br />유효한 통계: `Sum`, `Sample Count`  | 
| InvocationsPerInstance | 모델로 전송된 엔드포인트 간접 호출의 수는 각 `InstanceCount`에서 `ProductionVariant`에 따라 정규화됩니다. SageMaker AI는 각 요청의 값으로 1/`numberOfInstances`을 전송하고, 여기서 `numberOfInstances`는 요청 시점 엔드포인트의 ProductionVariant에 대한 활성 인스턴스의 수입니다.<br />단위: 없음<br />유효한 통계: `Sum` | 
| ModelLatency | 모델이 응답하는 데 걸린 시간. 여기에는 요청을 보내고, 모델 컨테이너에서 응답을 가져오고, 컨테이너에서 추론을 완료하는 데 소요되는 시간이 포함됩니다. ModelLatency은 추론 파이프라인의 모든 컨테이너에서 소요된 총 시간입니다.단위: 마이크로초<br />유효한 통계: `Average`, `Sum`, `Min`, `Max`, 샘플 수 | 
| OverheadLatency | 오버헤드로 인해 SageMaker AI의 클라이언트 요청에 응답하는 데 걸린 시간이 추가됩니다. `OverheadLatency`는 SageMaker AI에서 이 요청을 받은 시간부터 클라이언트에 응답을 반환할 때까지 측정한 시간에 `ModelLatency`를 뺍니다. 오버헤드 지연 시간은 특히 요청 및 응답 페이로드 크기, 요청 빈도와 요청 인증 또는 권한 부여 등과 같은 요인에 따라 달라질 수 있습니다.<br />단위: 마이크로초<br />유효한 통계: `Average`, `Sum`, `Min`, `Max`, `Sample Count`  | 
| ContainerLatency | SageMaker AI에서 본 추론 파이프라인 컨테이너가 응답하는 데 걸린 시간입니다. ContainerLatency에는 요청을 보내고 모델의 컨테이너에서 응답을 가져오고 컨테이너에서 추론을 완료하는 데 걸린 시간이 포함됩니다.단위: 마이크로초<br />유효한 통계: `Average`, `Sum`, `Min`, `Max`, `Sample Count`  | 

**엔드포인트 호출 지표의 차원**


| 차원 | 설명 | 
| --- | --- | 
| EndpointName, VariantName, ContainerName | 지정된 엔드포인트 및 지정된 변형의 `ProductionVariant`에 대한 엔드포인트 호출 지표를 필터링합니다. | 

추론 파이프라인 엔드포인트의 경우, CloudWatch는 다음과 같이 계정의 컨테이너별 지연 시간 지표를 **SageMaker AI** 네임스페이스에 **엔드포인트 컨테이너 지표** 및 **엔드포인트 변형 지표**로 나열합니다. `ContainerLatency` 지표는 추론 파이프라인에만 나타납니다.

![추론 파이프라인에 대한 CloudWatch 대시보드입니다.](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/pipeline-endpoint-metrics.png)


지연 시간 지표는 각 엔드포인트와 각 컨테이너에 대해 컨테이너, 엔드포인트, 변형 및 지표의 이름을 표시합니다.

![엔드포인트에 대한 지연 시간 지표](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/pipeline-endpoint-metrics-details.png)


**훈련 작업, 배치 변환 작업 및 엔드포인트 인스턴스 지표**

`/aws/sagemaker/TrainingJobs`, `/aws/sagemaker/TransformJobs` 및 `/aws/sagemaker/Endpoints` 네임스페이스에는 훈련 작업 및 엔드포인트 인스턴스에 대한 다음 지표가 포함됩니다.

지표는 1분 간격으로 보고됩니다.


| 지표 | 설명 | 
| --- | --- | 
| CPUUtilization | 인스턴스에서 실행 중인 컨테이너에서 사용하는 CPU 유닛의 비율(%)입니다. 값은 0%\~100% 사이가 될 수 있고, CPU의 수를 곱합니다. 예를 들어 CPU가 4개인 경우 `CPUUtilization`는 0%\~400%가 될 수 있습니다.<br />훈련 작업의 경우 `CPUUtilization`은 인스턴스에서 실행 중인 알고리즘 컨테이너의 CPU 사용률입니다.<br />배치 변환 작업의 경우 `CPUUtilization`은 인스턴스에서 실행 중인 변환 컨테이너의 CPU 사용률입니다.<br />멀티컨테이너 모델의 경우 `CPUUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 CPU 사용률 합계입니다.<br />엔드포인트 변경의 경우 `CPUUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 CPU 사용률 합계입니다.<br />단위: 백분율 | 
| MemoryUtilization | 인스턴스에서 실행 중인 컨테이너에서 사용하는 메모리의 비율(%)입니다. 해당 값 범위는 0% \~ 100%입니다.<br />훈련 작업의 경우 `MemoryUtilization`은 인스턴스에서 실행 중인 알고리즘 컨테이너의 메모리 사용량입니다.<br />배치 변환 작업의 경우 `MemoryUtilization`은 인스턴스에서 실행 중인 변환 컨테이너의 메모리 사용량입니다.멀티컨테이너 모델의 경우 MemoryUtilization은 인스턴스에서 실행 중인 모든 컨테이너의 메모리 사용량의 합계입니다.<br />엔드포인트 변형의 경우 `MemoryUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 메모리 사용량 합계입니다.<br />단위: 백분율 | 
| GPUUtilization | 인스턴스에서 실행되는 컨테이너에서 사용하는 GPU 유닛의 비율입니다. `GPUUtilization`의 범위는 0% \~ 100%이며 GPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUUtilization`는 0%\~400%가 될 수 있습니다.<br />훈련 작업의 경우 `GPUUtilization`은 인스턴스에서 실행 중인 알고리즘 컨테이너의 GPU 사용량입니다.<br />배치 변환 작업의 경우 `GPUUtilization`은 인스턴스에서 실행 중인 변환 컨테이너의 GPU 사용량입니다.<br />멀티컨테이너 모델의 경우 `GPUUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 GPU 사용량의 합계입니다.<br />엔드포인트 변형의 경우 `GPUUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 GPU 사용량 합계입니다.<br />단위: 백분율 | 
| GPUMemoryUtilization | 인스턴스에서 실행 중인 컨테이너에서 사용하는 GPU 메모리의 비율(%)입니다. GPUMemoryUtilization은 0%\~100% 사이가 될 수 있고, CPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUMemoryUtilization`는 0%\~400%가 될 수 있습니다.<br />훈련 작업의 경우 `GPUMemoryUtilization`은 인스턴스에서 실행 중인 알고리즘 컨테이너의 GPU 메모리 사용량입니다.<br />배치 변환 작업의 경우 `GPUMemoryUtilization`은 인스턴스에서 실행 중인 변환 컨테이너의 GPU 메모리 사용량입니다.<br />멀티컨테이너 모델의 경우 `GPUMemoryUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 GPU 사용량의 합계입니다.<br />엔드포인트 변형의 경우 `GPUMemoryUtilization`은 인스턴스에서 실행 중인 모든 컨테이너의 GPU 메모리 사용량 합계입니다.<br />단위: 백분율 | 
| DiskUtilization | 인스턴스에서 실행 중인 컨테이너에서 사용하는 디스크 공간의 비율입니다. DiskUtilization의 범위는 0%\~100%입니다. 배치 변환 작업에는 이 지표가 지원되지 않습니다.<br />훈련 작업의 경우 `DiskUtilization`은 인스턴스에서 실행 중인 알고리즘 컨테이너의 디스크 공간 사용량입니다.<br />엔드포인트 변형의 경우 `DiskUtilization`은 인스턴스에서 실행 중인 제공된 컨테이너의 디스크 공간 사용량 합계입니다.<br />단위: 백분율 | 

**훈련 작업, 배치 변환 작업 및 엔드포인트 인스턴스 지표의 차원**


| 차원 | 설명 | 
| --- | --- | 
| Host | 훈련 작업의 경우 `Host`는 `[training-job-name]/algo-[instance-number-in-cluster]` 형식입니다. 이 차원을 사용하여 지정된 훈련 작업 및 인스턴스에 대한 인스턴스 지표를 필터링합니다. 이 차원 형식은 `/aws/sagemaker/TrainingJobs` 네임스페이스에서만 표시됩니다.<br />배치 변환 작업의 경우 `Host`는 `[transform-job-name]/[instance-id]` 형식입니다. 이 차원을 사용하여 지정된 배치 변환 작업 및 인스턴스에 대한 인스턴스 지표를 필터링합니다. 이 차원 형식은 `/aws/sagemaker/TransformJobs` 네임스페이스에서만 표시됩니다.<br />엔드포인트의 경우 `Host`는 `[endpoint-name]/[ production-variant-name ]/[instance-id]` 형식입니다. 이 차원을 사용하여 지정된 엔드포인트, 변형 및 인스턴스에 대한 인스턴스 지표를 필터링합니다. 이 차원 형식은 `/aws/sagemaker/Endpoints` 네임스페이스에서만 표시됩니다. | 

훈련 작업, 엔드포인트 및 노트북 인스턴스 수명 주기 구성을 디버깅하는 데 도움이 되도록 SageMaker AI는 알고리즘 컨테이너, 모델 컨테이너 또는 노트북 인스턴스 수명 주기 구성에서 `stdout` 또는 `stderr`에 전송하는 모든 것을 Amazon CloudWatch Logs에도 전송합니다. 이 정보를 디버깅 및 진행 분석에 사용할 수 있습니다.

## 로그를 사용하여 추론 파이프라인 모니터링
<a name="inference-pipeline-logs"></a>

다음 표에서는 SageMaker AI가 Amazon CloudWatch에 전송하는 로그 그룹 및 로그 스트림이 나열되어 있습니다.

로그 스트림은 동일한 소스를 공유하는 로그 이벤트 시퀀스입니다. CloudWatch로 각 별도의 로그 소스가 별도의 로그 스트림을 구성합니다. 로그 그룹은 동일한 보존 기간, 모니터링 및 액세스 제어 설정을 공유하는 로그 스트림 그룹입니다.

**로그**



- **`/aws/sagemaker/TrainingJobs`**
  - `[training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp]`

- **`/aws/sagemaker/Endpoints/[EndpointName]`**
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 추론 파이프라인 로그의 경우 컨테이너 이름을 입력하지 않으면 CloudWatch에서는 모델에서 컨테이너가 제공되는 순서에 따라 \*\*container-1, container-2\*\* 등을 사용합니다.

- **`/aws/sagemaker/NotebookInstances`**
  - `[notebook-instance-name]/[LifecycleConfigHook]`

- **`/aws/sagemaker/TransformJobs`**
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/data-log`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 추론 파이프라인 로그의 경우 컨테이너 이름을 입력하지 않으면 CloudWatch에서는 모델에서 컨테이너가 제공되는 순서에 따라 \*\*container-1, container-2\*\* 등을 사용합니다.



**참고**  
SageMaker AI는 `/aws/sagemaker/NotebookInstances` 로그 그룹을 수명 주기 구성과 함께 노트북 인스턴스를 만들 때 생성합니다. 자세한 내용은 [LCC 스크립트를 사용하여 SageMaker 노트북 인스턴스 사용자 지정](notebook-lifecycle-config.md) 단원을 참조하십시오.

SageMaker AI 로깅에 대한 자세한 내용은 [Amazon SageMaker AI용 CloudWatch Logs](logging-cloudwatch.md) 섹션을 참조하세요.