ユーザーにカスタムイメージへのアクセスを提供する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザーにカスタムイメージへのアクセスを提供する

このドキュメントでは、 JupyterLab 環境内のカスタムイメージへのアクセスをユーザーに許可する step-by-step 手順について説明します。このページの情報を使用して、ユーザーのワークフロー用のカスタム環境を作成できます。このプロセスでは、以下を利用します。

  • Docker

  • AWS Command Line Interface

  • Amazon Elastic Container Registry

  • Amazon SageMaker AWS Management Console

このページのガイダンスに従うと、Amazon SageMaker ドメインの JupyterLab ユーザーは Jupyter スペースからカスタムイメージと環境にアクセスして、機械学習ワークフローを強化できます。

重要

このページでは、 AWS Command Line Interface と がローカルマシンにDockerインストールされていることを前提としています。

ユーザーが 内でイメージを正常に実行できるようにするには JupyterLab、以下を実行する必要があります。

ユーザーがイメージを正常に実行できるようにするには
  1. Dockerfile を作成する

  2. Dockerfile からイメージを構築する

  3. Amazon Elastic Container Registry にイメージをアップロードする

  4. Amazon SageMaker ドメインにイメージをアタッチする

  5. ユーザーに JupyterLab スペースからイメージへのアクセスを許可する

ステップ 1: Dockerfile を作成する

Dockerfile を作成して、ユーザーのコンテナでアプリケーションを実行するために必要な環境を作成するために必要なステップを定義します。

重要

Dockerfile は、「」に記載されている仕様を満たす必要がありますDockerfile の仕様

次の Dockerfile テンプレートを使用して、Amazon Linux 2 イメージを作成します。

FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install jupyterlab RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade urllib3==1.26.6 USER ${NB_UID} CMD jupyter lab --ip 0.0.0.0 --port 8888 \ --ServerApp.base_url="/jupyterlab/default" \ --ServerApp.token='' \ --ServerApp.allow_origin='*'

次の Dockerfile テンプレートを使用して Amazon SageMaker ディストリビューションイメージを作成します。

FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu ARG NB_USER="sagemaker-user" ARG NB_UID=1000 ARG NB_GID=100 ENV MAMBA_USER=$NB_USER USER root RUN apt-get update RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base USER $MAMBA_USER ENTRYPOINT ["jupyter-lab"] CMD ["--ServerApp.ip=0.0.0.0", "--ServerApp.port=8888", "--ServerApp.allow_origin=*", "--ServerApp.token=''", "--ServerApp.base_url=/jupyterlab/default"]

ステップ 2: Dockerfile を構築する

Dockerfile と同じディレクトリに、次のコマンドを使用してイメージを構築します。

docker build -t username/imagename:tag your-account-id.dkr.ecr.AWS リージョン.amazonaws.com/your-repository-name:tag
重要

イメージには、次の形式でタグ付けする必要があります。 123456789012.dkr.ecr.your-region.amazonaws.com/your-repository-name:tag

そうしないと、Amazon Elastic Container Registry リポジトリにプッシュすることはできません。

ステップ 3: イメージを Amazon Elastic Container Registry リポジトリにプッシュする

イメージを構築したら、次のコマンドを使用して Amazon ECR リポジトリにログインします。

aws ecr get-login-password --region AWS リージョン | docker login --username AWS --password-stdin 123456789012.dkr.ecr.AWS リージョン.amazonaws.com

ログインしたら、次のコマンドを使用して Dockerfile をプッシュします。

docker push 123456789012.dkr.ecr.AWS リージョン.amazonaws.com/your-repository-name:tag

ステップ 4: ユーザーの Amazon SageMaker ドメインにイメージをアタッチする

イメージをプッシュしたら、Amazon SageMaker ドメインからそのイメージにアクセスする必要があります。イメージを SageMaker ドメインにアタッチするには、次の手順に従います。

  1. SageMaker コンソールを開きます。

  2. 管理者設定 で、ドメイン を選択します。

  3. ドメイン のリストからドメインを選択します。

  4. 環境タブを開きます。

  5. 個人用 Studio アプリのカスタムイメージ でイメージのアタッチ を選択します。

  6. イメージソースを指定します。

  7. [次へ] をクリックします。

  8. [送信] を選択します。

ユーザーは、ドメインにアタッチしたイメージを自分の JupyterLab スペースから選択できるようになりました。