자동 롤백 구성 및 모니터링 - Amazon SageMaker

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

자동 롤백 구성 및 모니터링

Amazon CloudWatch 경보는 배포 가드레일에서 베이킹 기간을 사용하기 위한 전제 조건입니다. 엔드포인트를 모니터링할 수 있는 CloudWatch 경보를 설정한 경우에만 배포 가드레일에서 자동 롤백 기능을 사용할 수 있습니다. 지정된 모니터링 기간 동안 경보가 하나라도 끊기면 이전 엔드포인트로 전체 롤백을 SageMaker 시작하여 애플리케이션을 보호합니다. 엔드포인트를 모니터링하도록 CloudWatch 경보를 설정하지 않은 경우 배포 중에 자동 롤백 기능이 작동하지 않습니다.

Amazon에 대해 자세히 CloudWatch 알아보려면 Amazon이란 무엇입니까 CloudWatch? 를 참조하십시오. Amazon CloudWatch 사용 설명서에서 확인할 수 있습니다.

참고

IAM 실행 역할에 지정한 자동 롤백 경보에 대한 cloudwatch:DescribeAlarms 작업을 수행할 권한이 있는지 확인하십시오.

경보 예제

시작하는 데 도움이 되도록 CloudWatch 알람의 기능을 보여주는 다음 예제를 제공합니다. 다음 예제를 사용하거나 수정하는 것 외에도 자체 경보를 생성하고 특정 기간 동안 지정된 플릿의 다양한 지표를 모니터링하도록 경보를 구성할 수 있습니다. 경보에 추가할 수 있는 더 많은 SageMaker 측정항목 및 측정기준을 보려면 을 참조하십시오. Amazon SageMaker 에서 Amazon을 모니터링하기 위한 지표 CloudWatch

기존 플릿과 새 플릿 모두에서 호출 오류를 모니터링합니다.

다음 CloudWatch 경보는 엔드포인트의 평균 오류율을 모니터링합니다. 이 경보를 모든 배포 가드레일의 트래픽 시프팅 유형과 함께 사용하여 기존 플릿과 새 플릿 모두에 대해 전반적인 모니터링을 제공할 수 있습니다. 경보가 트립되면 이전 플릿으로의 롤백이 SageMaker 시작됩니다.

기존 플릿과 새 플릿 모두에서 발생하는 호출 오류가 평균 오류율에 영향을 미칩니다. 평균 오류율이 지정된 임계값을 초과하면 경보가 발생합니다. 이 특정 예제는 배포 기간 동안 기존 플릿과 새 플릿 모두에서 4xx 오류(클라이언트 오류)를 모니터링합니다. 또한, Invocation5XXErrors 지표를 사용하여 5xx 오류 (서버 오류)를 모니터링할 수도 있습니다.

참고

이 경보 유형의 경우 배포 중에 기존 플릿이 경보를 중단하면 배포가 SageMaker 종료됩니다. 따라서 현재 프로덕션 플릿에서 이미 오류가 발생한 경우 새 플릿의 오류만 모니터링하는 다음 예제 중 하나를 사용하거나 수정하는 것이 좋습니다.

#Applied deployment type: all types { "AlarmName": "EndToEndDeploymentHighErrorRateAlarm", "AlarmDescription": "Monitors the error rate of 4xx errors", "MetricName": "Invocation4XXErrors", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" } ], "Period": 600, "EvaluationPeriods": 2, "Threshold": 1, "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

이전 예제에서 다음 필드의 값을 확인합니다.

  • AlarmNameAlarmDescription에는 경보에 대해 선택한 이름과 설명을 입력합니다.

  • MetricName에는 Invocation4XXErrors 값을 사용하여 엔드포인트에서 4xx 오류를 모니터링합니다.

  • Namespace에는 AWS/SageMaker 값을 입력합니다. 해당하는 경우 사용자 지정 지표를 직접 지정할 수도 있습니다.

  • Statistic에는 Average을 사용합니다. 즉, 오류율이 임계값을 초과했는지 여부를 계산할 때 경보가 평가 기간 동안의 평균 오류율을 사용합니다.

  • EndpointName 차원에는 업데이트 중인 엔드포인트의 이름을 값으로 사용합니다.

  • VariantName 차원에는 AllTraffic 값을 사용하여 모든 엔드포인트 트래픽을 지정합니다.

  • Period에는 600을 사용합니다. 이렇게 하면 경보의 평가 기간이 10분으로 설정됩니다.

  • EvaluationPeriods에는 2을 사용합니다. 이 값은 경보 상태를 확인할 때 가장 최근의 두 평가 기간을 고려하도록 경보에 지시합니다.

새 플릿의 모델 지연 시간을 모니터링합니다.

다음 CloudWatch 알람 예제는 배포 중에 새 플릿의 모델 지연 시간을 모니터링합니다. 이 경보를 사용하여 새 플릿만 모니터링하고 기존 플릿은 제외할 수 있습니다. 이 경보는 전체 배포 기간 동안 지속됩니다. 이 예제는 새 플릿을 포괄적으로 end-to-end 모니터링하고 새 플릿에 응답 시간 문제가 있는 경우 이전 플릿으로 롤백을 시작합니다.

CloudWatch 새 플릿이 트래픽을 수신하기 시작한 EndpointConfigName:{New-Ep-Config} 후 측정치를 차원과 함께 게시하며, 이러한 지표는 배포가 완료된 후에도 지속됩니다.

다음 경보 예제를 모든 배포 유형에 사용할 수 있습니다.

#Applied deployment type: all types { "AlarmName": "NewEndpointConfigVersionHighModelLatencyAlarm", "AlarmDescription": "Monitors the model latency on new fleet", "MetricName": "ModelLatency", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" }, { "Name": "EndpointConfigName", "Value": <your-config-name> ], "Period": 300, "EvaluationPeriods": 2, "Threshold": 100000, # 100ms "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

이전 예제에서 다음 필드의 값을 확인합니다.

  • MetricName에는 ModelLatency 값을 사용하여 모델의 응답 시간을 모니터링합니다.

  • Namespace에는 AWS/SageMaker 값을 사용합니다. 해당하는 경우 사용자 지정 지표를 직접 지정할 수도 있습니다.

  • EndpointName 차원에는 업데이트 중인 엔드포인트의 이름을 값으로 사용합니다.

  • VariantName 차원에는 AllTraffic 값을 사용하여 모든 엔드포인트 트래픽을 지정합니다.

  • EndpointConfigName 차원의 경우, 이 값은 새 엔드포인트 또는 업데이트된 엔드포인트의 엔드포인트 구성 이름을 참조해야 합니다.

참고

새 플릿 대신 기존 플릿을 모니터링하려면 EndpointConfigName 차원을 변경하여 이전 플릿의 구성 이름을 지정할 수 있습니다.