기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker AI를 사용하면 AWS Systems Manager(SSM)를 사용하여 모델이 추론용으로 배포되는 Docker 컨테이너에 안전하게 연결할 수 있습니다. 그러면 컨테이너에 대해 셸 수준의 액세스 권한이 제공되므로 컨테이너 내에서 실행 중인 프로세스를 디버깅하고 Amazon CloudWatch로 명령 및 응답을 기록할 수 있습니다. SSM을 통해 컨테이너에 비공개로 액세스하기 위해 컨테이너를 호스팅하는 ML 인스턴스에 대한 AWS PrivateLink 연결을 설정할 수도 있습니다.
주의
SSM 액세스를 활성화하면 엔드포인트의 성능에 영향을 미칠 수 있습니다. 프로덕션 중인 엔드포인트가 아닌 개발 또는 테스트 엔드포인트에서 이 기능을 사용하는 것이 좋습니다. 또한 SageMaker AI는 보안 패치를 자동으로 적용하고 10분 이내에 결함이 있는 엔드포인트 인스턴스를 교체하거나 종료합니다. 그러나 SSM이 활성화된 프로덕션 변형이 있는 엔드포인트의 경우 SageMaker AI는 디버깅을 허용하기 위해 보안 패치 적용 및 결함이 있는 엔드포인트 인스턴스 교체 또는 종료를 하루 지연합니다.
다음 섹션에서는 이 기능을 사용하는 방법을 자세히 설명합니다.
허용 목록
이 기능을 사용하려면 고객 지원팀에 문의하여 계정을 허용 목록에 추가해야 합니다. 이 액세스에 대해 사용자의 계정이 허용 목록에 없는 경우 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 액세스를 활성화한 경우 SageMaker AI는 엔드포인트 인스턴스를 시작할 때 SSM 에이전트를 시작하고 관리합니다. 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
엔드포인트가 퍼블릭 인터넷에 연결되지 않은 Virtual Private Cloud(VPC) 내에서 실행되는 경우 AWS PrivateLink 를 사용하여 엔드포인트 인스턴스, SSM 및 Amazon EC2와 Amazon 네트워크 간의 모든 네트워크 트래픽을 SSM. AWS PrivateLink restrics를 활성화할 수 있습니다. AWS PrivateLink를 사용하여 SSM 액세스를 설정하는 방법에 대한 자세한 내용은 세션 관리자용 VPC 엔드포인트 설정을 참고하세요.
Amazon CloudWatch Logs를 사용한 로깅
SSM 액세스가 활성화된 엔드포인트의 경우, Amazon CloudWatch Logs를 사용하여 SSM 에이전트의 오류를 기록할 수 있습니다. CloudWatch Logs로 오류를 기록하는 방법에 대한 자세한 내용은 세션 활동 로깅을 참고하세요. 로그는 엔드포인트 로그 그룹 /aws/sagemaker/endpoints/
아래의 SSM 로그 스트림, endpoint-name
에서 확인할 수 있습니다. 로그를 확인하는 방법에 대한 자세한 내용은 CloudWatch Logs로 전송된 로그 데이터 보기를 참고하세요.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 Logs를 사용한 로깅에서 설명한 대로 로깅을 활성화하면, SSM 로그 스트림의 시작 부분에 나열된 모든 컨테이너의 대상 ID를 찾을 수 있습니다.
참고
-
SSM을 사용하여 SageMaker AI MarketPlace에서 가져온 모델의 1P 알고리즘 컨테이너에 연결할 수 없습니다. 하지만 AWS 에서 제공하는 딥 러닝 컨테이너(DLC) 또는 소유한 사용자 지정 컨테이너에는 연결할 수 있습니다.
-
아웃바운드 네트워크 호출을 하지 못하게 하는 모델 컨테이너에 대해 네트워크 격리를 활성화한 경우 해당 컨테이너에 대해 SSM 세션을 시작할 수 없습니다.
-
하나의 SSM 세션에서는 컨테이너 한 개에만 액세스할 수 있습니다. 동일한 엔드포인트 뒤에 있더라도 다른 컨테이너에 액세스하려면 해당 엔드포인트의 대상 ID로 새 SSM 세션을 시작하세요.