로컬 모드 시작하기 - Amazon SageMaker AI

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

로컬 모드 시작하기

다음 섹션에서는 Amazon SageMaker Studio에서 로컬 모드를 시작하는 데 필요한 단계를 간략하게 설명합니다.

  • 사전 조건 완료

  • EnableDockerAccess 설정

  • Docker 설치

사전 조건

Studio 애플리케이션에서 로컬 모드를 사용하려면 다음 사전 조건을 완료하세요.

  • Amazon Elastic Container Registry 리포지토리에서 이미지를 가져오려면 Amazon ECR 이미지를 호스팅하는 계정이 사용자의 실행 역할에 대한 액세스 권한을 제공해야 합니다. 도메인의 실행 역할도 Amazon ECR 액세스를 허용해야 합니다.

  • 다음 명령을 사용하여 Studio Python SDK의 최신 버전을 사용하고 있는지 확인합니다. 

    pip install -U sagemaker
  • 로컬 모드 및 Docker 기능을 사용하려면 AWS Command Line Interface (AWS CLI)를 DockerSettings 사용하여 도메인의 다음 파라미터를 설정합니다. 

    EnableDockerAccess : ENABLED
  • EnableDockerAccess를 사용하면 도메인의 사용자가 로컬 모드를 사용할 수 있는지 여부를 제어할 수도 있습니다. 기본적으로 Studio 애플리케이션에서는 로컬 모드와 Docker 기능이 허용되지 않습니다. 자세한 내용은 EnableDockerAccess 설정 섹션을 참조하세요.

  • Docker 설치의 단계에 따라 Studio 애플리케이션에 Docker CLI를 설치합니다.

EnableDockerAccess 설정

다음 섹션에서는 도메인에 퍼블릭 인터넷 액세스가 있거나 VPC-only 모드인 경우 EnableDockerAccess를 설정하는 방법을 보여줍니다.

참고

EnableDockerAccess에 대한 변경 사항은 도메인이 업데이트된 후 생성된 애플리케이션에만 적용됩니다. 도메인을 업데이트한 후 새 애플리케이션을 생성해야 합니다.

퍼블릭 인터넷 액세스

다음 예제 명령은 새 도메인을 생성하거나 퍼블릭 인터넷 액세스로 기존 도메인을 업데이트할 때 EnableDockerAccess를 설정하는 방법을 보여줍니다.

# create new domain aws --region region \ sagemaker create-domain --domain-name domain-name \ --vpc-id vpc-id \ --subnet-ids subnet-ids \ --auth-mode IAM \ --default-user-settings "ExecutionRole=execution-role" \ --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \ --query DomainArn \ --output text # update domain aws --region region \ sagemaker update-domain --domain-id domain-id \ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

VPC-only 모드

VPC-only 모드에서 도메인을 사용하는 경우 Docker 이미지 푸시 및 풀 요청은 고객이 구성한 VPC 대신 서비스 VPC를 통해 라우팅됩니다. 이 기능으로 인해 관리자는 사용자가 Amazon ECR Docker 풀 앤 푸시 작업 요청을 할 수 있는 신뢰할 수 있는 AWS 계정 목록을 구성할 수 있습니다.

신뢰할 수Docker AWS 계정 있는 목록에 없는에 이미지 푸시 또는 풀 요청이 이루어진 경우 AWS 계정요청이 실패합니다. Amazon Elastic Container Registry(Amazon ECR) 외부의 Docker 풀 및 푸시 작업은 VPC-only 모드에서 지원되지 않습니다.

다음은 기본적으로 AWS 계정 신뢰할 수 있습니다.

  • SageMaker AI 도메인을 호스팅하는 계정입니다.

  • 다음 SageMaker AI 이미지를 호스팅하는 SageMaker AI 계정:

    • DLC 프레임워크 이미지

    • Sklearn, Spark, XGBoost 처리 이미지

신뢰할 수 있는 추가 목록을 구성하려면 다음과 같이 VpcOnlyTrustedAccounts 값을 AWS 계정지정합니다.

aws --region region \ sagemaker update-domain --domain-id domain-id \ --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'

Docker 설치

Docker를 사용하려면 Studio 애플리케이션의 터미널에서 Docker를 수동으로 설치해야 합니다. 도메인에 인터넷에 대한 액세스 권한이 있는지 여부는 Docker 설치 단계가 다릅니다.

인터넷 액세스

도메인이 퍼블릭 인터넷 액세스로 생성되거나 인터넷 액세스가 제한된 VPC-only 모드에서 생성되는 경우 다음 단계에 따라 Docker를 설치합니다.

  1. (선택 사항) 도메인이 인터넷 액세스가 제한된 VPC-only 모드에서 생성되는 경우 Docker 웹 사이트에 액세스할 수 있는 퍼블릭 NAT 게이트웨이를 생성합니다. 지침은 NAT 게이트웨이를 참조하세요.

  2. Docker를 설치하려는 Studio 애플리케이션의 터미널로 이동합니다.

  3. 애플리케이션의 운영 체제를 반환하려면 터미널에서 다음 명령을 실행합니다.

    cat /etc/os-release
  4. Amazon SageMaker AI 로컬 모드 예제 리포지토리에서 애플리케이션의 운영 체제에 대한 지침에 따라를 설치합니다Docker.

    예를 들어 다음 고려 사항을 고려하여 https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh 스크립트를 따라 Ubuntu에 Docker를 설치합니다.

    • 연결된 명령이 실패하면 명령을 한 번에 하나씩 실행합니다.

    • Studio는 Docker 버전 20.10.X. 및 Docker Engine API 버전 1.41만 지원합니다.

    • 다음 패키지는 Studio에서 Docker CLI를 사용하는 데 필요하지 않으며 설치를 건너뛸 수 있습니다.

      • containerd.io

      • docker-ce

      • docker-buildx-plugin

    참고

    애플리케이션에서 Docker 서비스를 시작할 필요가 없습니다. Studio 애플리케이션을 호스팅하는 인스턴스는 기본적으로 Docker 서비스를 실행합니다. 모든 Docker API 호출은 Docker 서비스를 통해 자동으로 라우팅됩니다.

  5. Studio 애플리케이션 내에서 Docker 상호 작용에 노출된 Docker 소켓을 사용합니다. 기본적으로 다음 소켓이 노출됩니다.

    unix:///docker/proxy.sock

    기본값 USER에 대한 다음 Studio 애플리케이션 환경 변수는 이 노출된 소켓을 사용합니다.

    DOCKER_HOST

인터넷 액세스 없음

인터넷 액세스가 없는 VPC-only 모드에서 도메인이 생성된 경우 다음 단계에 따라 Docker를 설치합니다.

  1. Docker를 설치하려는 Studio 애플리케이션의 터미널로 이동합니다.

  2. 터미널에서 다음 명령을 실행하여 애플리케이션의 운영 체제를 반환합니다.

    cat /etc/os-release
  3. Docker .deb 파일을 로컬 시스템에 다운로드합니다. Studio 애플리케이션의 운영 체제에 필요한 파일을 다운로드하는 방법에 대한 지침은 Docker Engine 설치를 참조하세요.

    예를 들어 다음 사항을 고려하여 패키지에서 설치의 1~4단계에 따라 Ubuntu의 패키지에서 Docker를 설치합니다.

    • 패키지에서 Docker를 설치합니다. 다른 방법을 사용하여 Docker를 설치하면 실패합니다.

    • Docker 버전 20.10.X에 해당하는 최신 패키지를 설치합니다.

    • 다음 패키지는 Studio에서 Docker CLI를 사용하는 데 필요하지 않습니다. 다음을 설치할 필요가 없습니다.

      • containerd.io

      • docker-ce

      • docker-buildx-plugin

    참고

    애플리케이션에서 Docker 서비스를 시작할 필요가 없습니다. Studio 애플리케이션을 호스팅하는 인스턴스는 기본적으로 Docker 서비스를 실행합니다. 모든 Docker API 호출은 Docker 서비스를 통해 자동으로 라우팅됩니다.

  4. Amazon EFS 파일 시스템 또는 애플리케이션의 Amazon EBS 파일 시스템에 .deb 파일을 업로드합니다.

  5. Studio 애플리케이션 터미널에서 docker-ce-clidocker-compose-plugin .deb 패키지를 수동으로 설치합니다. 자세한 내용과 지침은 Docker 문서 웹사이트의 패키지에서 설치의 5단계를 참조하세요.

  6. Studio 애플리케이션 내에서 Docker 상호 작용에 노출된 Docker 소켓을 사용합니다. 기본적으로 다음 소켓이 노출됩니다.

    unix:///docker/proxy.sock

    기본값 USER에 대한 다음 Studio 애플리케이션 환경 변수는 이 노출된 소켓을 사용합니다.

    DOCKER_HOST