

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

# Amazon SageMaker AI의 AWS 리소스 모니터링
<a name="monitoring-overview"></a>

모니터링은 SageMaker AI 및 기타 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다.는 SageMaker AI를 모니터링하고, 이상이 있을 때 이를 보고하고, 필요한 경우 자동 조치를 취할 수 있도록 다음과 같은 모니터링 도구를 AWS 제공합니다.
+ *Amazon CloudWatch*는 AWS 리소스와 AWS 실행 중인 애플리케이션을 실시간으로 모니터링합니다. 지표를 수집 및 추적하고, 사용자 지정 대시보드를 생성할 수 있으며, 지정된 지표가 지정한 임곗값에 도달하면 사용자에게 알리거나 조치를 취하도록 경보를 설정할 수 있습니다. 예를 들어 CloudWatch에서 Amazon EC2 인스턴스의 CPU 사용량 또는 기타 지표를 추적하고 필요할 때 자동으로 새 인스턴스를 시작할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.
+ *Amazon CloudWatch Logs*를 사용하면 EC2 인스턴스 및 기타 소스에서 로그 파일을 모니터링 AWS CloudTrail, 저장 및 액세스할 수 있습니다. CloudWatch Logs는 로그 파일의 정보를 모니터링하고 특정 임계값에 도달하면 사용자에게 알릴 수 있습니다. 또한 매우 내구성이 뛰어난 스토리지에 로그 데이터를 저장할 수 있습니다. 자세한 내용은 [Amazon CloudWatch Logs 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)를 참조하세요.
+ *AWS CloudTrail*는 AWS 계정에서 또는 계정을 대신하여 수행한 API 호출 및 관련 이벤트를 캡처하고 사용자가 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 호출한 사용자 및 계정 AWS, 호출이 수행된 소스 IP 주소, 호출이 발생한 시기를 식별할 수 있습니다. 자세한 내용은 [AWS CloudTrail 사용 설명서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)를 참조하십시오.
+ *CloudWatch Events*는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 스트림을 거의 실시간으로 제공합니다. CloudWatch Events를 만드는 규칙은 SageMaker AI 훈련, 하이퍼파라미터 튜닝 또는 배치 변환 작업의 상태 변경에 반응합니다.

**Topics**
+ [Amazon CloudWatch의 Amazon SageMaker AI 지표](monitoring-cloudwatch.md)
+ [Amazon SageMaker AI용 CloudWatch Logs](logging-cloudwatch.md)
+ [를 사용하여 Amazon SageMaker AI API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md)
+ [sourceIdentity를 사용한 SageMaker AI Studio Classic에서 사용자 리소스 액세스 모니터링](monitor-user-access.md)
+ [Amazon SageMaker AI에서 Amazon EventBridge로 보내는 이벤트](automating-sagemaker-with-eventbridge.md)

# Amazon CloudWatch의 Amazon SageMaker AI 지표
<a name="monitoring-cloudwatch"></a>

원시 데이터를 수집하여 읽기 가능하며 실시간에 가까운 지표로 처리하는 Amazon CloudWatch를 사용해 Amazon SageMaker AI를 모니터링할 수 있습니다. 이러한 통계는 15개월 동안 유지됩니다. 기록 정보에 액세스하고 웹 애플리케이션 또는 서비스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다. 하지만 Amazon CloudWatch 콘솔은 지난 2주 이내에 업데이트된 지표로 검색을 제한합니다. 이 제한은 가장 최신 작업이 네임스페이스에 표시되도록 보장합니다.

검색을 사용하지 않고 지표를 그래프로 표시하려면 소스 보기에서 지표의 정확한 이름을 지정합니다. 특정 임계값을 주시하다가 해당 임계값이 충족될 때 알림을 전송하거나 조치를 취하도록 경보를 설정할 수도 있습니다. 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.



**Topics**
+ [SageMaker AI 엔드포인트 지표](#cloudwatch-metrics-endpoints)
+ [SageMaker AI 엔드포인트 간접 호출 지표](#cloudwatch-metrics-endpoint-invocation)
+ [SageMaker AI 추론 구성 요소 지표](#cloudwatch-metrics-inference-component)
+ [SageMaker AI 다중 모델 엔드포인트 지표](#cloudwatch-metrics-multimodel-endpoints)
+ [SageMaker AI 작업 지표](#cloudwatch-metrics-jobs)
+ [SageMaker 추론 추천 작업 지표](#cloudwatch-metrics-inference-recommender)
+ [Amazon SageMaker Ground Truth 지표](#cloudwatch-metrics-ground-truth)
+ [Amazon SageMaker 특성 스토어 지표](#cloudwatch-metrics-feature-store)
+ [SageMaker Pipelines 지표](#cloudwatch-metrics-pipelines)

## SageMaker AI 엔드포인트 지표
<a name="cloudwatch-metrics-endpoints"></a>

`/aws/sagemaker/Endpoints` 네임스페이스에는 엔드포인트 인스턴스에 대한 다음 지표가 포함됩니다.

지표는 1분 간격으로 제공됩니다.

**참고**  
Amazon CloudWatch는 [고해상도 사용자 지정 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)를 지원하며, 최상의 해상도는 1초입니다. 그러나 해상도가 높을수록 CloudWatch 지표의 수명이 짧아집니다. 1초 주파수 해상도의 경우 CloudWatch 지표는 3시간 동안 사용할 수 있습니다. CloudWatch 지표의 해상도와 수명에 대한 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.


**엔드포인트 지표**  

| 지표 | 설명 | 
| --- | --- | 
| CPUReservation |  인스턴스의 컨테이너에서 예약한 CPUs의 합계입니다. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 추론 구성 요소에 대한 설정에서 `NumberOfCpuCoresRequired` 파라미터로 CPU 예약을 설정합니다. 예를 들어 CPU 4개와 2CPUs 예약되어 있는 경우 `CPUReservation` 지표는 50%입니다.  | 
| CPUUtilization |  각 개별 CPU 코어 사용률의 합계. 각 코어 범위의 CPU 사용률은 0–100입니다. 예를 들어 CPU가 4개인 경우 `CPUUtilization` 범위는 0%\$1400%입니다. 엔드포인트 변환의 경우 이 값은 인스턴스에 있는 기본 및 보조 컨테이너의 CPU 사용률 총합입니다. 단위: 백분율  | 
| CPUUtilizationNormalized |  각 개별 CPU 코어 사용률의 명목 합계. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 예를 들어 CPUs가 4개이고 지표가 `CPUUtilization` 200%인 경우 `CPUUtilizationNormalized` 지표는 50%입니다.  | 
| DiskUtilization | 인스턴스의 컨테이너에서 사용하는 디스크 공간의 비율입니다. 이 값 범위는 0%\$1100%입니다.엔드포인트 변환의 경우 이 값은 인스턴스에 있는 기본 및 보조 컨테이너의 디스크 공간 사용률 합계입니다.단위: 백분율 | 
| GPUMemoryUtilization |  인스턴스의 컨테이너에서 사용하는 GPU 메모리의 비율(%)입니다. 값 범위는 0\$1100이고, GPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUMemoryUtilization` 범위는 0%\$1400%입니다. 엔드포인트 변환의 경우 이 값은 인스턴스에 있는 기본 및 보조 컨테이너의 GPU 메모리 사용률 총합입니다. 단위: 백분율  | 
| GPUMemoryUtilizationNormalized |  인스턴스의 컨테이너에서 사용하는 GPU 메모리의 비율(%)입니다. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 예를 들어 GPUs가 4개이고 `GPUMemoryUtilization` 지표가 200%인 경우 `GPUMemoryUtilizationNormalized` 지표는 50%입니다.  | 
| GPUReservation |  인스턴스의 컨테이너에서 예약한 GPU의 합계입니다. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 추론 구성 요소에 대한 설정에서 GPU 예약을 `NumberOfAcceleratorDevicesRequired`로 설정합니다. 예를 들어 GPUs개 있고 예약이 2개 있는 경우 `GPUReservation` 지표는 50%입니다.  | 
| GPUUtilization |  인스턴스의 컨테이너에서 사용하는 GPU 유닛의 비율(%)입니다. 값은 0\$1100 사이가 될 수 있고, GPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUUtilization` 범위는 0%\$1400%입니다. 엔드포인트 변환의 경우 이 값은 인스턴스에 있는 기본 및 보조 컨테이너의 GPU 사용률 총합입니다. 단위: 백분율  | 
| GPUUtilizationNormalized |  인스턴스의 컨테이너에서 사용하는 GPU 유닛의 명목 비율(%)입니다. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 예를 들어 GPU가 4개 GPUs 이고 `GPUUtilization` 지표가 200%인 경우 `GPUUtilizationNormalized` 지표는 50%입니다.  | 
| MemoryReservation |  인스턴스의 컨테이너에서 예약한 메모리의 합계입니다. 이 지표는 활성 추론 구성 요소를 호스팅하는 엔드포인트에만 제공됩니다. 값 범위는 0%\$1100%입니다. 추론 구성 요소의 설정에서 `MinMemoryRequiredInMb` 파라미터로 메모리 예약을 설정합니다. 예를 들어 32GiB 인스턴스가 1,024MB로 예약된 경우 `MemoryReservation` 지표는 3.125%입니다.  | 
| MemoryUtilization |  인스턴스의 컨테이너에서 사용하는 메모리의 비율(%)입니다. 이 값 범위는 0%\$1100%입니다. 엔드포인트 변환의 경우 이 값은 인스턴스에 있는 기본 및 보조 컨테이너의 메모리 사용률 총합입니다. 단위: 백분율  | 


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

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

## SageMaker AI 엔드포인트 간접 호출 지표
<a name="cloudwatch-metrics-endpoint-invocation"></a>

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

지표는 1분 간격으로 제공됩니다.

다음 그림은 SageMaker AI 엔드포인트가 Amazon SageMaker 런타임 API와 상호 작용하는 방식을 보여줍니다. 엔드포인트로 요청을 보내고 응답을 받는 데 걸리는 전체 시간은 다음 세 가지 구성 요소에 따라 달라집니다.
+ 네트워크 지연 시간(Network latency) - SageMaker 런타임 API에 요청을 보내고 SageMaker 런타임 API로부터 응답을 받는 데 걸리는 시간입니다.
+ 오버헤드 지연 시간(Overhead latency) - 모델 컨테이너로 요청을 전송하고 응답을 SageMaker 런타임 런타임 API로 다시 전송하는 데 걸리는 시간입니다.
+ 모델 지연 시간(Model latency) - 모델 컨테이너가 요청을 처리하고 응답을 반환하는 데 걸리는 시간입니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/cloudwatch-latency-types.png)


총 지연 시간에 대한 자세한 내용은 [Best practices for load testing Amazon SageMaker AI real-time inference endpoints](https://aws.amazon.com/blogs/machine-learning/best-practices-for-load-testing-amazon-sagemaker-real-time-inference-endpoints/)를 참조하세요. CloudWatch 지표의 보존 기간에 대한 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.


**엔드포인트 호출 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ConcurrentRequestsPerCopy |  추론 구성 요소의 각 복사본으로 정규화된 추론 구성 요소가 수신한 동시 요청 수입니다. 유효한 통계: Min, Max  | 
| ConcurrentRequestsPerModel |  모델에서 수신 중인 동시 요청 수입니다. 유효한 통계: Min, Max  | 
| Invocation4XXErrors |  모델이 4xx HTTP 응답 코드를 반환하는 `InvokeEndpoint` 요청의 수. 각 4xx 응답에서 1이 전송되고, 그 외의 경우에는 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| Invocation5XXErrors |  모델이 5xx HTTP 응답 코드를 반환하는 `InvokeEndpoint` 요청의 수. 각 5xx 응답에서 1이 전송되고, 그 외의 경우에는 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| InvocationModelErrors |  2XX HTTP 응답으로 이어지지 않은 모델 호출 요청 수. 여기에는 4XX/5XX 상태 코드, 저수준 소켓 오류, 잘못된 HTTP 응답 및 요청 제한 시간이 포함됩니다. 각 오류 응답에 대해 1이 전송되고, 그 외의 경우에는 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| Invocations |  모델 엔드포인트에 전송된 `InvokeEndpoint` 요청의 수입니다. 모델 엔드포인트에 전송된 총 요청 수를 가져오려면 Sum 통계를 사용합니다. 단위: 없음 유효 통계: Sum  | 
| InvocationsPerCopy |  추론 구성 요소의 각 복사본별로 정규화된 호출 수입니다. 유효 통계: Sum  | 
| InvocationsPerInstance |  모델에 송신된 호출의 수로서 각 ProductionVariant에서 `InstanceCount`로 정규화됩니다. 각 요청에 대한 값으로 1/`numberOfInstances`이 전송되고, 여기에서 `numberOfInstances`은 요청 시점에서 엔드포인트에서 ProductionVariant에 대한 활성 인스턴스 수입니다. 단위: 없음 유효 통계: Sum  | 
| ModelLatency |  모델이 SageMaker 런타임 API 요청에 응답하는데 걸린 시간 간격. 이 간격에는 요청을 전송하고 모델 컨테이너에서 응답을 가져오는 데 걸리는 로컬 통신 시간이 포함됩니다. 또한 컨테이너에서 추론을 완료하는 데 걸리는 시간도 포함됩니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count, Percentiles  | 
| ModelSetupTime |  서버리스 엔드포인트를 위해 새 컴퓨팅 리소스를 시작하는 데 걸리는 시간입니다. 시간은 모델 크기, 모델 다운로드에 걸리는 시간, 컨테이너의 시작 시간에 따라 달라집니다. 단위: 마이크로초 유효 통계: Average, Min, Max, Sample Count, Percentiles  | 
| OverheadLatency |  SageMaker AI 오버헤드에서 클라이언트 요청에 응답하는 데 걸리는 시간에 추가된 시간의 간격입니다. 이 간격은 SageMaker AI가 요청을 수신할 때부터 클라이언트에 응답을 반환할 때까지 측정된 시간에서 `ModelLatency`를 뺀 값입니다. 오버헤드 지연 시간은 요청 및 응답 페이로드 크기, 요청 빈도, 요청의 인증/권한 부여 등을 포함한 여러 요인에 따라 다를 수 있습니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count  | 
|  MidStreamErrors  |  초기 응답이 고객에게 전송된 후 응답 스트리밍 중에 발생하는 오류 수입니다. 단위: 없음 유효한 통계: Average, Sum  | 
|  FirstChunkLatency  |  요청이 SageMaker AI 엔드포인트에 도착한 시점부터 응답의 첫 번째 청크가 고객에게 전송될 때까지 경과한 시간입니다. 이 지표는 양방향 스트리밍 추론 요청에 적용됩니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count, Percentiles  | 
|  FirstChunkModelLatency  |  모델 컨테이너가 요청을 처리하고 응답의 첫 번째 청크를 반환하는 데 걸리는 시간입니다. 이는 요청이 모델 컨테이너로 전송된 시점부터 모델에서 첫 번째 바이트가 수신될 때까지 측정됩니다. 이 지표는 양방향 스트리밍 추론 요청에 적용됩니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count, Percentiles  | 
|  FirstChunkOverheadLatency  |  모델 처리 시간을 제외한 첫 번째 청크의 오버헤드 지연 시간입니다. 이는 SageMaker AI 플랫폼 내에서 라우팅, 전처리 및 후처리 작업에 소요된 시간을 `FirstChunkModelLatency`나타내는 `FirstChunkLatency`빼기로 계산됩니다. 오버헤드 지연 시간은 요청 빈도, 로드, 요청 인증/권한 부여 등 여러 요인에 따라 달라질 수 있습니다. 이 지표는 양방향 스트리밍 추론 요청에 적용됩니다. 단위: 마이크로초 유효한 통계: Average, Sum, Min, Max, Sample Count, Percentile  | 


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

| 차원 | 설명 | 
| --- | --- | 
| EndpointName, VariantName |  지정된 엔드포인트 및 변환의 `ProductionVariant`에 대한 엔드포인트 호출 지표를 필터링합니다.  | 
| InferenceComponentName |  추론 구성 요소 호출 지표를 필터링합니다.  | 

## SageMaker AI 추론 구성 요소 지표
<a name="cloudwatch-metrics-inference-component"></a>

`/aws/sagemaker/InferenceComponents` 네임스페이스에는 추론 구성 요소를 호스팅하는 엔드포인트에 대한 [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html) 호출의 다음 지표가 포함됩니다.

지표는 1분 간격으로 제공됩니다.


**추론 구성 요소 지표**  

| 지표 | 설명 | 
| --- | --- | 
| CPUUtilizationNormalized |  추론 구성 요소의 각 복사본에서 보고된 `CPUUtilizationNormalized` 지표의 값입니다. 값 범위는 0%\$1100%입니다. 추론 구성 요소 복사의 설정에서 `NumberOfCpuCoresRequired` 파라미터를 설정하면 지표가 예약에 대한 사용률을 표시합니다. 그렇지 않으면 지표는 한도를 초과하는 사용률을 표시합니다.  | 
| GPUMemoryUtilizationNormalized |  추론 구성 요소의 각 복사본에서 보고된 `GPUMemoryUtilizationNormalized` 지표의 값입니다.  | 
| GPUUtilizationNormalized |  추론 구성 요소의 각 복사본에서 보고된 `GPUUtilizationNormalized` 지표의 값입니다. 추론 구성 요소 복사의 설정에서 `NumberOfAcceleratorDevicesRequired` 파라미터를 설정하면 지표는 예약에 대한 사용률을 표시합니다. 그렇지 않으면 지표는 한도를 초과하는 사용률을 표시합니다.  | 
| MemoryUtilizationNormalized |  추론 구성 요소의 각 복사본에서 `MemoryUtilizationNormalized` 보고된 값입니다. 추론 구성 요소 복사의 설정에서 `MinMemoryRequiredInMb` 파라미터를 설정하면 지표가 예약에 대한 사용률을 표시합니다. 그렇지 않으면 지표가 한도를 초과하는 사용률을 나타냅니다.  | 


**추론 구성 요소 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| InferenceComponentName |  추론 구성 요소 지표를 필터링합니다.  | 

## SageMaker AI 다중 모델 엔드포인트 지표
<a name="cloudwatch-metrics-multimodel-endpoints"></a>

`AWS/SageMaker` 네임스페이스에는 [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html) 호출을 통해 생성된 다음과 같은 모델 로드 지표가 포함됩니다.

지표는 1분 간격으로 제공됩니다.

CloudWatch 지표의 보존 기간에 대한 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.


**다중 모델 엔드포인트 모델 로드 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ModelLoadingWaitTime  |  추론을 실행하기 위해 대상 모델이 다운로드, 로드 또는 다운로드 및 로드될 때까지 호출 요청이 대기한 시간 간격입니다. 단위: 마이크로초  유효 통계: Average, Sum, Min, Max, Sample Count   | 
| ModelUnloadingTime  |  컨테이너의 `UnloadModel` API 직접 호출을 통해 모델을 언로드하는 데 걸린 시간 간격입니다. 단위: 마이크로초  유효 통계: Average, Sum, Min, Max, Sample Count   | 
| ModelDownloadingTime |  Amazon Simple Storage Service(S3)에서 모델을 다운로드하는 데 걸린 시간 간격입니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count   | 
| ModelLoadingTime  |  컨테이너의 `LoadModel` API 직접 호출을 통해 모델을 로드하는 데 걸린 시간 간격입니다. 단위: 마이크로초  유효 통계: Average, Sum, Min, Max, Sample Count   | 
| ModelCacheHit  |  모델이 이미 로드된 다중 모델 엔드포인트로 전송된 `InvokeEndpoint` 요청 수입니다. 평균 통계는 모델이 이미 로드된 요청의 비율을 보여줍니다. 단위: 없음 유효한 통계: 평균, 합계, 샘플 개수  | 


**다중 모델 엔드포인트 모델 로드 지표의 차원**  

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

`/aws/sagemaker/Endpoints` 네임스페이스에는 [ InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html) 호출을 통해 생성된 다음과 같은 인스턴스 지표가 포함됩니다.

지표는 1분 간격으로 제공됩니다.

CloudWatch 지표의 보존 기간에 대한 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.


**다중 모델 엔드포인트 모델 인스턴스 지표**  

| 지표 | 설명 | 
| --- | --- | 
| LoadedModelCount  |  다중 모델 엔드포인트의 컨테이너에 로드된 모델 수입니다. 이 지표는 인스턴스별로 내보내집니다. 1분의 평균 통계는 인스턴스당 로드된 평균 모델 수를 나타냅니다. 합계 통계는 엔드포인트의 모든 인스턴스에 로드된 총 모델 수를 알려줍니다. 모델이 엔드포인트의 여러 컨테이너에 로드될 수 있기 때문에 이 지표가 추적하는 모델은 고유하지 않을 수 있습니다. 단위: 없음 유효 통계: Average, Sum, Min, Max, Sample Count  | 


**다중 모델 엔드포인트 모델 로드 지표의 차원**  

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

## SageMaker AI 작업 지표
<a name="cloudwatch-metrics-jobs"></a>

`/aws/sagemaker/ProcessingJobs`, `/aws/sagemaker/TrainingJobs`및 `/aws/sagemaker/TransformJobs` 네임스페이스에는 처리 작업, 훈련 작업 및 배치 변환 작업에 대한 다음 지표가 포함됩니다.

지표는 1분 간격으로 제공됩니다.

**참고**  
Amazon CloudWatch는 [고해상도 사용자 지정 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)를 지원하며, 최상의 해상도는 1초입니다. 그러나 해상도가 높을수록 CloudWatch 지표의 수명이 짧아집니다. 1초 주파수 해상도의 경우 CloudWatch 지표는 3시간 동안 사용할 수 있습니다. CloudWatch 지표의 해상도와 수명에 대한 자세한 내용은 Amazon CloudWatch API 참조의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)를 참조하세요.**

**작은 정보**  
훈련 작업을 100밀리초(0.1초)까지 세밀한 해상도로 프로파일링하고 언제든지 사용자 지정 분석을 위해 Amazon S3에 훈련 지표를 무기한 저장하기 위해 [Amazon SageMaker Debugger](https://docs.aws.amazon.com/sagemaker/latest/dg/train-debugger.html) 사용을 고려해 보세요. SageMaker Debugger는 일반적인 훈련 문제를 자동으로 감지하는 기본 제공 규칙을 제공합니다. 하드웨어 리소스 사용률 문제(예: CPU, GPU 및 I/O 병목 현상)를 감지합니다. 또한 수렴되지 않는 모델 문제(예: 과적합, 그라데이션 사라짐, 텐서 폭발)도 감지합니다. SageMaker Debugger는 Studio 및 프로파일링 보고서를 통해 시각화도 제공합니다. Debugger 시각화를 살펴보려면 [SageMaker Debugger 인사이트 대시보드 안내](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio-insights.html), [Debugger 프로파일링 보고서 안내](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-report.html) 및 [SMDebug 클라이언트 라이브러리를 사용한 데이터 분석](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-analyze-data.html)을 참조하세요.


**처리 작업, 훈련 작업 및 배치 변환 작업 지표**  

| 지표 | 설명 | 
| --- | --- | 
| CPUUtilization | 각 개별 CPU 코어 사용률의 합계. 각 코어 범위의 CPU 사용률은 0–100입니다. 예를 들어 CPU가 4개인 경우 CPUUtilization 범위는 0%\$1400%입니다. 처리 작업의 경우 이 값은 인스턴스에 있는 처리 컨테이너의 CPU 사용률입니다.훈련 작업의 경우 이 값은 인스턴스에 있는 알고리즘 컨테이너의 CPU 사용률입니다.배치 변환 작업의 경우 이 값은 인스턴스에 있는 변환 컨테이너의 CPU 사용률입니다. 다중 인스턴스 작업의 경우, 각 인스턴스가 CPU 사용률 지표를 보고합니다. 하지만 CloudWatch 내 기본 보기에는 모든 인스턴스의 평균 CPU 사용률이 표시됩니다. 단위: 백분율 | 
| DiskUtilization | 인스턴스의 컨테이너에서 사용하는 디스크 공간의 비율입니다. 이 값 범위는 0%\$1100%입니다. 배치 변환 작업에는 이 지표가 지원되지 않습니다.처리 작업의 경우 이 값은 인스턴스에 있는 처리 컨테이너의 디스크 공간 사용률입니다.훈련 작업의 경우 이 값은 인스턴스에 있는 알고리즘 컨테이너의 디스크 공간 사용률입니다.단위: 백분율 다중 인스턴스 작업의 경우, 각 인스턴스가 디스크 사용률 지표를 보고합니다. 하지만 CloudWatch 내 기본 보기에는 모든 인스턴스의 평균 디스크 사용률이 표시됩니다.  | 
| GPUMemoryUtilization | 인스턴스의 컨테이너에서 사용하는 GPU 메모리의 비율(%)입니다. 값 범위는 0\$1100이고, GPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUMemoryUtilization` 범위는 0%\$1400%입니다.처리 작업의 경우 이 값은 인스턴스에 있는 처리 컨테이너의 GPU 메모리 사용률입니다.훈련 작업의 경우 이 값은 인스턴스에 있는 알고리즘 컨테이너의 GPU 메모리 사용률입니다.배치 변환 작업의 경우 이 값은 인스턴스에 있는 변환 컨테이너의 GPU 메모리 사용률입니다. 다중 인스턴스 작업의 경우, 각 인스턴스가 GPU 메모리 사용률 지표를 보고합니다. 하지만 CloudWatch 내 기본 보기에는 모든 인스턴스의 평균 GPU 메모리 사용률이 표시됩니다. 단위: 백분율 | 
| GPUUtilization | 인스턴스의 컨테이너에서 사용하는 GPU 유닛의 비율(%)입니다. 값은 0\$1100 사이가 될 수 있고, GPU의 수를 곱합니다. 예를 들어 GPU가 4개인 경우 `GPUUtilization` 범위는 0%\$1400%입니다.처리 작업의 경우 이 값은 인스턴스에 있는 처리 컨테이너의 GPU 사용률입니다.훈련 작업의 경우 이 값은 인스턴스에 있는 알고리즘 컨테이너의 GPU 사용률입니다.배치 변환 작업의 경우 이 값은 인스턴스에 있는 변환 컨테이너의 GPU 사용률입니다. 다중 인스턴스 작업의 경우, 각 인스턴스가 GPU 사용률 지표를 보고합니다. 하지만 CloudWatch 내 기본 보기에는 모든 인스턴스의 평균 GPU 사용률이 표시됩니다. 단위: 백분율 | 
| MemoryUtilization | 인스턴스의 컨테이너에서 사용하는 메모리의 비율(%)입니다. 이 값 범위는 0%\$1100%입니다.처리 작업의 경우 이 값은 인스턴스에 있는 처리 컨테이너의 메모리 사용률입니다.훈련 작업의 경우 이 값은 인스턴스에 있는 알고리즘 컨테이너의 메모리 사용률입니다.배치 변환 작업의 경우 이 값은 인스턴스에 있는 변환 컨테이너의 메모리 사용률입니다.단위: 백분율 다중 인스턴스 작업의 경우, 각 인스턴스가 메모리 사용률 지표를 보고합니다. 하지만 CloudWatch 내 기본 보기에는 모든 인스턴스의 평균 메모리 사용률이 표시됩니다.  | 


**작업 지표의 차원**  

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

## SageMaker 추론 추천 작업 지표
<a name="cloudwatch-metrics-inference-recommender"></a>

`/aws/sagemaker/InferenceRecommendationsJobs` 네임스페이스에는 추론 추천 작업에 대한 다음 지표가 포함됩니다.


**추론 추천 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ClientInvocations |  추론 추천에서 관찰한 모델 엔드포인트로 전송된 `InvokeEndpoint` 요청 수입니다. 단위: 없음 유효 통계: Sum  | 
| ClientInvocationErrors |  추론 추천에서 관찰한 실패한 `InvokeEndpoint` 요청 수입니다. 단위: 없음 유효 통계: Sum  | 
| ClientLatency |  추론 추천에서 관찰한 `InvokeEndpoint` 호출 발신 후 응답 수신까지 걸린 시간 간격. 참고로 시간은 밀리초 단위인 반면 `ModelLatency` 엔드포인트 호출 지표는 마이크로초 단위입니다. 단위: 밀리초 유효 통계: Average, Sum, Min, Max, Sample Count, Percentiles  | 
| NumberOfUsers |  모델 엔드포인트에 `InvokeEndpoint` 요청을 보내는 동시 사용자 수입니다. 단위: 없음 유효 통계: Max, Min, Average  | 


**추론 추천 작업 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| JobName |  지정된 추론 추천 작업에 대한 추론 추천 작업 지표를 필터링합니다.  | 
| EndpointName |  지정된 엔드포인트에 대한 추론 추천 작업 지표를 필터링합니다.  | 

## Amazon SageMaker Ground Truth 지표
<a name="cloudwatch-metrics-ground-truth"></a>


**Ground Truth 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ActiveWorkers |  작업을 제출, 공개 또는 거부한 프라이빗 작업팀의 활성 작업자 한 명. 총 활성 작업자 수를 구하려면 Sum(합계) 통계를 사용하세요. Ground Truth는 각 개별 `ActiveWorkers` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 활성 작업자 수가 반영되지 않을 수 있습니다 단위: 없음 유효한 통계: Sum, Sample Count  | 
| DatasetObjectsAutoAnnotated |  레이블 지정 작업에서 자동으로 주석이 추가되는 데이터세트 객체의 수입니다. 이 지표는 자동화 레이블 지정 작업을 활성화한 경우에만 방출됩니다. 레이블 지정 작업 진행 상황을 보려면 Max 지표를 사용합니다. 단위: 없음 유효한 통계: Max  | 
| DatasetObjectsHumanAnnotated |  레이블 지정 작업에서 사람이 주석을 추가한 데이터세트 객체의 수입니다. 레이블 지정 작업 진행 상황을 보려면 Max 지표를 사용합니다. 단위: 없음 유효한 통계: Max  | 
| DatasetObjectsLabelingFailed |  레이블 지정 작업에서 레이블 지정에 실패한 데이터세트 객체의 수입니다. 레이블 지정 작업 진행 상황을 보려면 Max 지표를 사용합니다. 단위: 없음 유효한 통계: Max  | 
| JobsFailed |  단일 레이블 지정 작업이 실패했습니다. 실패한 총 레이블 지정 작업 수를 가져오려면 Sum(합계) 통계를 사용합니다. 단위: 없음 유효한 통계: Sum, Sample Count  | 
| JobsSucceeded |  단일 레이블 지정 작업이 성공했습니다. 성공한 총 레이블 지정 작업의 수를 가져오려면 Sum 통계를 사용합니다. 단위: 없음 유효한 통계: Sum, Sample Count  | 
| JobsStopped |  단일 레이블 지정 작업이 중단되었습니다. 중지된 총 레이블 지정 작업 수를 가져오려면 Sum 통계를 사용합니다. 단위: 없음 유효한 통계: Sum, Sample Count  | 
| TasksAccepted |  한 작업자가 단일 작업을 수락했습니다. 작업자가 수락한 총 작업 수를 구하려면 Sum(합계) 통계를 사용하세요. Ground Truth는 각 개별 `TaskAccepted` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 수락한 작업 수가 반영되지 않을 수 있습니다. 단위: 없음  유효한 통계: Sum, Sample Count  | 
| TasksDeclined |  한 작업자가 단일 작업을 거부했습니다. 작업자가 거부한 총 작업 수를 구하려면 Sum(합계) 통계를 사용하세요. Ground Truth는 각 개별 `TasksDeclined` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 거부한 작업 수가 반영되지 않을 수 있습니다. 단위: 없음 유효한 통계: Sum, Sample Count  | 
| TasksReturned |  단일 작업이 반환되었습니다. 반환된 총 작업 수를 구하려면 Sum(합계) 통계를 사용하세요. Ground Truth는 각 개별 `TasksReturned` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 반환된 작업 수가 반영되지 않을 수 있습니다. 단위: 없음  유효한 통계: Sum, Sample Count  | 
| TasksSubmitted |  프라이빗 작업자가 단일 작업을 제출/완료했습니다. 작업자가 제출한 총 작업 수를 구하려면 Sum(합계) 통계를 사용하세요. Ground Truth는 각 개별 `TasksSubmitted` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 제출된 작업 수가 반영되지 않을 수 있습니다. 단위: 없음 유효한 통계: Sum, Sample Count  | 
| TimeSpent |  프라이빗 작업자가 완료한 작업에 소요된 시간입니다. 작업자가 일시 중지하거나 휴식을 취한 시간은 이 지표에 포함되지 않습니다. Ground Truth는 각 `TimeSpent` 이벤트를 한 번 전달하려고 합니다. 전달이 실패할 경우 이 지표에 총 소비 시간이 반영되지 않을 수 있습니다. 단위: 초 유효한 통계: Sum, Sample Count  | 
| TotalDatasetObjectsLabeled |  레이블 지정 작업에서 성공적으로 레이블이 지정된 데이터세트 객체의 수입니다. 레이블 지정 작업 진행 상황을 보려면 Max 지표를 사용합니다. 단위: 없음 유효한 통계: Max  | 


**데이터 세트 객체 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| LabelingJobName |  레이블 지정 작업에 대한 데이터세트 객체 수 지표를 필터링합니다.  | 

## Amazon SageMaker 특성 스토어 지표
<a name="cloudwatch-metrics-feature-store"></a>


**특성 저장소 소비 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ConsumedReadRequestsUnits |  지정한 시간 동안 소비한 읽기 단위의 수. 특성 스토어 런타임 작업 및 해당 특성 그룹에 사용된 읽기 단위를 검색할 수 있습니다. 단위: 없음 유효한 통계: All  | 
| ConsumedWriteRequestsUnits |  지정한 시간 동안 소비한 쓰기 단위의 수. 특성 스토어 런타임 작업 및 해당 특성 그룹에 사용된 쓰기 단위를 검색할 수 있습니다. 단위: 없음 유효한 통계: All  | 
| ConsumedReadCapacityUnits |  지정된 기간 동안 사용된 읽기 용량 단위의 수입니다. 특성 스토어 런타임 작업 및 해당 특성 그룹에 사용된 프로비저닝된 읽기 단위를 검색할 수 있습니다. 단위: 없음 유효한 통계: All  | 
| ConsumedWriteCapacityUnits |  지정된 기간 동안 사용된 프로비저닝된 쓰기 용량 단위의 수입니다. 특성 스토어 런타임 작업 및 해당 특성 그룹에 사용된 쓰기 용량 단위를 검색할 수 있습니다. 단위: 없음 유효한 통계: All  | 


**특성 저장소 소비 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| FeatureGroupName, OperationName |  지정한 특성 그룹 및 작업의 특성 스토어 런타임 소비 지표를 필터링합니다.  | 


**특성 저장소 운영 지표**  

| 지표 | 설명 | 
| --- | --- | 
| Invocations |  지정된 기간 동안 특성 스토어 런타임 작업에 수행된 요청 수입니다. 단위: 없음 유효 통계: Sum  | 
| Operation4XXErrors |  작업이 4xx HTTP 응답 코드를 반환한 특성 스토어 런타임 작업에 이루어진 요청 수입니다. 각 4xx 응답에서 1이 전송되고, 그 외의 경우에는 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| Operation5XXErrors |  작업이 5xx HTTP 응답 코드를 반환한 특성 스토어 런타임 작업에 이루어진 요청 수입니다. 각 5xx 응답에서 1이 전송되고, 그 외의 경우에는 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| ThrottledRequests |  특성 스토어 런타임 작업에 요청되었으나 조절을 받은 요청 수입니다. 조절을 받은 각 요청에는 1이 전송되고, 그렇지 않으면 0이 전송됩니다. 단위: 없음 유효한 통계: Average, Sum  | 
| Latency |  특성 스토어 런타임 작업에의 요청을 처리하는 시간 간격입니다. 이 간격은 SageMaker AI가 요청을 수신할 때부터 클라이언트에 응답을 반환할 때까지 측정된 시간입니다. 단위: 마이크로초 유효 통계: Average, Sum, Min, Max, Sample Count, Percentiles  | 


**특성 저장소 운영 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
|  `FeatureGroupName`, `OperationName`  | 지정한 특성 그룹 및 작업의 특성 스토어 런타임 운영 지표를 필터링합니다. 이러한 차원은 GetRecord, PutRecord, DeleteRecord와 같은 비배치 작업에 사용할 수 있습니다. | 
| OperationName |  지정한 작업의 특성 스토어 런타임 운영 지표를 필터링합니다. 이 차원은 BatchGetRecord와 같은 배치 작업에 사용할 수 있습니다.  | 

## SageMaker Pipelines 지표
<a name="cloudwatch-metrics-pipelines"></a>

`AWS/Sagemaker/ModelBuildingPipeline` 네임스페이스에는 파이프라인 실행에 대한 다음 지표가 포함되어 있습니다.

파이프라인 실행 지표의 두 가지 범주를 사용할 수 있습니다.
+  **모든 파이프라인의 실행 지표** - 계정 수준 파이프라인 실행 지표 (현재 계정의 모든 파이프라인)
+  **파이프라인별 실행 지표** - 파이프라인별 파이프라인 실행 지표

지표는 1분 간격으로 제공됩니다.


**파이프라인 실행 지표**  

| 지표 | 설명 | 
| --- | --- | 
| ExecutionStarted |  시작된 파이프라인 실행 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| ExecutionFailed |  실패한 파이프라인 실행 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| ExecutionSucceeded |  성공한 파이프라인 실행 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| ExecutionStopped |  중지된 파이프라인 실행 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| ExecutionDuration |  파이프라인이 실행된 기간 (밀리초). 단위: 밀리초 유효 통계: Average, Sum, Min, Max, Sample Count  | 


**파이프라인 실행 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| PipelineName |  지정된 파이프라인의 파이프라인 실행 지표를 필터링합니다.  | 

`AWS/Sagemaker/ModelBuildingPipeline` 네임스페이스에는 파이프라인 단계에 대한 다음 지표가 포함되어 있습니다.

지표는 1분 간격으로 제공됩니다.


**파이프라인 단계 지표**  

| 지표 | 설명 | 
| --- | --- | 
| StepStarted |  시작된 단계의 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| StepFailed |  실패한 단계의 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| StepSucceeded |  성공한 단계의 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| StepStopped |  중지된 단계의 수입니다. 단위: 개 유효한 통계: Average, Sum  | 
| StepDuration |  단계가 실행된 기간 (밀리초). 단위: 밀리초 유효 통계: Average, Sum, Min, Max, Sample Count  | 


**파이프라인 단계 지표의 차원**  

| 차원 | 설명 | 
| --- | --- | 
| PipelineName, StepName |  지정된 파이프라인 및 단계의 단계 지표를 필터링합니다.  | 

# Amazon SageMaker AI용 CloudWatch Logs
<a name="logging-cloudwatch"></a>

컴파일 작업, 처리 작업, 훈련 작업, 엔드포인트, 변환 작업, 노트북 인스턴스 및 노트북 인스턴스 수명 주기 구성을 디버그하는 데 도움이 되도록 알고리즘 컨테이너, 모델 컨테이너 또는 노트북 인스턴스 수명 주기 구성이 `stdout`이나 `stderr`로 전송한 것은 또한 Amazon CloudWatch Logs로 전송됩니다. 디버깅 외에도 진행 분석에 이를 사용할 수 있습니다.

기본적으로 CloudWatch Logs에서 로그 데이터는 무기한으로 저장됩니다. 그러나 로그 그룹에서 로그 데이터를 저장할 기간을 구성할 수 있습니다. 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [CloudWatch에서 로그 데이터 보존 기간 변경](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)을 참조하세요.

**로그**

다음 표에는 Amazon SageMaker AI에서 제공하는 로그가 모두 나와 있습니다.

**로그**

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/logging-cloudwatch.html)

**참고**  
1. `/aws/sagemaker/NotebookInstances/[LifecycleConfigHook]` 로그 스트림은 수명 주기 구성을 사용하여 노트북 인스턴스를 만드는 경우 생성됩니다. 자세한 내용은 [LCC 스크립트를 사용하여 SageMaker 노트북 인스턴스 사용자 지정](notebook-lifecycle-config.md) 섹션을 참조하세요.  
2. 추론 파이프라인의 경우 컨테이너 이름을 입력하지 않으면 플랫폼에서 SageMaker AI 모델에서 제공되는 순서에 따라 \$1\$1container-1, container-2\$1\$1 등으로 이름을 지정합니다.

CloudWatch 로깅을 이용한 로그 이벤트에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [ Amazon CloudWatch Logs란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 참조하세요.

# 를 사용하여 Amazon SageMaker AI API 호출 로깅 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon SageMaker AI는 사용자, 역할 또는 AWS 서비스가 수행한 작업에 대한 레코드를 제공하는 서비스인 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)과 통합됩니다. CloudTrail은 Amazon SageMaker AI에 대한 모든 API 직접 호출을 이벤트로 캡처합니다. 캡처되는 직접 호출에는 Amazon SageMaker AI 콘솔로부터의 직접 호출과 Amazon SageMaker AI API 작업에 대한 코드 직접 호출이 포함됩니다. CloudTrail에서 수집한 정보를 사용하여 Amazon SageMaker AI에 전송된 요청, 요청이 이루어진 IP 주소, 요청이 이루어진 시간, 추가 세부 사항을 확인할 수 있습니다.

모든 이벤트 또는 로그 항목에는 요청을 생성했던 사용자에 관한 정보가 포함됩니다. 자격 증명을 이용하면 다음을 쉽게 판단할 수 있습니다.
+ 요청을 루트 사용자로 했는지 사용자 보안 인증으로 했는지 여부.
+ IAM Identity Center 사용자를 대신하여 요청이 이루어졌는지 여부입니다.
+ 역할 또는 페더레이션 사용자의 임시 자격 증명을 사용하여 요청이 생성되었는지 여부.
+ 다른 AWS 서비스에서 요청했는지 여부

CloudTrail은 계정을 생성할 AWS 계정 때에서 활성화되며 CloudTrail **이벤트 기록에** 자동으로 액세스할 수 있습니다. CloudTrail **이벤트 기록**은 지난 90일 간 AWS 리전의 관리 이벤트에 대해 보기, 검색 및 다운로드가 가능하고, 수정이 불가능한 레코드를 제공합니다. 자세한 설명은 *AWS CloudTrail 사용 설명서*의 [CloudTrail 이벤트 기록 작업](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)을 참조하세요. **이벤트 기록** 보기는 CloudTrail 요금이 부과되지 않습니다.

 AWS 계정 지난 90일 동안의 이벤트를 지속적으로 기록하려면 추적 또는 [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) 이벤트 데이터 스토어를 생성합니다.

**CloudTrail 추적**  
CloudTrail은 *추적*을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 를 사용하여 생성된 모든 추적 AWS Management Console 은 다중 리전입니다. AWS CLI를 사용하여 단일 리전 또는 다중 리전 추적을 생성할 수 있습니다. 계정 AWS 리전 의 모든에서 활동을 캡처하므로 다중 리전 추적을 생성하는 것이 좋습니다. 단일 리전 추적을 생성하는 경우 추적의 AWS 리전에 로깅된 이벤트만 볼 수 있습니다. 추적에 대한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [AWS 계정에 대한 추적 생성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) 및 [조직에 대한 추적 생성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)을 참조하세요.  
CloudTrail에서 추적을 생성하여 진행 중인 관리 이벤트의 사본 하나를 Amazon S3 버킷으로 무료로 전송할 수는 있지만, Amazon S3 스토리지 요금이 부과됩니다. CloudTrail 요금에 관한 자세한 내용은 [AWS CloudTrail 요금](https://aws.amazon.com/cloudtrail/pricing/)을 참조하세요. Amazon S3 요금에 관한 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

**CloudTrail Lake 이벤트 데이터 스토어**  
*CloudTrail Lake*를 사용하면 이벤트에 대해 SQL 기반 쿼리를 실행할 수 있습니다. CloudTrail Lake는 행 기반 JSON 형식의 기존 이벤트를 [ Apache ORC](https://orc.apache.org/) 형식으로 변환합니다. ORC는 빠른 데이터 검색에 최적화된 열 기반 스토리지 형식입니다. 이벤트는 *이벤트 데이터 스토어*로 집계되며, 이벤트 데이터 스토어는 [고급 이벤트 선택기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)를 적용하여 선택한 기준을 기반으로 하는 변경 불가능한 이벤트 컬렉션입니다. 이벤트 데이터 스토어에 적용하는 선택기는 어떤 이벤트가 지속되고 쿼리에 사용 가능한지를 제어합니다. CloudTrail Lake에 대한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [AWS CloudTrail Lake 작업을](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) 참조하세요.  
CloudTrail Lake 이벤트 데이터 스토어 및 쿼리에는 비용이 발생합니다. 이벤트 데이터 스토어를 생성할 때 이벤트 데이터 스토어에 사용할 [요금 옵션](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)을 선택합니다. 요금 옵션에 따라 이벤트 모으기 및 저장 비용과 이벤트 데이터 스토어의 기본 및 최대 보존 기간이 결정됩니다. CloudTrail 요금에 관한 자세한 내용은 [AWS CloudTrail 요금](https://aws.amazon.com/cloudtrail/pricing/)을 참조하세요.

보안을 위해 CloudTrail 로그를 모니터링하여 비정상적인 사용자 활동을 식별할 수 있습니다. 에 대한 로그 모니터링에 대한 자세한 내용은 [로깅 및 모니터링](sagemaker-incident-response.md) 섹션을 참조하세요.

## CloudTrail의 Amazon SageMaker AI 데이터 이벤트
<a name="cloudtrail-data-events"></a>

[데이터 이벤트](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)는 리소스 기반 또는 리소스에서 수행된 리소스 작업에 대한 정보를 제공합니다(예: Amazon S3 객체 읽기 또는 쓰기). 이를 데이터 플레인 작업이라고도 합니다. 데이터 이벤트는 흔히 대량 활동입니다. 기본적으로 CloudTrail은 데이터 이벤트를 로깅하지 않습니다. CloudTrail **이벤트 기록**은 데이터 이벤트를 기록하지 않습니다.

데이터 이벤트에는 추가 요금이 적용됩니다. CloudTrail 요금에 관한 자세한 내용은 [AWS CloudTrail 요금](https://aws.amazon.com/cloudtrail/pricing/)을 참조하세요.

CloudTrail 콘솔, AWS CLI또는 CloudTrail API 작업을 사용하여 Amazon SageMaker AI 리소스 유형에 대한 데이터 이벤트를 로그할 수 있습니다. 데이터 이벤트를 로깅하는 방법에 관한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [AWS Management Console을 사용한 데이터 이벤트 로깅](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console) 및 [AWS Command Line Interface를 사용한 이벤트 데이터 로깅](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI)을 참조하세요.

다음 표에는 데이터 이벤트를 로그할 수 있는 Amazon SageMaker AI 리소스 유형이 나열되어 있습니다. 리소스 유형(콘솔) 열에는 CloudTrail 콘솔의 **리소스 유형** 목록에서 선택할 값이 표시됩니다. **resources.type 값** 열에는 AWS CLI 또는 CloudTrail APIs를 사용하여 고급 이벤트 선택기를 구성할 때 지정하는 `resources.type` 값이 표시됩니다. **CloudTrail에 로깅되는 데이터 API** 열에는 리소스 유형에 대해 CloudTrail에 로깅된 API 직접 호출이 표시됩니다.


| 리소스 유형(콘솔) | resources.type 값 | CloudTrail에 로깅되는 데이터 API | 
| --- | --- | --- | 
| SageMaker 엔드포인트 |  AWS::SageMaker::Endpoint  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/logging-using-cloudtrail.html)  | 

**참고**  
`InvokeEndpoint` 및 `InvokeEndpointAsync` API 직접 호출은 요청 파라미터를 로그하지 않습니다.

`eventName`, `readOnly` 및 `resources.ARN` 필드를 필터링하여 중요한 이벤트만 로깅하도록 고급 이벤트 선택기를 구성할 수 있습니다. 이러한 필드에 관한 자세한 내용은 *AWS CloudTrail API 참조*의 [https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html) 섹션을 참조하세요.

다음 예시에서는 Amazon SageMaker 엔드포인트에 대한 데이터 이벤트를 로그하는 방법을 보여줍니다. 이 예시에서는 [put-event-selectors](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/put-event-selectors.html) AWS CLI 명령을 사용하여 엔드포인트에서 데이터 이벤트를 캡처하는 고급 이벤트 선택기를 추가합니다. 기존 CloudTrail 추적 기능이 포함되어 있어야 합니다. 명령을 실행하기 전에 고급 이벤트 선택기 JSON 객체를 다음과 같은 파일에 저장할 수도 있습니다.

```
[
  {
    "FieldSelectors": [
      {
        "Field": "eventCategory",
        "Equals": ["Data"]
      },
      {
        "Field": "resources.ARN",
        "Equals": ["arn:aws:sagemaker:us-east-1:111122223333:endpoint/your-inference-endpoint-arn"]
      },
      {
        "Field": "resources.type",
        "Equals": ["AWS::SageMaker::Endpoint"]
      }
    ]
  }
]
```

그런 다음, 다음 명령을 실행하여 엔드포인트에서 데이터 이벤트 로깅을 시작할 수 있습니다.

```
aws cloudtrail put-event-selectors
      --trail-name your-trail-name
      --advanced-event-selectors=file://advanced-event-selectors.json # specify your previously created JSON file
```

## CloudTrail의 Amazon SageMaker AI 관리 이벤트
<a name="cloudtrail-management-events"></a>

[관리 이벤트](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)는의 리소스에서 수행되는 관리 작업에 대한 정보를 제공합니다 AWS 계정. 이를 컨트롤 플레인 작업이라고도 합니다. 기본적으로 CloudTrail은 관리 이벤트를 로깅합니다.

Amazon SageMaker AI는 모든 Amazon SageMaker AI 컨트롤 플레인 작업을 관리 이벤트로 로깅합니다. Amazon SageMaker AI에서 CloudTrail에 로깅하는 Amazon SageMaker AI 컨트롤 플레인 작업 목록은 [Amazon SageMaker AI API 참조](https://docs.aws.amazon.com/sagemaker/latest/APIReference)를 참조하세요.

## 자동 모델 튜닝에서 수행된 작업
<a name="automatic-tuning-secondary"></a>

SageMaker AI는 자동 모델 튜닝 작업을 위해 API가 아닌 서비스 이벤트를 CloudTrail 로그 파일에 로깅합니다. 이러한 이벤트는 튜닝 작업과 관련이 있지만 퍼블릭 AWS API에 대한 고객 요청의 직접적인 결과는 아닙니다. 예를 들어 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)을 직접적으로 호출하여 하이퍼파라미터 튜닝 작업을 만들면 SageMaker AI는 하이퍼파라미터의 다양한 조합을 평가하여 최적의 결과를 찾기 위한 훈련 작업을 만듭니다. 마찬가지로 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopHyperParameterTuningJob.html)을 호출하여 하이퍼파라미터 튜닝 작업을 중지하면 SageMaker AI가 실행 중인 연결된 훈련 작업을 중지할 수 있습니다. 튜닝 작업에 대한 비 API 이벤트는 AWS 계정의 거버넌스, 규정 준수, 운영 및 위험 감사를 개선하는 데 도움이 되도록 CloudTrail에 기록됩니다.

비 API 서비스에서 생성되는 로그 항목은 `AwsApiCall` 대신 `AwsServiceEvent`의 `eventType`입니다.

## Amazon SageMaker AI 이벤트 예시
<a name="understanding-sagemaker-entries"></a>

이벤트는 모든 소스로부터의 단일 요청을 나타내며 요청된 API 작업, 작업 날짜와 시간, 요청 파라미터 등에 관한 정보가 들어 있습니다. CloudTrail 로그 파일은 퍼블릭 API 직접 호출의 주문 스택 추적이 아니므로 이벤트가 특정 순서로 표시되지 않습니다.

다음 예제는 `CreateEndpoint` 작업을 시연하는 CloudTrail 이벤트를 보여줍니다.

```
{
    "eventVersion":"1.05",
    "userIdentity": {
        "type":"IAMUser",
        "principalId":"AIXDAYQEXAMPLEUMLYNGL",
        "arn":"arn:aws:iam::123456789012:user/intern",
        "accountId":"123456789012",
        "accessKeyId":"ASXIAGXEXAMPLEQULKNXV",
        "userName":"intern"
    },
    "eventTime":"2018-01-02T13:39:06Z",
    "eventSource":"sagemaker.amazonaws.com",
    "eventName":"CreateEndpoint",
    "awsRegion":"us-west-2",
    "sourceIPAddress":"127.0.0.1",
    "userAgent":"USER_AGENT",
    "requestParameters": {
        "endpointName":"ExampleEndpoint",
        "endpointConfigName":"ExampleEndpointConfig"
    },
    "responseElements": {
        "endpointArn":"arn:aws:sagemaker:us-west-2:123456789012:endpoint/exampleendpoint"
    },
    "requestID":"6b1b42b9-EXAMPLE",
    "eventID":"a6f85b21-EXAMPLE",
    "eventType":"AwsApiCall",
    "recipientAccountId":"444455556666"
}
```

다음 예제는 `CreateModel` 작업을 시연하는 CloudTrail 이벤트를 보여줍니다.

```
{
    "eventVersion":"1.05",
    "userIdentity": {
        "type":"IAMUser",
        "principalId":"AIXDAYQEXAMPLEUMLYNGL",
        "arn":"arn:aws:iam::123456789012:user/intern",
        "accountId":"123456789012",
        "accessKeyId":"ASXIAGXEXAMPLEQULKNXV",
        "userName":"intern"
    },
    "eventTime":"2018-01-02T15:23:46Z",
    "eventSource":"sagemaker.amazonaws.com",
    "eventName":"CreateModel",
    "awsRegion":"us-west-2",
    "sourceIPAddress":"127.0.0.1",
    "userAgent":"USER_AGENT",
    "requestParameters": {
        "modelName":"ExampleModel",
        "primaryContainer": {
            "image":"174872318107.dkr.ecr.us-west-2.amazonaws.com/kmeans:latest"
        },
        "executionRoleArn":"arn:aws:iam::123456789012:role/EXAMPLEARN"
    },
    "responseElements": {
        "modelArn":"arn:aws:sagemaker:us-west-2:123456789012:model/barkinghappy2018-01-02t15-23-32-275z-ivrdog"
    },
    "requestID":"417b8dab-EXAMPLE",
    "eventID":"0f2b3e81-EXAMPLE",
    "eventType":"AwsApiCall",
    "recipientAccountId":"444455556666"
}
```

CloudTrail 레코드 콘텐츠에 관한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [CloudTrail 레코드 콘텐츠](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)를 참조하세요.

# sourceIdentity를 사용한 SageMaker AI Studio Classic에서 사용자 리소스 액세스 모니터링
<a name="monitor-user-access"></a>

Amazon SageMaker Studio Classic를 사용하여 사용자가 리소스에 액세스하는 것을 모니터링할 수 있습니다. 리소스 액세스 활동을 보려면를 사용하여 Amazon SageMaker API 호출 로깅의 단계에 따라 사용자 활동을 모니터링하고 기록 AWS CloudTrail 하도록를 구성할 수 있습니다. [ Amazon SageMaker AWS CloudTrail](https://docs.aws.amazon.com/sagemaker/latest/dg/logging-using-cloudtrail.html) 

그러나 리소스 액세스에 대한 AWS CloudTrail 로그에는 Studio Classic 실행 IAM 역할만 식별자로 나열됩니다. 이 수준의 로깅은 각 사용자 프로필에 고유한 실행 역할이 있을 때 사용자 활동을 감사하기에 충분합니다. 그러나 여러 사용자 프로필 간에 단일 실행 IAM 역할이 공유되면 AWS 리소스에 액세스한 특정 사용자에 대한 정보를 가져올 수 없습니다.  

Studio Classic 사용자 프로필 이름을 전파하기 위해 `sourceIdentity` 구성을 사용하여 공유된 실행 역할을 사용할 때 AWS CloudTrail 로그에서 작업을 수행한 특정 사용자에 대한 정보를 얻을 수 있습니다. 소스 자격 증명에 대한 자세한 내용은 [위임된 역할로 수행한 작업 모니터링 및 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html)를 참고하세요. CloudTrail 로그에 대해 `sourceIdentity`를 켜거나 끄려면 [SageMaker AI Studio Classic에서 CloudTrail 로그의 sourceIdentity 사용 설정](monitor-user-access-how-to.md) 섹션을 참조하세요.

## sourceIdentity 사용 시 고려 사항
<a name="monitor-user-access-considerations"></a>

Studio Classic 노트북, SageMaker Canvas 또는 Amazon SageMaker Data Wrangler에서 AWS API를 호출하는 경우 해당 호출이 Studio Classic [실행 역할](sagemaker-roles.md) 세션 또는 해당 세션의 [연결된 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining) 사용하여 이루어진 경우에만가 CloudTrail에 기록`sourceIdentity`됩니다.

이러한 API 직접 호출이 다른 서비스를 호출하여 추가 작업을 수행하는 경우, `sourceIdentity` 로깅은 호출된 서비스의 특정 구현에 따라 달라집니다.
+ Amazon SageMaker 훈련 및 프로세싱: 훈련 기능이나 프로세싱 기능을 사용하여 작업을 만드는 경우 작업 만들기 API 직접 호출은 세션에 있는 `sourceIdentity`를 수집합니다. 따라서 이러한 작업에서 이루어진 모든 AWS API 직접 호출은 CloudTrail 로그에서 `sourceIdentity`를 기록합니다.
+ Amazon SageMaker 파이프라인: 자동 CI/CD 파이프라인을 사용하여 작업을 생성할 때 `sourceIdentity`는 다운스트림으로 전파되며 CloudTrail 로그에서 볼 수 있습니다.
+ Amazon EMR: [런타임 역할](studio-notebooks-emr-cluster-rbac.md)을 사용하여 Studio Classic에서 Amazon EMR에 연결하는 경우 관리자는 명시적으로 [PropagateSourceIdentity 필드를 설정](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html)해야 합니다. 이렇게 하면 Amazon EMR이 호출 보안 인증 정보의 `sourceIdentity`를 작업 또는 쿼리 세션에 적용할 수 있습니다. 그러면 `sourceIdentity`가 CloudTrail 로그에 기록됩니다.

**참고**  
`sourceIdentity`를 사용할 때 다음과 같은 예외가 적용됩니다.  
SageMaker Studio Classic 공유 스페이스는 `sourceIdentity` 패스스루를 지원하지 않습니다. SageMaker AI 공유 스페이스에서 이루어진 AWS API 호출은 CloudTrail 로그`sourceIdentity`에 기록되지 않습니다.
사용자 또는 다른 서비스에서 생성한 세션에서 AWS API 호출이 이루어지고 세션이 Studio Classic 실행 역할 세션을 기반으로 하지 않는 경우 `sourceIdentity`는 CloudTrail 로그에 기록되지 않습니다.

# SageMaker AI Studio Classic에서 CloudTrail 로그의 sourceIdentity 사용 설정
<a name="monitor-user-access-how-to"></a>

Amazon SageMaker Studio Classic을 사용하여 사용자가 리소스에 액세스하는 것을 모니터링할 수 있습니다. 하지만, 리소스 액세스에 대한 AWS CloudTrail 로그에는 Studio Classic 실행 IAM 역할만 식별자로 나열됩니다. 여러 사용자 프로필 간에 단일 실행 IAM 역할을 공유하는 경우 `sourceIdentity` 구성을 사용하여 AWS 리소스에 액세스한 특정 사용자에 대한 정보를 가져와야 합니다.

다음 주제에서는 `sourceIdentity` 구성을 켜거나 끄는 방법을 설명합니다.

**Topics**
+ [사전 조건](#monitor-user-access-prereq)
+ [sourceIdentity 켜기](#monitor-user-access-enable)
+ [sourceIdentity 사용 중지](#monitor-user-access-disable)

## 사전 조건
<a name="monitor-user-access-prereq"></a>
+ [최신 버전의 설치 또는 업데이트 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)의 AWS Command Line Interface 다음 단계를 설치하고 구성합니다.
+ 도메인의 Studio Classic 사용자에게 도메인을 업데이트하거나 수정할 수 있는 정책이 없도록 해야 합니다.  
+ `sourceIdentity` 전파를 켜거나 끄려면 도메인의 모든 앱이 `Stopped` 또는 `Deleted` 상태여야 합니다. 앱을 중지하고 종료하는 방법에 대한 자세한 내용은 [Studio Classic 앱 종료 및 업데이트](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks-update-apps.html)를 참고하세요.
+ 소스 ID 전파가 켜져 있는 경우 모든 실행 역할에는 다음과 같은 신뢰 정책 권한이 있어야 합니다. 
  + 도메인의 실행 역할이 위임하는 모든 역할에는 다음과 같은 신뢰 정책에 `sts:SetSourceIdentity` 권한이 있어야 합니다. 이 권한이 누락된 경우 작업 생성 API를 호출할 `ValidationError` 때 `AccessDeniedException` 또는 에서 작업이 실패합니다. 다음 예시 신뢰 정책에는 `sts:SetSourceIdentity` 권한이 포함되어 있습니다.

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "sagemaker.amazonaws.com"
                },
                "Action": [
                    "sts:AssumeRole",
                    "sts:SetSourceIdentity"
                ]
            }
        ]
    }
    ```

------
  + 역할 체이닝이라고 하는 다른 역할을 맡을 때는 다음과 같이 하세요.
    + 역할을 맡고 있는 보안 주체의 권한 정책 및 대상 역할의 역할 신뢰 정책 모두에서 `sts:SetSourceIdentity`에 대한 권한이 필요합니다. 그렇지 않으면 역할 수임 작업이 실패합니다.
    +  이 역할 체이닝은 Studio Classic 또는 Amazon EMR과 같은 다른 다운스트림 서비스에서 발생할 수 있습니다. 역할 체이닝에 대한 자세한 내용은 [역할 용어 및 개념](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)을 참고하세요.

## sourceIdentity 켜기
<a name="monitor-user-access-enable"></a>

Studio Classic에서 `sourceIdentity`와 같이 사용자 프로필 이름을 전파하는 기능은 기본적으로 꺼져 있습니다.

사용자 프로필 이름을 로 전파하는 기능을 활성화하려면 도메인 생성 및 도메인 업데이트 AWS CLI 중에를 `sourceIdentity`사용합니다. 이 기능은 사용자 프로필 수준이 아닌 도메인 수준에서 사용할 수 있습니다.

 이 구성을 활성화하면 관리자는 액세스한 서비스의 AWS CloudTrail 로그에서 사용자 프로필을 볼 수 있습니다. 사용자 프로필은 `userIdentity` 섹션의 `sourceIdentity` 값으로 제공됩니다. SageMaker AI에서 AWS CloudTrail 로그를 사용하는 방법에 대한 자세한 내용은 [를 사용하여 Amazon SageMaker AI API 호출 로깅을 참조하세요 AWS CloudTrail](https://docs.aws.amazon.com/sagemaker/latest/dg/logging-using-cloudtrail.html).

다음 코드를 사용하면 `create-domain` API를 사용하여 도메인을 생성할 때 `sourceIdentity`와 마찬가지로 사용자 프로필 이름을 전파할 수 있습니다.

```
create-domain
--domain-name <value>
--auth-mode <value>
--default-user-settings <value>
--subnet-ids <value>
--vpc-id <value>
[--tags <value>]
[--app-network-access-type <value>]
[--home-efs-file-system-kms-key-id <value>]
[--kms-key-id <value>]
[--app-security-group-management <value>]
[--domain-settings "ExecutionRoleIdentityConfig=USER_PROFILE_NAME"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

`update-domain` API를 사용하여 도메인을 업데이트할 때 `sourceIdentity`와 마찬가지로 사용자 프로필 이름을 전파할 수 있습니다.

이 구성을 업데이트하려면 도메인의 모든 앱이 `Stopped` 또는 `Deleted` 상태여야 합니다. 앱을 중지하고 종료하는 방법에 대한 자세한 내용은 [Studio Classic 앱 종료 및 업데이트](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks-update-apps.html)를 참고하세요.

다음 코드를 사용하면 `sourceIdentity`와 마찬가지로 사용자 프로필 이름을 전파할 수 있습니다.

```
update-domain
--domain-id <value>
[--default-user-settings <value>]
[--domain-settings-for-update "ExecutionRoleIdentityConfig=USER_PROFILE_NAME"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

## sourceIdentity 사용 중지
<a name="monitor-user-access-disable"></a>

 AWS CLI를 사용하여 `sourceIdentity`와 마찬가지로 사용자 프로필 이름의 전파를 끌 수도 있습니다. 이는 도메인 업데이트 중에 `update-domain` API 직접 호출의 일부로 `--domain-settings-for-update` 매개변수의 `ExecutionRoleIdentityConfig=DISABLED` 값을 전달하여 발생합니다.

에서 다음 코드를 AWS CLI사용하여 사용자 프로필 이름의 전파를 로 비활성화합니다`sourceIdentity`.

```
update-domain
 --domain-id <value>
[--default-user-settings <value>]
[--domain-settings-for-update "ExecutionRoleIdentityConfig=DISABLED"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

# Amazon SageMaker AI에서 Amazon EventBridge로 보내는 이벤트
<a name="automating-sagemaker-with-eventbridge"></a>

Amazon EventBridge는 Amazon SageMaker AI의 상태 변경 이벤트를 모니터링합니다. EventBridge를 사용하면 SageMaker AI를 자동화하고 훈련 작업 상태 변경 또는 엔드포인트 상태 변경 같은 이벤트에 자동으로 응답할 수 있습니다. SageMaker AI의 이벤트는 거의 실시간으로 EventBridge로 전송됩니다. 원하는 이벤트만 표시하도록 간단한 규칙을 작성한 후 규칙과 일치하는 이벤트 발생 시 실행할 자동화 작업을 지정할 수 있습니다. 규칙을 만들려면 [Creating rules that react to events in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)를 참조하세요. 를 사용하는 경우 *AWS CLI 명령* AWS CLI참조의 [put-rule](https://docs.aws.amazon.com/cli/latest/reference/events/put-rule.html)을 참조하세요.

다음 섹션에서는 SageMaker AI가 EventBridge로 전송하는 이벤트를 예시와 함께 설명합니다. 예제를 사용하면 자동화 규칙을 작성하는 데 도움이 될 수 있습니다.

**참고**  
SageMaker AI는 각 상태 변경에 대해 EventBridge에 여러 이벤트를 전송할 수 있습니다. 이 동작은 예상된 것이며 반드시 오류를 나타내는 것은 아닙니다.

자동으로 트리거할 수 있는 작업의 몇가지 예는 다음과 같습니다.
+  AWS Lambda 함수 호출
+ Amazon EC2 Run Command 호출
+ Amazon Kinesis Data Streams로 이벤트 릴레이
+  AWS Step Functions 상태 시스템 활성화
+ Amazon SNS 주제 또는 AWS SMS 대기열 알림

**Topics**
+ [SageMaker 엔드포인트 배포 상태 변경](#eventbridge-deployment-state)
+ [SageMaker 엔드포인트 상태 변경](#eventbridge-endpoint)
+ [SageMaker 특성 그룹 상태 변경](#eventbridge-feature-group)
+ [SageMaker 하이퍼파라미터 튜닝 작업 상태 변경](#eventbridge-hpo)
+ [SageMaker HyperPod 클러스터 이벤트](#eventbridge-hyperpod-cluster-event)
+ [SageMaker HyperPod 클러스터 노드 상태](#eventbridge-hyperpod-node-health)
+ [SageMaker HyperPod 클러스터 상태 변경](#eventbridge-hyperpod-cluster-state)
+ [SageMaker 이미지 상태 변경](#eventbridge-image-state)
+ [SageMaker 이미지 버전 상태 변경](#eventbridge-image-version-state)
+ [SageMaker 모델 카드 상태 변경](#eventbridge-model-card-state)
+ [SageMaker 모델 패키지 상태 변경](#eventbridge-model-package)
+ [SageMaker 모델 상태 변경](#eventbridge-model)
+ [SageMaker 파이프라인 실행 상태 변경](#eventbridge-pipeline)
+ [SageMaker 파이프라인 단계 상태 변경](#eventbridge-pipeline-step)
+ [SageMaker 프로세싱 작업 상태 변경](#processing-job-state)
+ [SageMaker 훈련 작업 상태 변경](#eventbridge-training)
+ [SageMaker 변환 작업 상태 변경](#eventbridge-transform)

## SageMaker 엔드포인트 배포 상태 변경
<a name="eventbridge-deployment-state"></a>

**중요**  
다음 예제는 모든 엔드포인트에 대해 작동하지 않을 수 있습니다. 엔드포인트를 제외할 수 있는 특성 목록은 [제외](deployment-guardrails-exclusions.md) 페이지를 참조하세요.

엔드포인트 배포의 상태 변경을 나타냅니다. 다음 예는 블루/그린 Canary 배포를 통한 엔드포인트 업데이트를 보여줍니다.

```
{
    "version": "0",
    "id": "0bd4a141-0a02-9d8a-f977-3924c3fb259c",
    "detail-type": "SageMaker Endpoint Deployment State Change",
    "source": "aws.sagemaker",
    "account": "111122223333",
    "time": "2021-10-25T01:52:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:sagemaker:us-west-2:111122223333:endpoint/sample-endpoint"
    ],
    "detail": {
        "EndpointName": "sample-endpoint",
        "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/sample-endpoint",
        "EndpointConfigName": "sample-endpoint-config-1",
        "ProductionVariants": [
            {
                "VariantName": "AllTraffic",
                "CurrentWeight": 1,
                "DesiredWeight": 1,
                "CurrentInstanceCount": 3,
                "DesiredInstanceCount": 3
            }
        ],
        "EndpointStatus": "UPDATING",
        "CreationTime": 1635195148181,
        "LastModifiedTime": 1635195148181,
        "Tags": {},
        "PendingDeploymentSummary": {
            "EndpointConfigName": "sample-endpoint-config-2",
            "StartTime": Timestamp,
            "ProductionVariants": [
                {
                    "VariantName": "AllTraffic",
                    "CurrentWeight": 1,
                    "DesiredWeight": 1,
                    "CurrentInstanceCount": 1,
                    "DesiredInstanceCount": 3,
                    "VariantStatus": [
                        {
                            "Status": "Baking",
                            "StatusMessage": "Baking for 600 seconds (TerminationWaitInSeconds) with traffic enabled on canary capacity of 1 instance(s).",
                            "StartTime": 1635195269181,
                        }
                    ]
                }
            ]
        }
    }
}
```

다음 예는 기존 엔드포인트 구성을 새 용량으로 업데이트하는 엔드포인트 배포의 상태 변경을 나타냅니다.

```
{
    "version": "0",
    "id": "0bd4a141-0a02-9d8a-f977-3924c3fb259c",
    "detail-type": "SageMaker Endpoint Deployment State Change",
    "source": "aws.sagemaker",
    "account": "111122223333",
    "time": "2021-10-25T01:52:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:sagemaker:us-west-2:651393343886:endpoint/sample-endpoint"
    ],
    "detail": {
        "EndpointName": "sample-endpoint",
        "EndpointArn": "arn:aws:sagemaker:us-west-2:651393343886:endpoint/sample-endpoint",
        "EndpointConfigName": "sample-endpoint-config-1",
        "ProductionVariants": [
            {
                "VariantName": "AllTraffic",
                "CurrentWeight": 1,
                "DesiredWeight": 1,
                "CurrentInstanceCount": 3,
                "DesiredInstanceCount": 6,
                "VariantStatus": [
                    {
                        "Status": "Updating",
                        "StatusMessage": "Scaling out desired instance count to 6.",
                        "StartTime": 1635195269181,
                    }
                ]
            }
        ],
        "EndpointStatus": "UPDATING",
        "CreationTime": 1635195148181,
        "LastModifiedTime": 1635195148181,
        "Tags": {},
    }
```

엔드포인트(`VariantStatus` 객체에 있음)에 대해서도 다음과 같은 보조 배포 상태를 사용할 수 있습니다.
+ `Creating`: 프로덕션 변형에 대한 인스턴스 생성.

  예제 메시지: `"Launching X instance(s)."`
+ `Deleting`: 프로덕션 변형에 대한 인스턴스 종료.

  예제 메시지: `"Terminating X instance(s)."`
+ `Updating`: 프로덕션 변형의 용량 업데이트.

  예제 메시지ㅣ `"Launching X instance(s)."`, `"Scaling out desired instance count to X."` 
+ `ActivatingTraffic`: 프로덕션 변형에 대한 트래픽 켜기.

  예제 메시지: `"Activating traffic on canary capacity of X instance(s)."`
+ `Baking`: 자동 롤백 구성에서 CloudWatch 경보를 모니터링하기 위한 대기 시간입니다.

  예제 메시지: `"Baking for X seconds (TerminationWaitInSeconds) with traffic enabled on full capacity of Y instance(s)."`

## SageMaker 엔드포인트 상태 변경
<a name="eventbridge-endpoint"></a>

SageMaker AI가 호스팅하는 실시간 추론 엔드포인트의 상태 변경을 나타냅니다.

다음은 `IN_SERVICE` 상태에 있는 엔드포인트의 이벤트를 보여줍니다.

```
{
  "version": "0",
  "id": "d2921b5a-b0ad-cace-a8e3-0f159d018e06",
  "detail-type": "SageMaker Endpoint State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "1583831889050",
  "region": "us-west-2",
  "resources": [
      "arn:aws:sagemaker:us-west-2:111122223333:endpoint/myendpoint"
  ],
  "detail": {
      "EndpointName": "MyEndpoint",
      "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/myendpoint",
      "EndpointConfigName": "MyEndpointConfig",
      "ProductionVariants": [
          {
              "DesiredWeight": 1.0,
              "DesiredInstanceCount": 1.0
          }
      ],
      "EndpointStatus": "IN_SERVICE",
      "CreationTime": 1592411992203.0,
      "LastModifiedTime": 1592411994287.0,
      "Tags": {

      }
  }
}
```

## SageMaker 특성 그룹 상태 변경
<a name="eventbridge-feature-group"></a>

SageMaker 특성 그룹의 `FeatureGroupStatus` 또는`OfflineStoreStatus`의 변경 사항을 나타냅니다.

```
{
  "version": "0",
  "id": "93201303-abdb-36a4-1b9b-4c1c3e3671c0",
  "detail-type": "SageMaker Feature Group State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-01-26T01:22:01Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:sagemaker:us-east-1:111122223333:feature-group/sample-feature-group"
  ],
  "detail": {
    "FeatureGroupArn": "arn:aws:sagemaker:us-east-1:111122223333:feature-group/sample-feature-group",
    "FeatureGroupName": "sample-feature-group",
    "RecordIdentifierFeatureName": "RecordIdentifier",
    "EventTimeFeatureName": "EventTime",
    "FeatureDefinitions": [
      {
        "FeatureName": "RecordIdentifier",
        "FeatureType": "Integral"
      },
      {
        "FeatureName": "EventTime",
        "FeatureType": "Fractional"
      }
    ],
    "CreationTime": 1611624059000,
    "OnlineStoreConfig": {
      "EnableOnlineStore": true
    },
    "OfflineStoreConfig": {
      "S3StorageConfig": {
        "S3Uri": "s3://offline/s3/uri"
      },
      "DisableGlueTableCreation": false,
      "DataCatalogConfig": {
        "TableName": "sample-feature-group-1611624059",
        "Catalog": "AwsDataCatalog",
        "Database": "sagemaker_featurestore"
      }
    },
    "RoleArn": "arn:aws:iam::111122223333:role/SageMakerRole",
    "FeatureGroupStatus": "Active",
    "Tags": {}
  }
}
```

## SageMaker 하이퍼파라미터 튜닝 작업 상태 변경
<a name="eventbridge-hpo"></a>

SageMaker 하이퍼파라미터 튜닝 작업의 상태 변화를 표시합니다.

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "SageMaker HyperParameter Tuning Job State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:sagemaker:us-east-1:111122223333:tuningJob/x"
  ],
  "detail": {
    "HyperParameterTuningJobName": "016bffd3-6d71-4d3a-9710-0a332b2759fc",
    "HyperParameterTuningJobArn": "arn:aws:sagemaker:us-east-1:111122223333:tuningJob/x",
    "TrainingJobDefinition": {
      "StaticHyperParameters": {},
      "AlgorithmSpecification": {
        "TrainingImage": "trainingImageName",
        "TrainingInputMode": "inputModeFile",
        "MetricDefinitions": [
          {
            "Name": "metricName",
            "Regex": "regex"
          }
        ]
      },
      "RoleArn": "roleArn",
      "InputDataConfig": [
        {
          "ChannelName": "channelName",
          "DataSource": {
            "S3DataSource": {
              "S3DataType": "s3DataType",
              "S3Uri": "s3Uri",
              "S3DataDistributionType": "s3DistributionType"
            }
          },
          "ContentType": "contentType",
          "CompressionType": "gz",
          "RecordWrapperType": "RecordWrapper"
        }
      ],
      "VpcConfig": {
        "SecurityGroupIds": [
          "securityGroupIds"
        ],
        "Subnets": [
          "subnets"
        ]
      },
      "OutputDataConfig": {
        "KmsKeyId": "kmsKeyId",
        "S3OutputPath": "s3OutputPath"
      },
      "ResourceConfig": {
        "InstanceType": "instanceType",
        "InstanceCount": 10,
        "VolumeSizeInGB": 500,
        "VolumeKmsKeyId": "volumeKeyId"
      },
      "StoppingCondition": {
        "MaxRuntimeInSeconds": 3600
      }
    },
    "HyperParameterTuningJobStatus": "status",
    "CreationTime": "1583831889050",
    "LastModifiedTime": "1583831889050",
    "TrainingJobStatusCounters": {
      "Completed": 1,
      "InProgress": 0,
      "RetryableError": 0,
      "NonRetryableError": 0,
      "Stopped": 0
    },
    "ObjectiveStatusCounters": {
      "Succeeded": 1,
      "Pending": 0,
      "Failed": 0
    },
    "Tags": {}
  }
}
```

## SageMaker HyperPod 클러스터 이벤트
<a name="eventbridge-hyperpod-cluster-event"></a>

SageMaker HyperPod 클러스터에서 발생한 새로운 상태의 이벤트를 나타냅니다. 자세한 내용은 [DescribeClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterEvent.html) 작업을 참조하세요.

```
{
    "version": "0",
    "id": "0bd4a141-0a02-9d8a-f977-3924c3fb259c",
    "detail-type": "SageMaker HyperPod Cluster Event",
    "source": "aws.sagemaker",
    "account": "[REDACTED:BANK_ACCOUNT_NUMBER]",
    "time": "2025-04-28T16:59:01Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster"
    ],
    "detail": {
        "EventDetails": {
            "EventId": "a307fae0-6937-40f9-af2f-16eb873d340a",
            "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster",
            "ClusterName": "sample-cluster",
            "InstanceGroupName": "sample-instance-group",
            "InstanceId": "i-0391f86fa0fe0d465",
            "ResourceType": "Instance",
            "EventTime": 1745858447412,
            "EventDetails": {
                "EventMetadata": {
                    "Instance": {
                        "LcsExecutionState": "Started"
                    }
                }
            },
            "Description": "Instance lifecycle script execution for EC2InstanceId i-0391f86fa0fe0d465 has Started"
        }
    }
}
```

## SageMaker HyperPod 클러스터 노드 상태
<a name="eventbridge-hyperpod-node-health"></a>

HyperPod가 비정상 노드를 감지하거나 비정상 노드가 정상 상태로 전환되는 경우를 나타냅니다.

```
{
    "version": "0",
    "id": "0bd4a141-0a02-9d8a-f977-3924c3fb259c",
    "detail-type": "SageMaker HyperPod Cluster Node Health Event",
    "source": "aws.sagemaker",
    "account": "111122223333",
    "time": "2021-10-25T01:52:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster"
    ],
    "detail": {
        "ClusterName": "sample-cluster",
        "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster",
        "InstanceId": "i-12345678abcdefghi",
        "Tags": {},
        "HealthSummary": {
            "HealthStatus": "Unhealthy",
            "HealthStatusReason": "HyperPod Health Monitoring Agent (HMA) has detected fault type NvidiaErrorTerminate on this node and is unhealthy.",
            "RepairAction": "None",
            "Recommendation": "Please Replace the Faulty Node."
        }
    }
}
```

## SageMaker HyperPod 클러스터 상태 변경
<a name="eventbridge-hyperpod-cluster-state"></a>

SageMaker HyperPod 클러스터에서 발생한 상태의 변화를 나타냅니다. 자세한 내용은 [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html#API_DescribeCluster_ResponseSyntax) API 참조를 참조하세요.

```
{
   "version": "0",
   "id": "0bd4a141-0a02-9d8a-f977-3924c3fb259c",
   "detail-type": "SageMaker HyperPod Cluster State Change",
   "source": "aws.sagemaker",
   "account": "111122223333",
   "time": "2025-04-28T16:59:01Z",
   "region": "us-west-2",
   "resources": [
      "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster"
   ],
   "detail": {
      "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/sample-cluster",
      "ClusterName": "sample-cluster",
      "ClusterStatus": "InService",
      "CreationTime": 1745858447412,
      "FailureMessage": "",
      "InstanceGroups": [
         {
            "CurrentCount": 1,
            "ExecutionRole": "arn:aws:iam::111122223333:role/sagemaker-hyperpod-AmazonSagemakerClusterExecutionR-123OTacPcKk1",
            "InstanceGroupName": "example instance group name",
            "InstanceStorageConfigs": [
               {}
            ],
            "InstanceType": "ml.t3.medium",
            "LifeCycleConfig": {
               "OnCreate": "on_create.sh",
               "SourceS3Uri": "s3://sagemaker-hyperpod//LifeCycleScripts/base-config/provisioning_parameters.json"
            },
            "OnStartDeepHealthChecks": [
               "example health checks"
            ],
            "OverrideVpcConfig": {
               "SecurityGroupIds": [
                  "SecurityGroupId1"
               ],
               "Subnets": [
                  "Subnet1"
               ]
            },
            "Status": "Failed",
            "TargetCount": 2,
            "ThreadsPerCore": 2,
            "TrainingPlanArn": "arn:aws:sagemaker:us-west-2:111122223333:training-plan/large-models-fine-tuning",
            "TrainingPlanStatus": "NotApplicable"
         }
      ],
      "NodeRecovery": "Automatic",
      "Orchestrator": {
         "Eks": {
            "ClusterArn": "arn:aws:eks:us-west-2:111122223333:cluster/my-hyperPod-eks-cluster"
         }
      },
      "VpcConfig": {
         "SecurityGroupIds": [
            "SecurityGroupId2"
         ],
         "Subnets": [
            "Subnet2"
         ]
      }
   }
}
```

## SageMaker 이미지 상태 변경
<a name="eventbridge-image-state"></a>

SageMaker 이미지 상태의 변화를 나타냅니다.

```
{
  "version": "0",
  "id": "cee033a3-17d8-49f8-865f-b9ebf485d9ee",
  "detail-type": "SageMaker Image State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-04-29T01:29:59Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-west-2:111122223333:image/cee033a3-17d8-49f8-865f-b9ebf485d9ee"],
  "detail": {
    "ImageName": "cee033a3-17d8-49f8-865f-b9ebf485d9ee",
    "ImageArn": "arn:aws:sagemaker:us-west-2:111122223333:image/cee033a3-17d8-49f8-865f-b9ebf485d9ee",
    "ImageStatus": "Creating",
    "Version": 1.0,
    "Tags": {}
  }
}
```

## SageMaker 이미지 버전 상태 변경
<a name="eventbridge-image-version-state"></a>

SageMaker 이미지 버전의 상태 변경을 나타냅니다.

```
{
  "version": "0",
  "id": "07fc4615-ebd7-15fc-1746-243411f09f04",
  "detail-type": "SageMaker Image Version State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-04-29T01:29:59Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-west-2:111122223333:image-version/07800032-2d29-48b7-8f82-5129225b2a85"],
  "detail": {
    "ImageArn": "arn:aws:sagemaker:us-west-2:111122223333:image/a70ff896-c832-4fe8-add6-eba25a0f43e6",
    "ImageVersionArn": "arn:aws:sagemaker:us-west-2:111122223333:image-version/07800032-2d29-48b7-8f82-5129225b2a85",
    "ImageVersionStatus": "Creating",
    "Version": 1.0,
    "Tags": {}
  }
}
```

## SageMaker 모델 카드 상태 변경
<a name="eventbridge-model-card-state"></a>

Amazon SageMaker 모델 카드에서 발생한 상태의 변화를 나타냅니다. 모델 카드에 대한 자세한 내용은 [Amazon SageMaker 모델 카드](model-cards.md) 섹션을 참조하세요.

```
{
    "version": "0",
    "id": "aa7a9c4f-2caa-4d04-a6de-e67227ba4302",
    "detail-type": "SageMaker Model Card State Change",
    "source": "aws.sagemaker",
    "account": "111122223333",
    "time": "2022-11-30T00:00:00Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:sagemaker:us-east-1:111122223333:model-card/example-card"
    ],
    "detail": {
        "ModelCardVersion": 2,
        "LastModifiedTime": "2022-12-03T00:09:44.893854735Z",
        "LastModifiedBy": {
            "DomainId": "us-east-1",
            "UserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/user",
            "UserProfileName": "user"
        },
        "CreationTime": "2022-12-03T00:09:33.084Z",
        "CreatedBy": {
            "DomainId": "us-east-1",
            "UserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/user",
            "UserProfileName": "user"
        },
        "ModelCardName": "example-card",
        "ModelId": "example-model",
        "ModelCardStatus": "Draft",
        "AccountId": "111122223333",
        "SecurityConfig": {}
    }
}
```

## SageMaker 모델 패키지 상태 변경
<a name="eventbridge-model-package"></a>

SageMaker 모델 패키지의 상태 변화를 표시합니다.

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "SageMaker Model Package State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-02-24T17:00:14Z",
  "region": "us-east-2",
  "resources": [
    "arn:aws:sagemaker:us-east-2:111122223333:model-package/versionedmp-p-idy6c3e1fiqj/2"
  ],
  "source": [
    "aws.sagemaker"
  ],
  "detail": {
    "ModelPackageGroupName": "versionedmp-p-idy6c3e1fiqj",
    "ModelPackageVersion": 2,
    "ModelPackageArn": "arn:aws:sagemaker:us-east-2:111122223333:model-package/versionedmp-p-idy6c3e1fiqj/2",
    "CreationTime": "2021-02-24T17:00:14Z",
    "InferenceSpecification": {
      "Containers": [
        {
          "Image": "257758044811.dkr.ecr.us-east-2.amazonaws.com/sagemaker-xgboost:1.0-1-cpu-py3",
          "ImageDigest": "sha256:4dc8a7e4a010a19bb9e0a6b063f355393f6e623603361bd8b105f554d4f0c004",
          "ModelDataUrl": "s3://sagemaker-project-p-idy6c3e1fiqj/versionedmp-p-idy6c3e1fiqj/AbaloneTrain/pipelines-4r83jejmhorv-TrainAbaloneModel-xw869y8C4a/output/model.tar.gz"
        }
      ],
      "SupportedContentTypes": [
        "text/csv"
      ],
      "SupportedResponseMIMETypes": [
        "text/csv"
      ]
    },
    "ModelPackageStatus": "Completed",
    "ModelPackageStatusDetails": {
      "ValidationStatuses": [],
      "ImageScanStatuses": []
    },
    "CertifyForMarketplace": false,
    "ModelApprovalStatus": "Rejected",
    "MetadataProperties": {
      "GeneratedBy": "arn:aws:sagemaker:us-east-2:111122223333:pipeline/versionedmp-p-idy6c3e1fiqj/execution/4r83jejmhorv"
    },
    "ModelMetrics": {
      "ModelQuality": {
        "Statistics": {
          "ContentType": "application/json",
          "S3Uri": "s3://sagemaker-project-p-idy6c3e1fiqj/versionedmp-p-idy6c3e1fiqj/script-2021-02-24-10-55-15-413/output/evaluation/evaluation.json"
        }
      }
    },
    "ModelLifeCycle": {
      "Stage": "Development",
      "StageStatus": "Approved",
      "StageDescription": "StageDescription"
    },
    "UpdatedModelPackageFields": [
      "ModelLifeCycle" 
      # Other possible values are 
      # "ModelApprovalStatus","ApprovalDescription","sourceUri","CustomerMetadataProperties", "InferenceSpecification"    
    ]
    "LastModifiedTime": "2021-02-24T17:00:14Z"
  }
}
```

## SageMaker 모델 상태 변경
<a name="eventbridge-model"></a>

 SageMaker AI 모델의 상태 변화를 나타냅니다. SageMaker AI 모델을 만들거나 삭제하면 상태가 변경됩니다.

```
{
  "source": ["aws.sagemaker"],
  "detail-type": ["SageMaker Model State Change"],
  "Resources" : ["arn:aws:sagemaker:us-east-1:111122223333:model/model-name"]
}
```

`Resources`에서 모델을 지정한 경우 이 모델의 상태가 변경될 때 이벤트가 생성되어 EventBridge로 전송됩니다. `Resources`에 대한 값을 지정하지 않으면 계정과 연결된 SageMaker AI 모델의 상태가 변경될 때 이벤트가 생성됩니다.

## SageMaker 파이프라인 실행 상태 변경
<a name="eventbridge-pipeline"></a>

SageMaker Pipelines 실행 상태의 변화를 나타냅니다.

`currentPipelineExecutionStatus` 및 `previousPipelineExecutionStatus`는 다음 값 중 하나일 수 있습니다.
+ Executing(실행 중)
+ Succeeded(성공)
+ Failed(실패)
+ Stopping(중지 중)
+ Stopped(중지됨)

```
{
  "version": "0",
  "id": "315c1398-40ff-a850-213b-158f73kd93ir",
  "detail-type": "SageMaker Model Building Pipeline Execution Status Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-03-15T16:10:11Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123", "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123/execution/p4jn9xou8a8s"],
  "detail": {
    "pipelineExecutionDisplayName": "SomeDisplayName",
    "currentPipelineExecutionStatus": "Succeeded",
    "previousPipelineExecutionStatus": "Executing",
    "executionStartTime": "2021-03-15T16:03:13Z",
    "executionEndTime": "2021-03-15T16:10:10Z",
    "pipelineExecutionDescription": "SomeDescription",
    "pipelineArn": "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123",
    "pipelineExecutionArn": "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123/execution/p4jn9xou8a8s"
  }
}
```

## SageMaker 파이프라인 단계 상태 변경
<a name="eventbridge-pipeline-step"></a>

SageMaker Pipelines 단계의 상태 변화를 나타냅니다.

캐시 적중이 있는 경우 이벤트에 `cacheHitResult` 필드가 포함됩니다. `currentStepStatus` 및 `previousStepStatus`는 다음 값 중 하나일 수 있습니다.
+ Starting(시작 중)
+ Executing(실행 중)
+ Succeeded(성공)
+ Failed(실패)
+ Stopping(중지 중)
+ Stopped(중지됨)

`currentStepStatus`의 값이 `Failed`인 경우 이벤트에 `failureReason` 필드가 포함되며, 이 필드는 단계가 실패한 이유에 대한 설명을 제공합니다.

```
{
  "version": "0",
  "id": "ea37ccbb-5e2b-05e9-4073-1daazc940304",
  "detail-type": "SageMaker Model Building Pipeline Execution Step Status Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2021-03-15T16:10:10Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123", "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123/execution/p4jn9xou8a8s"],
  "detail": {
    "metadata": {
      "processingJob": {
        "arn": "arn:aws:sagemaker:us-east-1:111122223333:processing-job/pipelines-p4jn9xou8a8s-myprocessingstep1-tmgxry49ug"
      }
    },
    "stepStartTime": "2021-03-15T16:03:14Z",
    "stepEndTime": "2021-03-15T16:10:09Z",
    "stepName": "myprocessingstep1",
    "stepType": "Processing",
    "previousStepStatus": "Executing",
    "currentStepStatus": "Succeeded",
    "pipelineArn": "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123",
    "pipelineExecutionArn": "arn:aws:sagemaker:us-east-1:111122223333:pipeline/myPipeline-123/execution/p4jn9xou8a8s"
  }
}
```

## SageMaker 프로세싱 작업 상태 변경
<a name="processing-job-state"></a>

SageMaker 프로세싱 작업에서 발생하는 상태 변화를 나타냅니다.

다음 예시 이벤트는 실패한 프로세싱 작업에 대한 것으로, 여기서 `ProcessingJobStatus` 값은 `Failed`입니다.

```
{
  "version": "0",
  "id": "0a15f67d-aa23-0123-0123-01a23w89r01t",
  "detail-type": "SageMaker Processing Job State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2019-05-31T21:49:54Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-west-2:037210630506:processing-job/integ-test-analytics-algo-54ee3282-5899-4aa3-afc2-7ce1d02"],
  "detail": {
    "ProcessingInputs": [{
      "InputName": "InputName",
      "S3Input": {
        "S3Uri": "s3://input/s3/uri",
        "LocalPath": "/opt/ml/processing/input/local/path",
        "S3DataType": "MANIFEST_FILE",
        "S3InputMode": "PIPE",
        "S3DataDistributionType": "FULLYREPLICATED"
      }
    }],
    "ProcessingOutputConfig": {
      "Outputs": [{
        "OutputName": "OutputName",
        "S3Output": {
          "S3Uri": "s3://output/s3/uri",
          "LocalPath": "/opt/ml/processing/output/local/path",
          "S3UploadMode": "CONTINUOUS"
        }
      }],
      "KmsKeyId": "KmsKeyId"
    },
    "ProcessingJobName": "integ-test-analytics-algo-54ee3282-5899-4aa3-afc2-7ce1d02",
    "ProcessingResources": {
      "ClusterConfig": {
        "InstanceCount": 3,
        "InstanceType": "ml.c5.xlarge",
        "VolumeSizeInGB": 5,
        "VolumeKmsKeyId": "VolumeKmsKeyId"
      }
    },
    "StoppingCondition": {
      "MaxRuntimeInSeconds": 2000
    },
    "AppSpecification": {
      "ImageUri": "012345678901.dkr.ecr.us-west-2.amazonaws.com/processing-uri:latest"
    },
    "NetworkConfig": {
      "EnableInterContainerTrafficEncryption": true,
      "EnableNetworkIsolation": false,
      "VpcConfig": {
        "SecurityGroupIds": ["SecurityGroupId1", "SecurityGroupId2", "SecurityGroupId3"],
        "Subnets": ["Subnet1", "Subnet2"]
      }
    },
    "RoleArn": "arn:aws:iam::037210630506:role/SageMakerPowerUser",
    "ExperimentConfig": {},
    "ProcessingJobArn": "arn:aws:sagemaker:us-west-2:037210630506:processing-job/integ-test-analytics-algo-54ee3282-5899-4aa3-afc2-7ce1d02",
    "ProcessingJobStatus":"Failed",
    "FailureReason":"InternalServerError: We encountered an internal error.  Please try again.",
    "ProcessingEndTime":1704320746000,
    "ProcessingStartTime":1704320734000,
    "LastModifiedTime":1704320746000,
    "CreationTime":1704320199000
  }
}
```

## SageMaker 훈련 작업 상태 변경
<a name="eventbridge-training"></a>

SageMaker 훈련 작업의 상태 변화를 표시합니다.

`TrainingJobStatus`의 값이 `Failed`인 경우 이벤트에 `FailureReason` 필드가 포함되며, 이 필드는 훈련 작업이 실패한 이유에 대한 설명을 제공합니다.

```
{
    "version": "0",
    "id": "844e2571-85d4-695f-b930-0153b71dcb42",
    "detail-type": "SageMaker Training Job State Change",
    "source": "aws.sagemaker",
    "account": "111122223333",
    "time": "2018-10-06T12:26:13Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:sagemaker:us-east-1:111122223333:training-job/kmeans-1"
    ],
    "detail": {
        "TrainingJobName": "89c96cc8-dded-4739-afcc-6f1dc936701d",
        "TrainingJobArn": "arn:aws:sagemaker:us-east-1:111122223333:training-job/kmeans-1",
        "TrainingJobStatus": "Completed",
        "SecondaryStatus": "Completed",
        "HyperParameters": {
            "Hyper": "Parameters"
        },
        "AlgorithmSpecification": {
            "TrainingImage": "TrainingImage",
            "TrainingInputMode": "TrainingInputMode"
        },
        "RoleArn": "arn:aws:iam::111122223333:role/SMRole",
        "InputDataConfig": [
            {
                "ChannelName": "Train",
                "DataSource": {
                    "S3DataSource": {
                        "S3DataType": "S3DataType",
                        "S3Uri": "S3Uri",
                        "S3DataDistributionType": "S3DataDistributionType"
                    }
                },
                "ContentType": "ContentType",
                "CompressionType": "CompressionType",
                "RecordWrapperType": "RecordWrapperType"
            }
        ],
        "OutputDataConfig": {
            "KmsKeyId": "KmsKeyId",
            "S3OutputPath": "S3OutputPath"
        },
        "ResourceConfig": {
            "InstanceType": "InstanceType",
            "InstanceCount": 3,
            "VolumeSizeInGB": 20,
            "VolumeKmsKeyId": "VolumeKmsKeyId"
        },
        "VpcConfig": {

        },
        "StoppingCondition": {
            "MaxRuntimeInSeconds": 60
        },
        "CreationTime": "1583831889050",
        "TrainingStartTime": "1583831889050",
        "TrainingEndTime": "1583831889050",
        "LastModifiedTime": "1583831889050",
        "SecondaryStatusTransitions": [

        ],
        "Tags": {

        }
    }
}
```

## SageMaker 변환 작업 상태 변경
<a name="eventbridge-transform"></a>

SageMaker 배치 변환 작업의 상태 변화를 표시합니다.

`TransformJobStatus`의 값이 `Failed`인 경우 이벤트에 `FailureReason` 필드가 포함되며, 이 필드는 훈련 작업이 실패한 이유에 대한 설명을 제공합니다.

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "SageMaker Transform Job State Change",
  "source": "aws.sagemaker",
  "account": "111122223333",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": ["arn:aws:sagemaker:us-east-1:111122223333:transform-job/myjob"],
  "detail": {
    "TransformJobName": "4b52bd8f-e034-4345-818d-884bdd7c9724",
    "TransformJobArn": "arn:aws:sagemaker:us-east-1:111122223333:transform-job/myjob",
    "TransformJobStatus": "another status... GO",
    "FailureReason": "failed why 1",
    "ModelName": "i am a beautiful model",
    "MaxConcurrentTransforms": 5,
    "MaxPayloadInMB": 10,
    "BatchStrategy": "Strategizing...",
    "Environment": {
      "environment1": "environment2"
    },
    "TransformInput": {
      "DataSource": {
        "S3DataSource": {
          "S3DataType": "s3DataType",
          "S3Uri": "s3Uri"
        }
      },
      "ContentType": "content type",
      "CompressionType": "compression type",
      "SplitType": "split type"
    },
    "TransformOutput": {
      "S3OutputPath": "s3Uri",
      "Accept": "accept",
      "AssembleWith": "assemblyType",
      "KmsKeyId": "kmsKeyId"
    },
    "TransformResources": {
      "InstanceType": "instanceType",
      "InstanceCount": 3
    },
    "CreationTime": "2018-10-06T12:26:13Z",
    "TransformStartTime": "2018-10-06T12:26:13Z",
    "TransformEndTime": "2018-10-06T12:26:13Z",
    "Tags": {}
  }
}
```

SageMaker AI 작업, 엔드포인트 및 파이프라인의 상태 값 및 의미에 대한 자세한 내용은 다음 링크를 참조하세요.
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAlgorithm.html#sagemaker-DescribeAlgorithm-response-AlgorithmStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAlgorithm.html#sagemaker-DescribeAlgorithm-response-AlgorithmStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html#sagemaker-DescribeEndpoint-response-EndpointStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html#sagemaker-DescribeEndpoint-response-EndpointStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html#sagemaker-DescribeFeatureGroup-response-FeatureGroupStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html#sagemaker-DescribeFeatureGroup-response-FeatureGroupStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeHyperParameterTuningJob.html#sagemaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeHyperParameterTuningJob.html#sagemaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeLabelingJob.html#sagemaker-DescribeLabelingJob-response-LabelingJobStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeLabelingJob.html#sagemaker-DescribeLabelingJob-response-LabelingJobStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html#sagemaker-DescribeModelPackage-response-ModelPackageStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html#sagemaker-DescribeModelPackage-response-ModelPackageStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeNotebookInstance.html#sagemaker-DescribeNotebookInstance-response-NotebookInstanceStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeNotebookInstance.html#sagemaker-DescribeNotebookInstance-response-NotebookInstanceStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribePipelineExecution.html#sagemaker-DescribePipelineExecution-response-PipelineExecutionStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribePipelineExecution.html#sagemaker-DescribePipelineExecution-response-PipelineExecutionStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PipelineExecutionStep.html#sagemaker-Type-PipelineExecutionStep-StepStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PipelineExecutionStep.html#sagemaker-Type-PipelineExecutionStep-StepStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html#sagemaker-DescribeTrainingJob-response-TrainingJobStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html#sagemaker-DescribeTrainingJob-response-TrainingJobStatus)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html#sagemaker-DescribeTransformJob-response-TransformJobStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html#sagemaker-DescribeTransformJob-response-TransformJobStatus)

자세한 내용은 [Amazon EventBridge 사용 설명서](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)를 참조하세요.