로깅 및 모니터링 - SageMaker Studio 관리 모범 사례

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

로깅 및 모니터링

컴파일 작업, 처리 작업, 훈련 작업, 엔드포인트, 변환 작업, 노트북 인스턴스 및 노트북 인스턴스 수명 주기 구성을 디버깅하는 데 도움이 되도록 알고리즘 컨테이너, 모델 컨테이너 또는 노트북 인스턴스 수명 주기 구성이 stdout 또는 stderr로 전송하는 모든 항목도 Amazon CloudWatch Logs로 전송됩니다. 원시 데이터를 CloudWatch수집하고 읽기 가능하며 실시간에 가까운 지표로 처리하는 Amazon을 사용하여 SageMaker AI Studio를 모니터링할 수 있습니다. 이러한 통계는 15개월 동안 보관되므로, 기록 정보에 액세스하고 웹 애플리케이션 또는 서비스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다.

를 사용하여 로깅 CloudWatch

데이터 과학 프로세스는 기본적으로 실험적이고 반복적이므로 노트북 사용, 훈련/처리 작업 실행 시간, 훈련 지표, 간접 호출 대기 시간과 같은 엔드포인트 서비스 지표와 같은 활동을 기록하는 것이 필수적입니다. 기본적으로 SageMaker AI는 지표를 CloudWatch 로그에 게시하며, 이러한 로그는를 사용하여 고객 관리형 키로 암호화할 수 있습니다 AWS KMS.

또한 VPC 엔드포인트를 사용하여 퍼블릭 인터넷을 사용하지 CloudWatch 않고 로 로그를 보낼 수 있습니다. 특정 임곗값을 주시하다가 해당 임곗값이 충족될 때 알림을 전송하거나 조치를 취하도록 경보를 설정할 수도 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

SageMaker AI는 아래에 Studio에 대한 단일 로그 그룹을 생성합니다/aws/sagemaker/studio. 각 사용자 프로필 및 앱은 이 로그 그룹 아래에 고유한 로그 스트림을 가지며 생명 주기 구성 스크립트에도 자체 로그 스트림이 있습니다. 예를 들어 Jupyter 서버 앱이 있고 수명 주기 스크립트가 첨부된 'studio-user'라는 사용자 프로필과 데이터 과학 커널 게이트웨이 앱의 로그 스트림은 다음과 같습니다.

/aws/sagemaker/studio/<domain-id>/studio-user/JupyterServer/default

/aws/sagemaker/studio/<domain-id>/studio-user/JupyterServer/default/LifecycleConfigOnStart

/aws/sagemaker/studio/<domain-id>/studio-user/KernelGateway/datascience-app

SageMaker AI가 사용자를 대신하여 CloudWatch 에 로그를 전송하려면 Training/Processing/Transform 작업 호출자에게 다음 권한이 필요합니다APIs.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogEvents", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*", "Effect": "Allow" } ] }

사용자 지정 AWS KMS 키로 이러한 로그를 암호화하려면 먼저 CloudWatch 서비스가 키를 암호화하고 복호화할 수 있도록 키 정책을 수정해야 합니다. 로그 암호화 AWS KMS 키를 생성한 후 다음을 포함하도록 키 정책을 수정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:region:account-id:*" } } } ] }

언제든지 ArnEquals를 사용하고 암호화하려는 CloudWatch 로그에 대한 특정 Amazon 리소스 이름(ARN)을 제공할 수 있습니다. 여기서는 간소화를 위해 이 키를 사용하여 계정의 모든 로그를 암호화할 수 있음을 보여줍니다. 또한 훈련, 처리 및 모델 엔드포인트는 인스턴스 CPU 및 메모리 사용률, 호스팅 호출 지연 시간 등에 대한 지표를 게시합니다. 특정 임계값을 초과할 때 이벤트를 관리자에게 알리SNS도록 Amazon을 추가로 구성할 수 있습니다. 훈련 및 처리의 소비자는 다음 권한을가APIs져야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:ListTopics" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringLike": { "cloudwatch:namespace": "aws/sagemaker/*" } } }, { "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ], "Effect": "Allow" } ] }

를 사용한 감사 AWS CloudTrail

규정 준수 태세를 개선하려면 모든 APIs를 감사하십시오 AWS CloudTrail. 기본적으로 모든 SageMaker AIAPIs는 로 로깅됩니다AWS CloudTrail. 활성화하는 데 추가 IAM 권한이 필요하지 않습니다 CloudTrail.

InvokeEndpoint 및를 제외한 모든 SageMaker AI 작업은에 의해 InvokeEndpointAsync로깅 CloudTrail 되고 작업에 문서화됩니다. 예를 들어 CreateTrainingJob, CreateEndpointCreateNotebookInstance 작업에 대한 호출은 CloudTrail 로그 파일에 항목을 생성합니다.

모든 CloudTrail 이벤트 항목에는 요청을 생성한 사람에 대한 정보가 포함됩니다. 보안 인증 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.

  • 요청을 루트로 했는지 아니면 AWS IAM 사용자 보안 인증으로 했는지 여부.

  • 역할 또는 페더레이션 사용자에 대한 임시 보안 인증을 사용하여 요청이 생성되었는지 여부.

  • 요청이 다른 AWS 서비스에 의해 이루어졌는지 여부. 예제 이벤트는 Log SageMaker AI API Calls with CloudTrail documentation를 참조하세요.

기본적으로는 사용자 프로필의 Studio 실행 역할 이름을 각 이벤트의 식별자로 CloudTrail 로깅합니다. 이는 각 사용자에게 고유한 실행 역할이 있는 경우 작동합니다. 여러 사용자가 동일한 실행 역할을 공유하는 경우 sourceIdentity 구성을 사용하여 Studio 사용자 프로필 이름을에 전파할 수 있습니다 CloudTrail. Amazon SageMaker AI Studio에서 사용자 리소스 액세스 모니터링을 참조하여 sourceIdentity 기능을 활성화합니다. 공유 공간에서 모든 작업은 공간을 소스ARN로 지칭하며를 통해 감사할 수 없습니다sourceIdentity.