기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SSM을 통한 컨테이너 액세스
SageMaker Amazon에서는 AWS Systems Manager (SSM) 를 사용하여 추론을 위해 모델이 배포된 Docker 컨테이너에 안전하게 연결할 수 있습니다. 그러면 컨테이너에 대한 셸 수준의 액세스 권한이 제공되므로 컨테이너 내에서 실행 중인 프로세스를 디버깅하고 CloudWatch Amazon에 명령 및 응답을 기록할 수 있습니다. SSM을 통해 비공개로 컨테이너에 액세스하기 위해 컨테이너를 호스팅하는 ML 인스턴스에 대한 AWS PrivateLink 연결을 설정할 수도 있습니다.
주의
SSM 액세스를 활성화하면 엔드포인트의 성능에 영향을 미칠 수 있습니다. 프로덕션 중인 엔드포인트가 아닌 개발 또는 테스트 엔드포인트에서 이 기능을 사용하는 것이 좋습니다. 또한 보안 패치를 SageMaker 자동으로 적용하고 10분 이내에 결함이 있는 엔드포인트 인스턴스를 교체하거나 종료합니다. 그러나 SSM이 활성화된 프로덕션 변형이 있는 엔드포인트의 경우 디버깅이 가능하도록 보안 패치 적용 및 결함이 있는 엔드포인트 인스턴스의 교체 또는 종료를 하루 SageMaker 지연시킵니다.
다음 단원에서는 이 기능을 사용하는 방법을 자세히 설명합니다.
허용 목록
이 기능을 사용하려면 고객 지원팀에 문의하여 계정을 허용 목록에 추가해야 합니다. 이 액세스에 대해 사용자의 계정이 허용 목록에 없는 경우 SSM 액세스가 활성화된 엔드포인트를 생성할 수 없습니다.
SSM 액세스 활성화
엔드포인트의 기존 컨테이너에 대한 SSM 액세스를 활성화하려면 EnableSSMAccess
파라미터를 true
로 설정한 상태에서 새 엔드포인트 구성으로 엔드포인트를 업데이트합니다. 다음 예제는 샘플 엔드포인트 구성을 제공합니다.
{ "EndpointConfigName":
"endpoint-config-name"
, "ProductionVariants": [ { "InitialInstanceCount": 1, "InitialVariantWeight": 1.0, "InstanceType": "ml.t2.medium", "ModelName":model-name
, "VariantName":variant-name
, "EnableSSMAccess": true, }, ] }
SSM 액세스를 활성화하는 방법에 대한 자세한 내용은 EnableSSMAccess를 참고하십시오.
IAM 구성
엔드포인트 IAM 권한
엔드포인트 인스턴스에 SSM 액세스를 활성화한 경우, 엔드포인트 인스턴스를 시작할 때 SSM 에이전트를 SageMaker 시작하고 관리합니다. SSM 에이전트가 SSM 서비스와 통신할 수 있도록 허용하려면 엔드포인트가 실행되는 실행 역할에 다음 정책을 추가하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }
사용자 IAM 권한
다음 정책을 추가하여 IAM 사용자에게 SSM 대상에 연결할 수 있는 SSM 세션 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
다음 정책을 사용하여 IAM 사용자가 연결할 수 있는 엔드포인트를 제한할 수 있습니다. 기울임꼴로 표시된 자리표시자 글자
를 사용자의 정보로 바꿉니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", ], "Resource": [ "
sagemaker-endpoint-arn
" ] } ] }
다음을 통한 SSM 액세스 AWS PrivateLink
엔드포인트가 퍼블릭 인터넷에 연결되지 않은 가상 사설 클라우드 (VPC) 내에서 실행되는 경우 SSM을 활성화하는 데 AWS PrivateLink 사용할 수 있습니다. AWS PrivateLink 엔드포인트 인스턴스, SSM, Amazon EC2 간의 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다. AWS PrivateLink를 사용하여 SSM 액세스를 설정하는 방법에 대한 자세한 내용은 세션 관리자용 VPC 엔드포인트 설정을 참고하십시오.
Amazon CloudWatch 로그로 로깅
SSM 액세스가 활성화된 엔드포인트의 경우 Amazon Logs를 사용하여 SSM 에이전트의 오류를 기록할 수 있습니다. CloudWatch CloudWatch 로그로 오류를 기록하는 방법에 대한 자세한 내용은 로깅 세션 활동을 참조하십시오. 로그는 엔드포인트 로그 그룹 /aws/sagemaker/endpoints/
아래의 SSM 로그 스트림, endpoint-name
에서 확인할 수 있습니다. 로그를 보는 방법에 대한 자세한 내용은 로그로 CloudWatch 전송된 로그 데이터 보기를 참조하십시오.variant-name
/ec2-instance-id
/ssm
엔드포인트 뒤의 프로덕션 변형에는 여러 모델 컨테이너가 있을 수 있습니다. 각 모델 컨테이너의 로그는 로그 스트림에 기록됩니다. 각 로그 앞에는 [sagemaker ssm
logs][container-name]
가 붙습니다. 여기서 container-name
는 컨테이너에 지정한 이름 또는 기본 이름(예: container_0
, container_1
)입니다.
모델 컨테이너에 액세스
엔드포인트 인스턴스의 모델 컨테이너에 액세스하려면 대상 ID가 필요합니다. 대상 ID는 다음 형식 중 하나에 해당합니다.
-
단일 컨테이너 엔드포인트에 있는 컨테이너용
sagemaker-endpoint:
endpoint-name
_variant-name
_ec2-instance-id
-
다중 컨테이너 엔드포인트에 있는 컨테이너용
sagemaker-endpoint:
endpoint-name
_variant-name
_ec2-instance-id
_container-name
다음 예제는 를 사용하여 대상 ID를 사용하여 모델 AWS CLI 컨테이너에 액세스하는 방법을 보여줍니다.
aws ssm start-session --target sagemaker-endpoint:prod-image-classifier_variant1_i-003a121c1b21a90a9_container_1
Amazon CloudWatch 로그로 로깅에서 설명한 대로 로깅을 활성화하면, SSM 로그 스트림의 시작 부분에 나열된 모든 컨테이너의 대상 ID를 찾을 수 있습니다.
참고
-
1P 알고리즘 컨테이너 또는 SageMaker MarketPlace SSM으로 가져온 모델 컨테이너에는 연결할 수 없습니다. 하지만 AWS 에서 제공하는 딥 러닝 컨테이너(DLC) 또는 소유한 사용자 지정 컨테이너에는 연결할 수 있습니다.
-
아웃바운드 네트워크 호출을 하지 못하게 하는 모델 컨테이너에 대해 네트워크 격리를 활성화한 경우 해당 컨테이너에 대해 SSM 세션을 시작할 수 없습니다.
-
하나의 SSM 세션에서는 컨테이너 한 개에만 액세스할 수 있습니다. 동일한 엔드포인트 뒤에 있더라도 다른 컨테이너에 액세스하려면 해당 엔드포인트의 대상 ID로 새 SSM 세션을 시작하십시오.