기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
원격 디버깅을 AWS Systems Manager 위해 교육 컨테이너에 액세스
(SSM) 을 통해 SageMaker 교육 컨테이너에 안전하게 연결할 수 있습니다. AWS Systems Manager 이를 통해 셸 수준에서 컨테이너 내에서 실행 중인 훈련 작업을 디버깅할 수 있습니다. CloudWatchAmazon으로 스트리밍되는 명령과 응답을 기록할 수도 있습니다. 자체 Amazon VPC (Virtual Private Cloud) 를 사용하여 모델을 학습시키는 경우, SSM을 위한 VPC 엔드포인트를 설정하고 SSM을 통해 비공개로 컨테이너에 연결하는 AWS PrivateLink 데 사용할 수 있습니다.
SageMaker 프레임워크 컨테이너에
IAM 권한 설정
SageMaker 교육 컨테이너에서 SSM을 활성화하려면 컨테이너에 대한 IAM 역할을 설정해야 합니다. 본인 또는 AWS 계정의 사용자가 SSM을 통해 교육 컨테이너에 액세스하려면 SSM을 사용할 권한을 가진 IAM 사용자를 설정해야 합니다.
IAM 역할
SageMaker 교육 컨테이너가 SSM 에이전트로 시작하도록 하려면 SSM 권한이 있는 IAM 역할을 제공하십시오.
교육 작업에 원격 디버깅을 활성화하려면 교육 작업이 시작될 때 교육 컨테이너에서 SSM 에이전트를 SageMaker 시작해야 합니다. SSM 에이전트가 SSM 서비스와 통신할 수 있도록 하려면 교육 작업을 실행하는 데 사용하는 IAM 역할에 다음 정책을 추가하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }
IAM 사용자
다음 정책을 추가하여 IAM 사용자에게 SSM 대상에 연결할 수 있는 SSM 세션 권한을 제공하십시오. 이 경우 SSM 대상은 교육 컨테이너입니다. SageMaker
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
다음 정책 샘플과 같이 Condition
키를 추가하여 IAM 사용자가 특정 교육 작업의 컨테이너에만 연결하도록 제한할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "sagemaker-training-job:*" ] } } } ] }
sagemaker:EnableRemoteDebug
조건 키를 명시적으로 사용하여 원격 디버깅을 제한할 수도 있습니다. 다음은 IAM 사용자가 원격 디버깅을 제한하는 예제 정책입니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyRemoteDebugInTrainingJob", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:UpdateTrainingJob" ], "Resource": "*", "Condition": { "BoolIfExists": { "sagemaker:EnableRemoteDebug": false } } } ] }
자세한 내용은 AWS 서비스 승인 SageMaker 참조의 Amazon용 조건 키를 참조하십시오.
SageMaker 교육 작업에 원격 디버깅을 활성화하는 방법
이 섹션에서는 SageMaker Amazon에서 교육 작업을 시작하거나 업데이트할 때 원격 디버깅을 활성화하는 방법을 알아봅니다.
트레이닝 컨테이너에 액세스하세요.
해당 교육 작업이 다음과 같으면 교육 컨테이너에 액세스할 수 Training
있습니다. SecondaryStatus
다음 코드 예제는 DescribeTrainingJob
API를 사용하여 교육 작업의 상태를 확인하는 방법, 교육 작업 로그인을 확인하는 방법 CloudWatch, 교육 컨테이너에 로그인하는 방법을 보여줍니다.
교육 작업 상태 확인하기
교육 컨테이너의 호스트 이름을 찾으려면
SSM을 통해 교육 컨테이너에 연결하려면 대상 sagemaker-training-job:<training-job-name>_algo-<n>
ID:에 다음 형식을 사용합니다. 여기서 algo-<n>
은 컨테이너 호스트의 이름입니다. 작업이 단일 인스턴스에서 실행되는 경우 호스트는 항상 algo-1
유효합니다. 여러 인스턴스에서 분산 교육 작업을 실행하는 경우 동일한 수의 호스트와 로그 스트림이 SageMaker 생성됩니다. 예를 들어, 인스턴스 4개를 사용하는 경우, algo-1
algo-2
algo-3
, 및 가 SageMaker 생성됩니다algo-4
. 디버깅할 로그 스트림과 해당 호스트 번호를 결정해야 합니다. 교육 작업과 관련된 로그 스트림에 액세스하려면 다음을 수행하십시오.
https://console.aws.amazon.com/sagemaker/
에서 아마존 SageMaker 콘솔을 엽니다. -
왼쪽 탐색 창에서 [교육] 을 선택한 다음 [교육] 작업을 선택합니다.
-
교육 작업 목록에서 디버깅하려는 교육 작업을 선택합니다. 교육 작업 세부 정보 페이지가 열립니다.
-
모니터 섹션에서 로그 보기를 선택합니다. 관련 교육 작업 로그 스트림 목록이 CloudWatch 콘솔에서 열립니다.
-
로그 스트림 이름은 호스트 이름을
algo-<n>
나타내는<training-job-name>/algo-<n>-<time-stamp>
형식으로 표시됩니다.
다중 인스턴스 분산 교육의 구성 정보를 SageMaker 관리하는 방법에 대한 자세한 내용은 분산 교육 구성을 참조하십시오.
교육 컨테이너에 액세스하려면
터미널에서 다음 명령을 사용하여 SSM 세션 (aws ssm start-session
) 을 시작하고 교육 컨테이너에 연결합니다.
aws ssm start-session --target sagemaker-training-job:
<training-job-name>
_algo-<n>
예를 들어, 교육 작업 이름이 training-job-test-remote-debug
이고 호스트 이름이 인 경우 대상 ID는 이 algo-1
됩니다sagemaker-training-job:training-job-test-remote-debug_algo-1
. 이 명령의 출력이 다음과 비슷하면 연결에 성공한 것입니다. Starting session with SessionId:xxxxx
다음을 통한 SSM 액세스 AWS PrivateLink
교육 컨테이너가 퍼블릭 인터넷에 연결되지 않은 Amazon Virtual Private Cloud에서 실행되는 경우 SSM을 AWS PrivateLink 활성화하는 데 사용할 수 있습니다. AWS PrivateLink 엔드포인트 인스턴스, SSM, Amazon EC2 간의 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다. 를 사용하여 SSM 액세스를 설정하는 방법에 대한 자세한 내용은 세션 AWS PrivateLink관리자용 Amazon VPC 엔드포인트 설정을 참조하십시오.
SSM 세션 명령 및 결과를 기록합니다.
세션 관리자 환경설정 문서 만들기 (명령줄) 의 지침을 따른 후 SSM 세션의 환경설정을 정의하는 SSM 문서를 생성할 수 있습니다. SSM 문서를 사용하여 데이터 암호화, 세션 기간, 로깅을 비롯한 세션 옵션을 구성할 수 있습니다. 예를 들어 세션 로그 데이터를 Amazon Simple Storage Service (Amazon S3) 버킷에 저장할지 아니면 Amazon Logs 그룹에 저장할지 지정할 수 있습니다. CloudWatch AWS 계정 및 AWS 리전계정의 모든 세션에 대한 일반 기본 설정을 정의하는 문서 또는 개별 세션의 기본 설정을 정의하는 문서를 생성할 수 있습니다.
SSM의 오류 로그를 확인하여 문제를 해결합니다.
Amazon은 SSM 에이전트의 오류를 CloudWatch 로그 그룹의 로그에 SageMaker /aws/sagemaker/TrainingJobs
업로드합니다. SSM 에이전트 로그 스트림의 이름은 다음과 같은 형식으로 지정됩니다. <job-name>/algo-<n>-<timestamp>/ssm
예를 들어 이라는 training-job-test-remote-debug
2노드 교육 작업을 만들면 교육 작업 training-job-test-remote-debug/algo-<n>-<timestamp>
로그와 여러 SSM 에이전트 오류 training-job-test-remote-debug/algo-<n>-<timestamp>/ssm
로그가 로그에 업로드됩니다. CloudWatch 이 예시에서는 */ssm
로그 스트림을 검토하여 SSM 문제를 해결할 수 있습니다.
training-job-test-remote-debug/algo-1-1680535238 training-job-test-remote-debug/algo-2-1680535238 training-job-test-remote-debug/algo-1-1680535238/ssm training-job-test-remote-debug/algo-2-1680535238/ssm
고려 사항
SageMaker 원격 디버깅을 사용할 때는 다음 사항을 고려하십시오.
-
SageMaker 알고리즘 컨테이너 또는 이후부터는 SageMaker 컨테이너에 대한 원격 디버깅이 지원되지 않습니다. AWS Marketplace
-
격리로 인해 아웃바운드 네트워크 호출이 차단되므로 네트워크 격리가 활성화된 컨테이너에 대해서는 SSM 세션을 시작할 수 없습니다.