本機模式入門 - 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功能,DockerSettings請使用 AWS Command Line Interface () 設定網域的下列參數AWS CLI: 

    EnableDockerAccess : ENABLED
  • EnableDockerAccess您也可以使用 控制網域中的使用者是否可以使用本機模式。根據預設,Studio 應用程式不允許本機模式和Docker功能。如需詳細資訊,請參閱設置 EnableDockerAccess

  • 遵循中的步驟,在 Studio 應用程式中安裝 DockerCLIDocker安裝

設置 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。由於此功能,管理員可以設定可信任 AWS 帳戶 的清單,使用者可以向 Amazon ECR 提出Docker提取和推送操作請求。

如果Docker向 AWS 帳戶 不在信任清單中的 發出映像推送或提取請求 AWS 帳戶,請求會失敗。VPC-only模式不支援在 Amazon Elastic Container Registry (Amazon ECR) 外部Docker提取和推送操作。

預設 AWS 帳戶 會信任下列項目:

  • 託管 SageMaker AI 網域的帳戶。

  • 託管下列 SageMaker AI 映像的 SageMaker AI 帳戶:

    • DLC 架構映像

    • Sklearn、Spark、XGBoost 處理映像

若要設定其他信任的清單 AWS 帳戶,請指定VpcOnlyTrustedAccounts值,如下所示:

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 Local Mode 範例儲存庫中應用程式作業系統的指示進行安裝Docker。

    例如,Docker在 上Ubuntu,依照 https://https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh 的指令碼進行安裝,並考量下列各項:

    • 如果鏈結的命令失敗,請一次執行一個命令。

    • 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. 使用公開的Docker通訊端進行 Studio 應用程式內的Docker互動。根據預設,會公開下列通訊端:

    unix:///docker/proxy.sock

    下列 Studio 應用程式環境變數的預設 USER使用此公開通訊端:

    DOCKER_HOST

沒有網際網路存取

如果網域是在沒有網際網路存取的VPC-only模式下建立,請使用下列步驟來安裝 Docker。

  1. 導覽至您要安裝Docker之 Studio 應用程式的終端機。

  2. 從終端機執行下列命令,以傳回應用程式的作業系統:

    cat /etc/os-release
  3. 將必要Docker.deb檔案下載至本機電腦。如需下載 Studio 應用程式作業系統所需檔案的說明,請參閱安裝 Docker Engine

    例如,按照Docker從套件安裝中的步驟 1–4,從 Ubuntu 上的套件安裝 ,並考量以下幾點:

    • Docker 從套件安裝 。使用其他方法來安裝 Docker 將會失敗。

    • 安裝對應至 Docker版本的最新套件20.10.X

    • 下列套件不需要在 Studio 中使用 Docker CLI。您不需要安裝下列項目:

      • containerd.io

      • docker-ce

      • docker-buildx-plugin

    注意

    您不需要在應用程式中啟動Docker服務。根據預設,託管 Studio 應用程式的執行個體會執行Docker服務。所有 Docker API 呼叫都會自動透過 Docker服務路由。

  4. .deb檔案上傳至 Amazon EFS 檔案系統或應用程式的 Amazon EBS 檔案系統。

  5. 從 Studio 應用程式終端機手動安裝 docker-ce-clidocker-compose-plugin.deb套件。如需詳細資訊和說明,請參閱 Docker 文件網站上的從套件安裝中的步驟 5。

  6. 使用公開的Docker通訊端進行 Studio 應用程式內的Docker互動。根據預設,會公開下列通訊端:

    unix:///docker/proxy.sock

    下列 Studio 應用程式環境變數的預設 USER使用此公開通訊端:

    DOCKER_HOST